Skip to content

maximusdesir/gradeTracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Grade Tracker

CSC 124, Spring 2026

A command-line grade tracking application written in Python. Track courses, grade categories, weighted averages, and semester GPA all from the terminal.


About

Grade Tracker was built as a semester project for CSC 124. The goal was to create a practical tool to use for all of a student's classes instead of having to guess what your final grade is or doing unnecessary math to calculate your final grade.

The program stores course data locally as JSON so your grades persist between sessions, and uses NumPy for all grade calculations to ensure accuracy with floating-point weights.


Features

  • Add courses with a credit count and custom grade categories (e.g. Homework 20%, Exams 50%, Final 30%)
  • Calculate your current grade by entering individual assignment scores or a category average — skipping incomplete categories (like a final exam) is supported
  • What-if calculator — enter your current grades and a target final grade, and the program tells you exactly what you need to score on remaining work
  • Set letter grades for completed courses
  • Semester GPA calculator using a standard 4.0 scale, weighted by credit hours
  • Persistent storage — courses are saved to courses.json and reloaded on startup

Requirements

  • Jupyter Notebook
  • Python 3.8+
  • NumPy

Install dependencies:

pip install numpy

Usage

On startup, if a save file exists you will be prompted to load your courses. From the main menu:

  [1] Add a course
  [2] View all courses
  [3] Remove a course
  [4] Enter / calculate grades
  [5] What-if calculator
  [6] Set letter grade for a course
  [7] Calculate semester GPA
  [8] Load courses from file
  [9] Save and quit

Adding a course

Enter the course name in DEPT 000 format (e.g. CSC 124, MATH 201), the number of credits, and then define as many grade categories as your syllabus specifies. Weights are entered as decimals and must sum to 100%.

Calculating your grade

Select a course and choose whether you know your overall category grade or want to enter individual assignment scores. Categories you haven't completed yet (like a final exam) can be skipped.

What-if calculator

Enter your grades for completed categories and your target final grade. The program solves for the average score you need across all remaining work to hit that target.


Data Storage

Courses are saved to courses.json in the same directory as the script. The file is created automatically on first save and updated whenever a course is added, removed, or a letter grade is set.


Project Structure

gradeTracker/
├── gradeTracker.py   # main application
├── courses.json      # auto-generated save file (created at runtime)
└── README.md

Authors

Matthew Begg, Roman Colaberdino, Maximus Desir

About

A command-line grade tracking application written in Python. Track courses, grade categories, weighted averages, and semester GPA all from the terminal.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors