This project is currently under development

CSDash

A full-stack web application for tracking university courses, assignments, exams, and grades across multiple semesters. Features include calendar visualization, deadline tracking, grade calculations, and comprehensive course management with a modern, responsive interface.

Node.js Express.js PostgreSQL Vanilla JavaScript REST API CSS3

Project Overview

This project is a comprehensive academic management system designed to help university students organize their coursework, track deadlines, and monitor academic progress. The application provides an intuitive interface for managing multiple semesters, courses, assignments, labs, projects, and exams. With features like automatic grade calculations, calendar views, and deadline tracking, it serves as a centralized hub for all academic activities. The system runs locally with a PostgreSQL database, ensuring data privacy and offline accessibility.

Key Features

Technical Implementation

The application is built using a modern full-stack architecture with Node.js and Express.js powering the backend REST API. The frontend is implemented with vanilla JavaScript, utilizing modular design patterns for maintainability and scalability. Data persistence is handled through PostgreSQL, with a well-structured schema supporting semesters, courses, assignments, exams, and grade tracking.

The backend API provides endpoints for CRUD operations on all entities, including courses, homework, labs, projects, and exams. Date handling is implemented carefully to avoid timezone issues, using PostgreSQL's DATE type and formatting dates as strings in ISO format (YYYY-MM-DD). The frontend features dynamic rendering with no page refreshes, utilizing event delegation and DOM manipulation for a smooth user experience.

The calendar view uses a custom implementation that collects events from all courses and displays them in a grid layout. Events are color-coded by type (exams, homework, labs, projects) with interactive elements for viewing details and editing. Grade calculations incorporate credit weighting and handle various grading scenarios including incomplete assignments and optional courses.

The application follows modern web development best practices including separation of concerns, modular JavaScript files, CSS custom properties for theming, and proper error handling. The interface supports both light and dark themes, providing a comfortable viewing experience for extended study sessions.