Course Management System
Developed a robust, web-based Course Management System using a Next.js frontend and Laravel backend, designed to streamline administrative workflows for academic faculty. This platform facilitates efficient oversight of handled and enrolled courses through a secure, high-performance interface. Key features include real-time data management, and a fully responsive design that ensures seamless functionality across all devices, effectively replacing manual tracking with a centralized, automated solution.
Overview
Course Management System is an instructor-facing web application that streamlines class list management. Built as a full-stack project using Next.js and Laravel, it gives instructors a centralized place to upload, manage, and track their assigned course rosters, without touching spreadsheets manually after the initial import.
Features & Functionality
Instructors log in and land on a dashboard showing their assigned course cards. Clicking a course opens the full class list for that section. Rosters are imported via CSV upload, making initial population fast. From there, instructors can add late enrollees manually, edit student names, and delete students who have dropped the course. An activity log tracks every action taken; uploads, additions, edits, and deletions, giving instructors a clear audit trail of changes made over time. Access is scoped per instructor, meaning each user only sees the courses assigned to them and can only upload CSVs corresponding to those courses.
Technical Implementation
The frontend is built with Next.js, handling routing and UI. The backend is a Laravel REST API managing authentication, course-instructor assignment, CSV parsing, and student CRUD operations. MySQL serves as the database. The separation of frontend and backend means the two layers communicate via API calls, with Laravel enforcing the access control logic server-side.
Reflection
This project was my first time working with Laravel as a backend framework. Wiring it together with Next.js — handling auth tokens, scoping data per instructor, and parsing CSV uploads correctly, was the most involved part. Next.js was already familiar territory, but learning Laravel's routing, and API structure added a meaningful new layer to the stack. Given more time, I'd add bulk edit support and export functionality so instructors could pull updated rosters back out as CSV after making changes.
Team
Tech Stack
Links