From ee512b258c5609f2c7800394e3835cfc4c66add4 Mon Sep 17 00:00:00 2001 From: Jeremy Le Date: Mon, 22 Jan 2024 16:29:51 +1100 Subject: [PATCH 01/13] converted branding from csesoc to devsoc --- CODEOWNERS | 10 +++++----- README.md | 6 +++--- client/index.html | 4 ++-- client/src/api/getCoursesList.ts | 2 -- client/src/components/Footer.tsx | 12 ++++++------ client/src/components/navbar/About.tsx | 6 +++--- onboarding.md | 13 ++++++------- 7 files changed, 25 insertions(+), 28 deletions(-) diff --git a/CODEOWNERS b/CODEOWNERS index ed751f568..08cc749db 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1,6 +1,6 @@ -auto_server/ @csesoc/notangles-leads -client/ @csesoc/notangles-leads -server/ @csesoc/notangles-leads +auto_server/ @devsoc-unsw/notangles-leads +client/ @devsoc-unsw/notangles-leads +server/ @devsoc-unsw/notangles-leads -.github/ @csesoc/technical -renovate.json @csesoc/technical +.github/ @devsoc-unsw/platform +renovate.json @devsoc-unsw/platform diff --git a/README.md b/README.md index c20f4b8a9..b49ee01e7 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/202. 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. @@ -22,7 +22,7 @@ Before you start, make sure that you have the following software installed. Clone the repository: -`git clone git@github.com:csesoc/notangles.git` +`git clone git@github.com:devsoc-unsw/notangles.git` ### Running the front-end @@ -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/index.html b/client/index.html index 53c751fb2..294b50b38 100644 --- a/client/index.html +++ b/client/index.html @@ -14,11 +14,11 @@ /> diff --git a/client/src/api/getCoursesList.ts b/client/src/api/getCoursesList.ts index ba5af8b79..c1b1a7ece 100644 --- a/client/src/api/getCoursesList.ts +++ b/client/src/api/getCoursesList.ts @@ -1,5 +1,3 @@ -// https://timetable.csesoc.unsw.edu.au/api/terms/2022-T1/courses/ - import { CoursesList, CoursesListWithDate, FetchedCourse } from '../interfaces/Courses'; import NetworkError from '../interfaces/NetworkError'; import timeoutPromise from '../utils/timeoutPromise'; diff --git a/client/src/components/Footer.tsx b/client/src/components/Footer.tsx index 5f90695b1..af73db4b2 100644 --- a/client/src/components/Footer.tsx +++ b/client/src/components/Footer.tsx @@ -46,10 +46,10 @@ const Footer: React.FC = () => {

Notangles - UNSW Timetable Planner

- Notangles is a UNSW timetable planner, brought to you by CSESoc Dev. It's an easy to use drag-and-drop tool - that allows you to plan your course classes and add to your calendar, even before term class registration - opens! We have many features including support for custom events, auto-timetabling, creation of multiple - timetables and sharing events with friends. + Notangles is a UNSW timetable planner, brought to you by DevSoc. It's an easy to use drag-and-drop tool that + allows you to plan your course classes and add to your calendar, even before term class registration opens! We + have many features including support for custom events, auto-timetabling, creation of multiple timetables and + sharing events with friends.



