diff --git a/LICENSE b/LICENSE index c43f956d5..8622de3d7 100644 --- a/LICENSE +++ b/LICENSE @@ -1,44 +1,44 @@ -Circles +Circles -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." +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. +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 1dd791e46..b02504261 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,9 @@ -[![CSEsoc](https://img.shields.io/badge/-CSESoc-blue)](https://www.csesoc.unsw.edu.au/) -![Status](https://img.shields.io/website?label=status&up_message=online&url=https%3A%2F%2Fcircles.csesoc.unsw.edu.au%2F) -[![Frontend Build](https://github.com/csesoc/Circles/actions/workflows/ci_FE.yml/badge.svg)](https://github.com/csesoc/Circles/actions/workflows/ci_FE.yml) -[![Backend Tests](https://github.com/csesoc/Circles/actions/workflows/ci_BE.yml/badge.svg)](https://github.com/csesoc/Circles/actions/workflows/ci_BE.yml) -[![Pylint](https://github.com/csesoc/Circles/actions/workflows/pylinter.yml/badge.svg)](https://github.com/csesoc/Circles/actions/workflows/pylinter.yml) -![Lines of code](https://img.shields.io/tokei/lines/github/csesoc/Circles) -![GitHub Repo Size](https://img.shields.io/github/repo-size/csesoc/Circles) +[![DevSoc](https://img.shields.io/badge/Devsoc-dark?color=3c424b)](https://devsoc.app/) +[![Status](https://img.shields.io/website?url=https%3A%2F%2Fcircles.devsoc.app%2F&up_message=online&label=status)](https://circles.devsoc.app/) +[![Unit Tests](https://github.com/devsoc-unsw/Circles/actions/workflows/ci.yml/badge.svg)](https://github.com/devsoc-unsw/Circles/actions/workflows/ci.yml) +[![Pylint](https://github.com/devsoc-unsw/Circles/actions/workflows/pylinter.yml/badge.svg)](https://github.com/devsoc-unsw/Circles/actions/workflows/pylinter.yml) +![Lines of code](https://img.shields.io/tokei/lines/github/devsoc-unsw/Circles) +![GitHub Repo Size](https://img.shields.io/github/repo-size/devsoc-unsw/Circles) # Circles @@ -16,9 +15,9 @@ You can find a live build of Circles at [https://circles.devsoc.app](https://cir ## Features -![Features Help Image](https://raw.githubusercontent.com/csesoc/Circles/dev/frontend/src/assets/infographic.png) +![Features Help Image](./frontend/src/assets/infographic.png) -NOTE: we currently only support the Computer Science (3778) degree - but we will add more! +NOTE: we currently only support a selection of degrees - but we will add more! - Adaptive course selector: - Allows you to explore your currently unlocked courses @@ -30,21 +29,22 @@ NOTE: we currently only support the Computer Science (3778) degree - but we will - Validates your progression to make sure you've met the requirements for future courses - Allows you to generate a saveable and sharable image of your plan +- Progression checker: (NEW PAGE!) + - Lets you understand which requirements you have met and which you still need to complete + - Shows you what courses you can do to complete your degree + ## Future Plans This project is rapidly expanding and our roadmap includes features such as: -- Progression checker: (NEW PAGE!) - - Lets you understand which requirements you have met and which you still need to complete - - Shows you what courses you can do to complete your degree - Graphical view: - A graphical model of your degree plan, to show you a beautiful dependency tree of courses relevant to your degree - Will adapt to your degree structure # Our team -We are a team that is part of CSESoc Projects! See [TEAM.md](./TEAM.md) for more information on the current and previous team that contributed to the development of Circles. +We are a team that is part of DevSoc! See [TEAM.md](./TEAM.md) for more information on the current and previous team that contributed to the development of Circles. Also, special thanks to James Ji, Vincent Xiao, Hayes Choy for being the first team to work on and inspire Circles :) -[For further development documentation, a linktree to our jira boards and more!](https://compclub.atlassian.net/wiki/spaces/C/pages/1664385928/About+Circles) +[For further development documentation, visit our confluence page!](https://devsoc.atlassian.net/wiki/spaces/C/pages/756966/About+Circles) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 46f598db8..003b7f3ab 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,7 +1,7 @@ import React, { Suspense, useEffect } from 'react'; import { useSelector } from 'react-redux'; import { BrowserRouter as Router, Navigate, Route, Routes } from 'react-router-dom'; -import { SmileOutlined } from '@ant-design/icons'; +import { NotificationOutlined } from '@ant-design/icons'; import { ThemeProvider } from 'styled-components'; import openNotification from 'utils/openNotification'; import ErrorBoundary from 'components/ErrorBoundary'; @@ -27,35 +27,50 @@ const App = () => { const degree = useSelector((state: RootState) => state.degree); - // temporary subcommittee recruitment drive notification - // TODO: either remove or productionise this later useEffect(() => { // using local storage since I don't want to risk invalidating the redux state right now - const cooldownMs = 1000 * 60 * 60 * 23; // every 23 hours - const lastSeen = localStorage.getItem('last-seen-recruitment'); - if (lastSeen !== null && Date.now() - parseInt(lastSeen, 10) < cooldownMs) { - return; - } + const cooldownMs = 1000 * 60 * 60 * 24 * 7; // every 7 days + const lastSeen = localStorage.getItem('last-seen-contribution'); + if (lastSeen !== null && Date.now() - parseInt(lastSeen, 10) < cooldownMs) return; - localStorage.setItem('last-seen-recruitment', Date.now().toString()); + localStorage.setItem('last-seen-contribution', Date.now().toString()); openNotification({ type: 'info', - message: 'Subcommittee Recruitment!', + message: 'Want to contribute?', description: ( <> - Interested in working on Circles or one of our other student-led projects? DevSoc is - currently recruiting members for our 2024 subcommittee! + Found a bug or have feedback? Open an issue on{' '} + + GitHub + {' '} + or share your thoughts on{' '} + + Discord + + !

- Find out more at{' '} - - devsoc.app/get-involved + Feeling brave? You can even fix it yourself by submitting a{' '} + + pull request + ! +
+
+ Let's make Circles even better, together! 💜 ), - duration: 0, - icon: + duration: 20, + icon: }); }, []); diff --git a/frontend/src/components/PageTemplate/PageTemplate.tsx b/frontend/src/components/PageTemplate/PageTemplate.tsx index cd01d2b78..3c95e11af 100644 --- a/frontend/src/components/PageTemplate/PageTemplate.tsx +++ b/frontend/src/components/PageTemplate/PageTemplate.tsx @@ -13,7 +13,10 @@ const PageTemplate = ({ children, showHeader = true }: Props) => ( Circles - + {showHeader &&
}
diff --git a/frontend/src/pages/LandingPage/FooterSection/Footer.tsx b/frontend/src/pages/LandingPage/FooterSection/Footer.tsx index 9f4d97fac..a41f94b6b 100644 --- a/frontend/src/pages/LandingPage/FooterSection/Footer.tsx +++ b/frontend/src/pages/LandingPage/FooterSection/Footer.tsx @@ -28,12 +28,11 @@ const Footer = () => { correction. This is not official advice, and you should confirm any statements are correct before relying on it. You should confirm with official resources endorsed by UNSW and any information found here may not necessarily represent those of the - University, Faculty, School, or the Computer Science and Engineering Society. + University, Faculty, School, or the Software Development Society.
- You are responsible for planning your degree and the Computer Science and - Engineering Society have no responsibility on whether the information shown is - accurate. + You are responsible for planning your degree and the Software Development Society + has no responsibility on whether the information shown is accurate.
Circles was made with love by students for students.