Documentation
CourseVault
CourseVault 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.
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. Looking ahead, CourseVault is designed to support future integration with a free large language model API to generate AI-powered flashcards, content summaries, and mock exam questions directly from uploaded study materials — turning static documents into active, interactive study tools.
