Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat/contribution notif+branding #1107

Merged
merged 4 commits into from
Mar 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 26 additions & 26 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -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 <http://www.gnu.org/licenses/>.
You should have received a copy of the GNU Affero General Public License along
with this program. If not, see <http://www.gnu.org/licenses/>.

# 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.

28 changes: 14 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -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

Expand All @@ -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
Expand All @@ -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)
49 changes: 32 additions & 17 deletions frontend/src/App.tsx
Original file line number Diff line number Diff line change
@@ -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';
Expand All @@ -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{' '}
<a
href="https://github.com/devsoc-unsw/circles/issues"
target="_blank"
rel="noopener noreferrer"
>
GitHub
</a>{' '}
or share your thoughts on{' '}
<a href="https://discord.gg/u9p34WUTcs" target="_blank" rel="noopener noreferrer">
Discord
</a>
!
<br />
<br />
Find out more at{' '}
<a href="https://devsoc.app/get-involved" target="_blank" rel="noopener noreferrer">
devsoc.app/get-involved
Feeling brave? You can even fix it yourself by submitting a{' '}
<a
href="https://github.com/devsoc-unsw/circles/pulls"
target="_blank"
rel="noopener noreferrer"
>
pull request
</a>
!
<br />
<br />
Let&apos;s make <strong>Circles</strong> even better, together! &#128156;
</>
),
duration: 0,
icon: <SmileOutlined style={{ color: lightTheme.purplePrimary }} />
duration: 20,
icon: <NotificationOutlined style={{ color: lightTheme.purplePrimary }} />
});
}, []);

Expand Down
5 changes: 4 additions & 1 deletion frontend/src/components/PageTemplate/PageTemplate.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@ const PageTemplate = ({ children, showHeader = true }: Props) => (
<Helmet>
<title>Circles</title>
<meta name="description" content="Circles UNSW Degree Planner" />
<meta name="keywords" content="circles, unsw, csesoc, degree, planner, course, plan" />
<meta
name="keywords"
content="circles, unsw, csesoc, devsoc, degree, planner, course, plan"
/>
</Helmet>
{showHeader && <Header />}
<div>
Expand Down
7 changes: 3 additions & 4 deletions frontend/src/pages/LandingPage/FooterSection/Footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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.
</div>
<div>
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.
</div>
<div>Circles was made with love by students for students.</div>
</S.FooterDisclaimer>
Expand Down
Loading