>_ GradeVault

Terminal Tool · Written in C

A grade book that tells your class the truth.

GradeVault is a terminal-based student grade management system written in plain C. Enter student names and marks — it computes averages, assigns letter grades, flags pass / borderline / fail status, and persists every record to disk so the roster carries over between sessions.

Grades & status

Computes each student's average, assigns a letter grade (A–F), and flags pass, borderline, or fail against fixed thresholds.

Persistence, no DB

Every session is saved to a plain pipe-delimited text file and reloaded automatically the next time GradeVault runs.

Colored terminal UI

Raw ANSI escape codes drive green / yellow / red output — no ncurses, no external libraries, just the C standard library.

The X Factor

It doesn't just calculate. It editorializes.

Most grade calculators stop at the spreadsheet dump. GradeVault auto-generates a brutally honest performance summary at the end of a session — a real computed feature, not decorative text:

Weakest / strongest subject

Averages every mark recorded for each subject across all students and picks the min and max.

Pass / borderline / fail tallies

Computed per-student from each student's own average against fixed thresholds — not hardcoded buckets.

Trend vs. last batch

Persists the class average from the last summary run to gradevault_history.dat and diffs it against the current run, so it can literally say "average dropped 8 points from last batch."

A verdict, not a template

The closing line — e.g. "A few students are sinking. Do not ignore them." — is chosen from the actual fail / borderline / pass counts.

Sample session

What running it actually looks like

gradevault — 80x24
$ ./gradevault
GradeVault - student grade management
Type 'help' for commands. 0 student record(s) loaded from gradevault.dat.
> add "Akshat" 88 76 91 83
Added Akshat - average 84.5, grade B [PASS]
> view all
1 student(s) on record:
Akshat avg=84.5 grade=B [PASS ] marks: Math=88, Physics=76, Chemistry=91, English=83
> summary
⚠️ Class Average: 84.5 - Class is passing overall
🔴 0 students failing | 🟡 0 borderline | 🟢 1 passing
📉 Weakest subject: Physics (avg 76.0)
📈 Strongest subject: Chemistry (avg 91.0)
(No previous batch on record yet - this is the baseline.)
Solid batch - everyone is clearing the bar.
> export report.txt
Exported report to report.txt
> exit
Saved 1 student record(s) to gradevault.dat. Goodbye.
>

Key concepts

C structsFile I/O (fopen/fprintf/fscanf)ANSI escape codesComputed statisticsFlat-file persistenceNo external dependenciesGCC / C standard library

Run it

Two lines, no dependencies

macOS / Linux (GCC)

$ gcc gradevault.c -o gradevault -Wall
$ ./gradevault

Windows (MinGW)

$ gcc gradevault.c -o gradevault.exe -Wall
$ gradevault.exe

Grading scale: A ≥ 90, B ≥ 75, C ≥ 60, D ≥ 40, F < 40. Status: PASS ≥ 50, BORDERLINE 40–49, FAIL < 40. The full command reference, file layout, and grading logic are documented in README.md in the project root.