Skip to content

Grade Cutoff Squeezer

Website for approximating the grade cutoffs for courses by using user-submitted data.

Website GitHub

Features

  • User authentication with JWT
  • Course grade submission system
  • Dynamic grade cutoff calculation
  • Search-enabled course selection
  • Rate limiting for submissions
  • Mobile-responsive design
  • Year-wise course tracking

Tech Stack

Frontend

  • React.js
  • Chakra UI
  • Vite

Backend

  • Python Flask
  • SQLAlchemy
  • JWT Authentication

Setup

Prerequisites

Running

  1. Backend
    Terminal window
    cd backend
    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
    python3 run.py
  2. Frontend
    Terminal window
    cd frontend
    npm install
    npx @chakra-ui/cli snippet add toaster
    npx @chakra-ui/cli snippet add field
    npx @chakra-ui/cli snippet add provider
    npx @chakra-ui/cli snippet add select
    npm run dev # for development, otherwise: npm run build

TODO

  • Allow users to add courses
  • Fix width when no course is selected
  • Interface for viewing grade cutoffs
  • [!] Add info for users, like “only one submission per course”
  • Styling
  • [!!] Refactor backend code
  • [!] Use dropdown with search input for course selection
  • Mobile responsiveness
  • [!!] Replace temp and secret stuff with env variables
  • [!!] use jwt for cookies
  • Allow same course in different years
  • Rate limiting