A Python-based grade tracker that calculates weighted course grades and helps students organize assignments across different grading categories.
Currently Under Active Development TL;DR Next steps: -Integrate a web-based approach -Check for edge cases and errors
- Create courses with custom credit hours
- Create weighted grading categories
- Add assignments and grades to different categories
- Calculate weighted course grades
- Edit existing grades
- Remove assignments
- Validate user input and handle common errors
- Improved current-grade calculations for courses with ungraded categories
- Target grade calculator ("What grade do I need on my final?")
- GPA and semester grade projections
- Persistent course and grade storage
- Automated testing
- Improved command-line interface
- Graphical or web-based user interface
A course can contain multiple weighted categories, such as:
| Category | Weight |
|---|---|
| Homework | 20% |
| Exams | 50% |
| Final Exam | 30% |
Assignments are added to their respective categories. The program averages the grades within each category and applies the category weight to calculate the overall course grade.
For example:
Homework:
Assignment 1 — 95%
Assignment 2 — 90%
Exams:
Exam 1 — 88%
Exam 2 — 94%
The program uses these scores and their corresponding category weights to calculate the student's weighted grade.
- Python 3
Clone the repository:
git clone https://github.com/BluePaper1122/Grade-Checking-Project.gitNavigate into the project directory:
cd Grade-Checking-ProjectRun the program:
python Grade-Checker.pyGrade-Checking-Project/
├── Grade-Checker.py
├── README.md
└── .gitignore
As the project grows, the program will be separated into multiple modules for course management, grade calculations, data storage, and testing.
This project is being developed as a way to practice and apply concepts including:
- Object-oriented programming
- Python classes and methods
- Lists and dictionaries
- Type hints
- Input validation
- Exception handling
- Weighted-average calculations
- Debugging and edge-case handling
- Git and version control
- Course objects
- Assignment storage
- Weighted categories
- Grade calculation
- Grade editing
- Grade removal
- Refactor course and category data models
- Improve validation
- Handle ungraded categories correctly
- Target-grade calculator
- GPA calculator
- Save and load course data
- Unit tests
- Improved command-line interface
- Complete documentation
- Database integration
- Grade visualization
- Web interface
- Semester GPA projections
- Grade scenario simulation
In active development.
The current version focuses on implementing and refining the core grade-calculation logic. Additional features and architectural improvements are planned as development continues.