@@ -58,7 +58,7 @@ const Footer: React.FC = () => { reliability.
- Made by >_ CSESoc UNSW  •   + Made by <devsoc/> UNSW  •   Email @@ -67,7 +67,7 @@ const Footer: React.FC = () => { Feedback   •   - + Source
diff --git a/client/src/components/navbar/About.tsx b/client/src/components/navbar/About.tsx index bd901fb7f..c97eff3d3 100644 --- a/client/src/components/navbar/About.tsx +++ b/client/src/components/navbar/About.tsx @@ -40,9 +40,9 @@ const About: React.FC = () => { Crossangles - , it was created by CSESoc Projects – a place for student-led projects where you can learn something new, and - make some friends along the way. Notangles is free and{' '} - open-source. + , it was created by DevSoc – a place for student-led projects where you can learn something new, and make some + friends along the way. Notangles is free and{' '} + open-source. How it works diff --git a/onboarding.md b/onboarding.md index 3800136ec..5aa5390b4 100644 --- a/onboarding.md +++ b/onboarding.md @@ -1,6 +1,6 @@ # Onboarding -Welcome to CSESoc Projects and the Notangles team! This page will come in handy when you’re running Notangles locally, and working on your own features. +Welcome to DevSoc and the Notangles team! This page will come in handy when you’re running Notangles locally, and working on your own features. ## Your setup @@ -37,14 +37,13 @@ Before you start, make sure that you have the following software installed. - [Docker](https://www.docker.com/) (only needed if you are working on the back-end) - [Instructions if you’re using WSL on Windows](https://docs.microsoft.com/en-us/windows/wsl/tutorials/wsl-containers) - ## Getting the source code -We manage our source code with a version control system called [Git](https://git-scm.com/). Every time we *commit* new code, it gets added to a history of commits, so we can get old code back if needed. This code is then hosted on [GitHub](https://github.com/csesoc/notangles), so any code you *push* is backed up, and can be *pulled* by other team members. Git has other features like branches, which allow us to work on different versions of the same codebase at the same time, and merge them together later. +We manage our source code with a version control system called [Git](https://git-scm.com/). Every time we _commit_ new code, it gets added to a history of commits, so we can get old code back if needed. This code is then hosted on [GitHub](https://github.com/devsoc-unsw/notangles), so any code you _push_ is backed up, and can be _pulled_ by other team members. Git has other features like branches, which allow us to work on different versions of the same codebase at the same time, and merge them together later. -First of all, make sure that you have been added to the [Notangles repository](https://github.com/csesoc/notangles) on GitHub. While anyone can read our open-source codebase, you’ll need permissions to push changes. +First of all, make sure that you have been added to the [Notangles repository](https://github.com/devsoc-unsw/notangles) on GitHub. While anyone can read our open-source codebase, you’ll need permissions to push changes. -Once you’re in, summon a terminal and clone the repository by running `git clone git@github.com:csesoc/notangles.git`. (You can also use GitHub Desktop.) After that, navigate into the newly-cloned repository by running `cd notangles`. +Once you’re in, summon a terminal and clone the repository by running `git clone git@github.com:devsoc-unsw/notangles.git`. (You can also use GitHub Desktop.) After that, navigate into the newly-cloned repository by running `cd notangles`. Then, run `cd client && npm install && cd ../server && npm install && cd ../scraper && npm install && cd ..`, which installs all the dependencies that the project needs. @@ -89,6 +88,6 @@ Then, push the branch to the Notangles repository by running `git push -u origin When you’re done with the issue, [create a pull request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request) on GitHub, then assign as reviewers the team lead, and members with experience in the area. -When your pull request has been approved and merged into the *dev* branch, you can archive the card on Trello. All archived cards can be referenced from “archived items”, under “more” in the Trello menu. +When your pull request has been approved and merged into the _dev_ branch, you can archive the card on Trello. All archived cards can be referenced from “archived items”, under “more” in the Trello menu. -As a side note, **make sure to always pull from *dev*** before you do any work! This is so you can get the latest code to work on, with all the new changes from other team members. +As a side note, **make sure to always pull from _dev_** before you do any work! This is so you can get the latest code to work on, with all the new changes from other team members. From 25e737af8f65eb52ab039ebd28ac0dd56dbf8b3e Mon Sep 17 00:00:00 2001 From: Jeremy Le Date: Mon, 22 Jan 2024 16:33:26 +1100 Subject: [PATCH 02/13] update LICENSE --- LICENSE | 55 +++++++++++++++++++++++++++---------------------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/LICENSE b/LICENSE index 3a729d40f..67a474e24 100644 --- a/LICENSE +++ b/LICENSE @@ -1,44 +1,43 @@ Notangles -Copyright (C) 2023 CSESoc 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 CSESoc 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 CSESoc UNSW." +7. This license extension shall not be interpreted to affect the validity or + enforceability of the AGPL-v3 license. From d824e4277bc9b04eedea997b45c29fd8ced13c60 Mon Sep 17 00:00:00 2001 From: Jeremy Le Date: Mon, 22 Jan 2024 16:33:26 +1100 Subject: [PATCH 03/13] update `LICENSE` --- LICENSE | 55 +++++++++++++++++++++++++++---------------------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/LICENSE b/LICENSE index 3a729d40f..67a474e24 100644 --- a/LICENSE +++ b/LICENSE @@ -1,44 +1,43 @@ Notangles -Copyright (C) 2023 CSESoc 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 CSESoc 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 CSESoc UNSW." +7. This license extension shall not be interpreted to affect the validity or + enforceability of the AGPL-v3 license. From 6a312d36fa705e176239d67239549f51b09d0cdf Mon Sep 17 00:00:00 2001 From: Jeremy Le Date: Thu, 25 Jan 2024 17:27:22 +1100 Subject: [PATCH 04/13] added sponsor images side by side --- client/src/App.tsx | 6 +- client/src/assets/macquarie_group_logo.svg | 101 +++++++++++++++++++++ client/src/assets/tiktok_logo.svg | 39 ++++++++ client/src/components/Footer.tsx | 7 +- client/src/components/Sponsors.tsx | 23 +++++ 5 files changed, 170 insertions(+), 6 deletions(-) create mode 100644 client/src/assets/macquarie_group_logo.svg create mode 100644 client/src/assets/tiktok_logo.svg create mode 100644 client/src/components/Sponsors.tsx 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 +