The course scheduler is a web-based application to provide users with detailed information about the university courses, prerequisite for the courses and enable students to manage their courses by scheduling their courses.
- Desktop browsers: Google Chrome, Firefox, Opera, Brave, Safari, Microsoft Edge
- Mobile browsers: Safari(iOS), Google Chrome(Android)
The maual is intended for future developers who will maintain the application.
- Node.js(v16.x or higher)
- Npm (v7.x or higher)
- Modern web browser
- Git
-
Clone the repository
git clone https://github.com/your-repo-url.git
-
Navigate to the project
cd course-scheduler
The application has both the frontend and backend in the same directory. runnning the application requires the developer to open different terminals for the backend and frontend
-
Navigate to the project backend directory
cd backend-scheduler
-
Install the backend dependencies
npm install
-
Strart the server
node server.js
- Navigate to the frontend directory
cd frontend_scheduler
- Install the frontend dependencies
npm install
- run the application
npm start
- Open the browser to view the UI
http:localhost:3000
to build the application for production
npm run build
To run the test
npm test
- Navigate to the frontend directory
- GET/courses
- Fetches the list of available courses
- sample Response
{ "course_id": "AASP100", "semester": "202501", "name": "Introduction to African American Studies", "dept_id": "AASP", "department": "African American Studies", "credits": "3", "description": "Significant aspects of the history .", "grading_method": [ "Regular", "Pass-Fail", "Audit" ], "gen_ed": [ [ "DSHS", "DVUP" ] ], "core": [], "relationships": { "coreqs": null, "prereqs": null, "formerly": null, "restrictions": null, "additional_info": null, "also_offered_as": null, "credit_granted_for": null }, "sections": [ "AASP100-0101", "AASP100-0301", "AASP100-0501", "AASP100-0701", "AASP100-0201", "AASP100-0401", "AASP100-0601" ] } ``
- GET /majors
- Fetches the majors details
- Returns
{ "major_id": 238, "name": "Accounting", "college": "Robert H. Smith School of Business", "url": "https://www.rhsmith.umd.edu/programs/undergraduate/academics/academic-majors" },``
- POST /schedules
- adds a new schedule to the database
- Request body
{ "user_id":123, "course_id": 12023, "semester":"summer 2024" }, ``
-
User Authentication: Add role-based access for students, faculty, and administrators.
-
Search and Filter Functionality: Enhance course search by department, semester, and credits.
-
Data Export: Allow exporting course data in CSV and PDF formats.
-
Integration with University APIs: Sync real-time data from the university's course catalog.