At UIUC, a problem that many students face is that there is no way they can keep track of all of their assignments on one platform. UIUC uses multiple Learning Management Systems, such as Canvas and PrairieLearn, and that makes it difficult to track when all of our assignments are due. To solve this problem, our group decided to make a website that fetches all assignments from Canvas and PrairieLearn and displays them in two different views: a List View (which shows a List of all upcoming assignments) and a Calendar View (which displays upcoming assignments on a calendar).
- Ryan Lee (rdlee4): Backend Development - Canvas/PrairieLearn integration, database, and integration w/ frontend
- Vijay Daita (vijayd2): Frontend Development - page design, integration w/ backend
- Annapoorna Narayan (an77): Backend Development - OAuth, Login, other misc. features
- Juno Kim (jkim826): Devops/Frontend - Dev Container, GitHub Actions, Test Cases
Backend:
- Programming Language: Python
- Web Server: Django
- Database: SQLite (stores our assignment data)
- Webscraping: Selenium WebDriver (Used to scrape PrairieLearn data)
- Canvas API Access: CanvasAPI (Used to retrieve Canvas assignment data)
Frontend:
- Markup Language: HTML
- UI Framework: VueifyJS
- Python 3.x
- Django
- Docker (for containerized setup)
- Other dependencies listed in
requirements.txt
-
Clone the repository:
git clone <repository-url> cd backend
-
Install the required dependencies:
pip install -r requirements.txt
-
Set up the database:
python manage.py migrate
-
Configure environment variables in the
.env
file located in thebackend
directory. Ensure the following variables are set:GOOGLE_CLIENT_ID=<your-google-client-id> GOOGLE_CLIENT_SECRET=<your-google-client-secret> CANVAS_API_KEY=<your-canvas-api-key>
-
Run the application:
python manage.py runserver
-
Build the Docker image:
docker build -t project-image .
-
Run the Docker container:
docker run -d -p 8000:8000 --env-file .env project-image
- Environment variables are configured in the
.env
file located in thebackend
directory. - Ensure the following variables are set:
GOOGLE_CLIENT_ID=<your-google-client-id> GOOGLE_CLIENT_SECRET=<your-google-client-secret> CANVAS_API_KEY=<your-canvas-api-key>
This project uses the MIT License.