{"id":18486832,"url":"https://github.com/jrodal98/grade-manager","last_synced_at":"2026-04-29T00:31:45.055Z","repository":{"id":116040121,"uuid":"164980723","full_name":"jrodal98/grade-manager","owner":"jrodal98","description":"Fully featured PyQT5 application for tracking grades across multiple courses.","archived":false,"fork":false,"pushed_at":"2020-01-09T22:43:39.000Z","size":71338,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-16T22:18:56.412Z","etag":null,"topics":["course-grade","education","grade-management","grade-manager","gradebook","grades","gui","pyqt5","python","qt5","school"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jrodal98.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-10T03:11:46.000Z","updated_at":"2020-04-27T23:02:21.000Z","dependencies_parsed_at":"2023-03-17T18:30:32.786Z","dependency_job_id":null,"html_url":"https://github.com/jrodal98/grade-manager","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrodal98%2Fgrade-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrodal98%2Fgrade-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrodal98%2Fgrade-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrodal98%2Fgrade-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jrodal98","download_url":"https://codeload.github.com/jrodal98/grade-manager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254036843,"owners_count":22003654,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["course-grade","education","grade-management","grade-manager","gradebook","grades","gui","pyqt5","python","qt5","school"],"created_at":"2024-11-06T12:49:52.189Z","updated_at":"2026-04-29T00:31:40.033Z","avatar_url":"https://github.com/jrodal98.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Purpose\n\nThe purpose of this application is to provide a convenient way for students to track their grades for multiple courses.\n\n## Current Features\n\n- Adding courses, assignment types, assignments, weights, and grades\n- Add extra credit assignments\n- Add raw extra credit to final course grade\n- Reorder courses, assignment types, and assignments.\n- Grade Calculation\n  - Remove specific assignments from grade calculation if desired\n- Edit using familiar keybinds\n- Choose between the default light theme or two dark themes\n- Application caches settings\n  - Upon rebooting the application, the previously selected file and theme will be active.\n  \nThe application was created using PyQT5.  The application consists of a single window containing a menubar and a tree table widget.  It comes with three different styles: a light theme and two dark themes.\n\n![alt text](images/light_theme.png \"Light theme\")\n![alt text](images/dark_theme1.png \"Dark theme #1\")\n![alt text](images/dark_theme2.png \"QTDark\")\n\nThe creators of the dark theme style sheets are listed in the [Acknowledgements](#acknowledgements) section.\n\n## How to use the Application\n\n### Download Instructions\n\nClone this repository and install python 3.6+ if you haven't already (3.7 was used for the development of the application).  If PyQt5 isn't installed, then running `pip3 install -r requirements.txt` or some variant similar to the command listed should work.  Once everything is setup, running `python3 src/gui.py` or some similar variant will launch the application.  Alternatively, there is a windows executable in the `releases` tab on github, though it is not always up to date, as I don't develop on windows.\n\n```bash\ngit clone https://github.com/jrodal98/Grade_Manager.git\ncd Grade_Manager\npip3 install -r requirements.txt\npython3 src/gui.py\n```\n\nIf the application doesn't seem to be displaying correctly, try using a different style.  I haven't experienced any issues on linux (arch, fedora 29/30, ubuntu 18.04/19.04), nor have I seen issues on mac os, but I've had inconsistencies when running on windows.\n\n### Example\n\nTo test your installation and/or look at an example of how the different functionalities\nwere used to track my spring 2019 grades, open the `spring2019.grdb` file.  Feel free to\nedit the file as you follow the tutorial below.\n\n### Adding a Course\nTo add a course, right click anywhere blank area in the table or an existing course and select \"Add New Course.\"  Alternatively, press the \"Insert\" key while not touching any tree items.  Double click the new item to edit its name, or select the item and press the \"F2\" key.  The grade section for the course will be updated automatically as assignments are added and/or removed.\n\n### Removing a Course\nTo remove a course, right click the course and select \"Remove Selected Course.\" Double click the new item to edit its name.  Alternatively, select the course and press the \"Delete\" key.\n\n### Adding an Assignment Type (Exams, HW, etc)\nTo add an Assignment Type for a course, right click the course and select \"Add New Assignment Type.\" Alternatively, select the course and press the \"Insert\" key. Double click the new item to edit its name, or press the \"F2\" key. You should put a percent weight in \"Weight\" column following one of the following formats:\n- decimal format (ex: 10% becomes .1 or 0.1)\n- fractional format (ex: insert 1/5, 55/100, etc)\n\n### Removing an Assignment Type\nTo remove an assignment type, right click the assignment type and select \"Remove Selected Assignment Type.\" Alternatively, select the assignment type and press the \"Delete\" key.\n\n### Adding an Assignment\nTo add an assignment for an assignment type, right click the assignment type and select \"Add New Assignment.\"  Alternatively, select the assignment type and press the \"Insert\" key.  You should put a percent value for the grade received on the assignment in the \"Grade\" column.  If the assignment has not yet been graded, simply leave the \"Grade\" column blank.  The grade value should be one of the following formats:\n- decimal format (ex: 96.5% becomes .965 or 0.965)\n- fractional format (ex: insert 49/50, 112.5/139, etc)\n\n### Removing an Assignment\nTo remove an assignment, right click the assignment type and select \"Remove Selected Assignment.\"  Alternatively, select the assignment and press the \"Delete\" key.\n\n### Adding an Extra Credit Category\nThis one works slightly different than the rest of the options listed above.  The purpose\nof the extra credit category is to add an unweighted amount of extra credit directly\nto a final course grade.  To do this, right click on the course and select the\nextra credit option.  Then, add assignments like normal.  Make sure that the assignment\ngrades that you assign are the raw percentages that you want to add to the course grade.\nFor example, if you want to add 2% of extra credit to your final grade, you would\nwant to create an assignment and then give it a grade of 0.02, or create multiple assignments\nthat add up to a grade of 0.02.\n\n### Reordering Courses, Assignment Types, and Assignments\nThis is reasonably intuitive.  Simply drag and drop the label wherever you want it to go.\n\n### Saving files, opening files, and similar\nIt basically works the same as any other software.  Just go to the File menubar or use common shortcuts (Ctrl+S is save, etc).  The extension for the application is .grdb, short for gradebook.\n\n## Advanced Features\n\nI am looking into adding a few advanced features for powerusers.  I will add them to the readme as they are developed.\n\n### Bash-like expansion\n\nCreate multiple assignments that follow the same naming pattern by putting a bash pattern in for the assignment name.  For example the assignment name could be `Homework {1..3}` and the application will automatically generate assignments named `Homework 1`, `Homework 2`, and `Homework 3`.\n\n## Acknowledgements\n\nThe first depicted dark theme is QDarkStyle by Colin Duquesnoy and can be found [here](https://github.com/ColinDuquesnoy/QDarkStyleSheet).  The second depicted dark theme is QTDark by Emanuel Claesson and can be found [here](https://github.com/EClaesson/QTDark).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjrodal98%2Fgrade-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjrodal98%2Fgrade-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjrodal98%2Fgrade-manager/lists"}