diff --git a/LICENSE b/LICENSE index bb37eecef..5356c03e2 100644 --- a/LICENSE +++ b/LICENSE @@ -1,44 +1,43 @@ Notangles -Copyright (C) 2023 DevSoc UNSW +Copyright (C) 2024 DevSoc UNSW -This program is free software: you can redistribute it and/or modify it under -the terms of the GNU Affero General Public License as published by the Free +This program is free software: you can redistribute it and/or modify it under +the terms of the GNU Affero General Public License as published by the Free Software Foundation at version 3 of the License. -This program is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A -PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. +This program is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. -You should have received a copy of the GNU Affero General Public License along -with this program. If not, see . +You should have received a copy of the GNU Affero General Public License along +with this program. If not, see . -# AGPL-v3 License Extension +# AGPL-v3 License Extension -1. You may use, copy, modify, and distribute this software under the terms of -the AGPL-v3 license, provided that you include this license extension in all -copies or substantial portions of the software. +1. You may use, copy, modify, and distribute this software under the terms of + the AGPL-v3 license, provided that you include this license extension in all + copies or substantial portions of the software. -2. You may not use this software for commercial purposes, including but not -limited to selling, renting, or licensing the software or any derivative works -thereof. +2. You may not use this software for commercial purposes, including but not + limited to selling, renting, or licensing the software or any derivative works + thereof. -3. If you distribute this software, you must make the source code available -under the AGPL-v3 license and this license extension, and must include a copy -of this license extension with any binary distribution. +3. If you distribute this software, you must make the source code available + under the AGPL-v3 license and this license extension, and must include a copy + of this license extension with any binary distribution. -4. If you modify this software, you must indicate in the source code that -changes have been made and provide the modified source code under the terms of -the AGPL-v3 license and this license extension. +4. If you modify this software, you must indicate in the source code that + changes have been made and provide the modified source code under the terms of + the AGPL-v3 license and this license extension. 5. This license extension applies to the entire software, including any third- -party components included in the software. + party components included in the software. 6. If you use this software in a product that is freely available to the -public, you must give full credit to the original authors of the software by -prominently displaying the following attribution in the product: "This product -includes software developed by DevSoc UNSW." - -7. This license extension shall not be interpreted to affect the validity or -enforceability of the AGPL-v3 license. + public, you must give full credit to the original authors of the software by + prominently displaying the following attribution in the product: "This product + includes software developed by DevSoc UNSW." +7. This license extension shall not be interpreted to affect the validity or + enforceability of the AGPL-v3 license. diff --git a/README.md b/README.md index b4152edd3..7a6f6862e 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ## Background and Motivation -A few weeks before class registration opens, UNSW releases all of their class information at http://timetable.unsw.edu.au/2023. However, the classes and their respective times are formatted in a way that makes it difficult for students trying to plan out their classes before registrations open. Notangles aims to present this information in an easy to visualise and intuitive fashion, allowing students to plan out their timetable by simply dragging and dropping the classes that they are taking. +A few weeks before class registration opens, UNSW releases all of their class information at http://timetable.unsw.edu.au/2024. However, the classes and their respective times are formatted in a way that makes it difficult for students trying to plan out their classes before registrations open. Notangles aims to present this information in an easy to visualise and intuitive fashion, allowing students to plan out their timetable by simply dragging and dropping the classes that they are taking. Students often find it hard to plan out their classes such that they end up in the same class as their friends. It can also be difficult to plan out times where they can meet up with their friends outside of class. Notangles aims to solve this problem through social timetabling, allowing users to view their friends’ timetables and to also plan out timetables collaboratively. @@ -46,4 +46,4 @@ Navigate into `/auto_server`, setup a virtual environment, install the required ## Documentation -For more information, see our [Confluence space](https://compclub.atlassian.net/wiki/spaces/N/overview?homepageId=2142536957). +For more information, see our [Confluence space](https://devsoc.atlassian.net/wiki/spaces/N/overview?homepageId=1572869). diff --git a/client/src/App.tsx b/client/src/App.tsx index 32fcdff93..c30478c4f 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -4,6 +4,7 @@ import { LocalizationProvider } from '@mui/x-date-pickers'; import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns'; import * as Sentry from '@sentry/react'; import React, { useContext, useEffect } from 'react'; +import { Outlet } from 'react-router-dom'; import getCourseInfo from './api/getCourseInfo'; import getCoursesList from './api/getCoursesList'; @@ -11,6 +12,7 @@ import Alerts from './components/Alerts'; import Controls from './components/controls/Controls'; import Footer from './components/Footer'; import Navbar from './components/navbar/Navbar'; +import Sponsors from './components/Sponsors'; import Timetable from './components/timetable/Timetable'; import { TimetableTabs } from './components/timetableTabs/TimetableTabs'; import { contentPadding, darkTheme, lightTheme } from './constants/theme'; @@ -31,7 +33,6 @@ import { Activity, ClassData, CourseCode, CourseData, InInventory, SelectedClass import { setDropzoneRange, useDrag } from './utils/Drag'; import { downloadIcsFile } from './utils/generateICS'; import storage from './utils/storage'; -import { Outlet } from 'react-router-dom'; const StyledApp = styled(Box)` height: 100%; @@ -292,7 +293,7 @@ const App: React.FC = () => { const newSelectedCourses = selectedCourses.filter((course) => course.code !== courseCode); setSelectedCourses(newSelectedCourses); const newCourseData = courseData; - newCourseData.map = courseData.map.filter((targetCourse) => { + newCourseData.map = courseData.map.filter(() => { for (const timetable of displayTimetables) { for (const course of timetable.selectedCourses) { if (course.code.localeCompare(courseCode)) { @@ -545,6 +546,7 @@ const App: React.FC = () => { > save to calendar +