Return to Portfolio

Project Detail

Course Management & Grade Tracking System

Terminal academic management application written in C

A terminal-based academic management application using ncurses for course organization, assignment tracking, grade calculations, CSV persistence, and an interactive text interface.

Overview

Project Overview

The Course Management & Grade Tracking System is a modular C application designed to help students organize courses, manage assignments, and calculate grades through a terminal-based interface.

Core Features

  • Create, edit, delete, and organize courses.
  • Manage assignments and track academic progress within each course.
  • Calculate grades and display completion status.
  • Use CSV persistence across multiple program executions.
  • Render an interactive terminal UI with visual feedback.

Project Architecture

  • CMS module for course creation, deletion, sorting, and CSV synchronization.
  • GTA module for assignment management, grade tracking, filtering, and calculations.
  • Persistence layer using CSV files for durable application data.

Technical Concepts

  • C Programming
  • ncurses
  • CSV Parsing
  • Linked Lists
  • Dynamic Memory
  • Linux Development

Terminal Workflow

> Loading courses.csv

> Rendering course menu

> Selected: Systems Programming

> Assignment due date approaching

> Updating grade calculation

> Changes saved successfully

Implementation

Data Structure Preview

struct assignment
{
    struct assignment *p_next_assignment;
    char completed[2];
    char due_date[11];
    char name[51];
    float earned_points;
    float total_points;
};