“Virtus” means excellence and valor. This application is a terminal-based grades tracker and school assignment manager for those who strive to succeed with minimal distractions.
“Virtus” means excellence and valor. This application is a terminal-based grades tracker and school assignment manager for those who strive to succeed with minimal distractions.
I built a school assignment/grades tracker, easily controllable from the terminal. The target audience is exactly the types of people involved with Hackclub, which are high school programmers dealing with the balance of school and programming.
The difficult part was learning a new API, ncurses, a sometimes bug prone and hard to use library.
I was able to fix the hard to read codebase mentioned in the previous ship by implementing clang-format and clang-tidy into my workflow.
Virtus implements a assignment-based tracking system, and classes are created on-demand. The assignment data is then used to calculate GPA, weighted GPA, and various types of GPA calculation methods. There are additional features built off of the data that assignments provide, such as a calendar.
The only use of AI for the project was in the readme, where I needed to learn how to center a div. Probably less than 1% of my project as a whole.
“The summit is built in steps.”
This update is all about embracing the “kaizen” spirit and making small improvements here and there.
Log in to leave a comment
Releasing this project because it’s starting to experience feature creep.
Had a blast with TUI development, and reminded me a lot of the SDL2 days where I had fun with immediate mode rendering. I might take on that project next. For now, virtus has finished initial development and the addition of new features may be slowed.
Worked on improving grades calculation.
Log in to leave a comment
The Lazy Update
Log in to leave a comment
Log in to leave a comment
Added a calendar view.
Log in to leave a comment
The Human Readable Code Update
Log in to leave a comment
Clean up the interface a bit more. Made sure the horizontal space between levels of headings is always 2, added more space between elements/toggles, etc.
The code looks pretty messy though, which is something that I am definitely not satisfied with.
In addition, the Assignments and Grades tab look really rushed. I think I’m going to focus on those two next.
Log in to leave a comment
The UI Update
Log in to leave a comment
I added basic assignment management. Struggled a bit since it’s my first time using curses, but I think I got something pretty good here.
Log in to leave a comment
Added initial project boilerplate
Log in to leave a comment