Documentation
Course-Vault
Course-Vault is a shared academic resource platform built for university students, with an initial focus on Computer Science coursework. It addresses a common, everyday problem: course materials such as lecture notes, past exams, and helpful external tutorials are typically scattered across informal channels like Telegram groups, personal drives, and word-of-mouth sharing — making them hard to find, easy to lose, and inconsistent in quality. CourseVault consolidates all of this into one organized, structured platform where students can browse by their year of study and course to instantly access what they need.
The application follows a simple, intuitive flow: a student first selects their year (First through Fourth year), then browses the list of courses available for that year, and finally selects a specific course to view its associated resources — categorized as Notes, Midterm exams, or Final exams — alongside a curated set of external links pointing to high-quality supplementary tutorials (such as W3Schools) for specific topics within that course. Resources can be uploaded as either PDF documents or images, accommodating both formatted lecture material and photographed handwritten notes, which is a common and practical way students actually document coursework.
Each course also includes an AI-generated summary, powered by the Groq API, giving students a quick overview before they start a course — covering what the course is about, who it's for, and its key points — so students can orient themselves before diving into the actual materials.
Course-Vault is available in two forms: a desktop application built with JavaFX, and a React-based web version, giving students the flexibility to access their course materials however suits them. Alongside these, a dedicated Admin panel allows course content to be managed directly — adding, editing, and deleting courses, resources, and external links — without needing to go through raw API calls.
The system is built with a clean, layered backend architecture (Controller → Service → Repository) that separates HTTP handling, business logic, and database access into distinct responsibilities, making the codebase easier to extend and maintain as the project grows. A dedicated file storage service manages uploaded PDFs and images independently from the metadata stored in the relational database, keeping file handling logic isolated and swappable.
