Skip to content

The Timetable Management System is designed to streamline the scheduling processes in an educational institution, supporting a seamless collaboration between administrators, faculty members, and students.

License

Notifications You must be signed in to change notification settings

saputhebeast/af-assignment

Repository files navigation

How the Timetable Management System Works: An Overview

The Timetable Management System is designed to streamline the scheduling processes in an educational institution, supporting a seamless collaboration between administrators, faculty members, and students. With a focus on maximizing resource utilization and preventing scheduling conflicts, the system revolves around several key functionalities:

  • Role-Based Access Control: Different roles (Admin, Faculty, Students) with specific permissions ensure a structured and efficient management approach.
  • Booking Management: Faculty and students can request bookings for events or classes, which are initially in a pending state awaiting admin approval.
  • Timetable Creation: Upon admin approval, bookings are transformed into timetable events, with checks in place to prevent overlaps and ensure availability.
  • Flexible Scheduling: The system allows for full-day or part-day events (up to 4 hours for part-day) and supports both one-time and recurrent scheduling to accommodate various needs.
  • Comprehensive Management Features: Beyond scheduling, the system facilitates the management of courses, classrooms, faculties, enrollments, and notifications.

This system aims to provide a comprehensive solution to the challenges of managing academic schedules, ensuring that all events are organized efficiently and effectively without conflicts.

System Overview

For a visual representation of the system architecture and interactions between the components, refer to the System Overview diagram.

System Overview Diagram

Database Design

To understand the database schema and relationships between collections, view the Database Design diagram.

Database Design Diagram

Setting Up and Running the Application

Follow these steps to set up and run the application in your local development environment:

  1. Install Dependencies:

    • Use your preferred package manager to install the dependencies. For example, with pnpm, you would use:
      pnpm install
  2. Run the Application:

    • Start the application in development mode with live reloading:
      pnpm run dev
    • This command will start the server, and you should see logs in the terminal indicating that the server is running and listening on a specific port (sample request http://localhost:8085).
  3. API Testing with Postman:

    • Download the provided Postman collection for a comprehensive set of requests to test the API endpoints.
    • Import the collection into Postman to start testing the API interactions easily.

API Documentation

For detailed information on API endpoints, request formats, and expected responses, refer to the API documentation:

View API Documentation

This documentation includes examples, possible status codes, and descriptions of each endpoint to help you understand how to interact with the API effectively.

Technology Stack

Node.js, Express, Mongoose, MongoDB

Author

About

The Timetable Management System is designed to streamline the scheduling processes in an educational institution, supporting a seamless collaboration between administrators, faculty members, and students.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages