Inspiration

Traditional timetable scheduling often involves manual processes, leading to:

  • Inefficiencies: Time-consuming and prone to errors.
  • Inflexibility: Difficulty in accommodating unforeseen changes (e.g., teacher absences, room unavailability).
  • Suboptimal Solutions: Schedules may not always be the most efficient or equitable for all stakeholders (teachers, students).

We were inspired to create a dynamic scheduling system that addresses these challenges by:

  • Automating: Automating the scheduling process to save time and reduce human error.
  • Adapting: Enabling real-time adjustments to schedules based on changing circumstances.
  • Optimizing: Utilizing algorithms to generate the best possible schedules that consider various constraints and preferences.

This project aims to empower educational institutions with a more efficient and flexible timetable management solution.

What it does

This web application provides a dynamic and user-friendly platform for creating and managing timetables. Key features include:

  • Dynamic Scheduling:
    • Users can define constraints (e.g., teacher availability, room capacity, student preferences).
    • The system utilizes algorithms (e.g., genetic algorithms, constraint programming) to generate optimized schedules that minimize conflicts.
    • Real-time adjustments can be made to schedules based on changes in constraints.
  • User-Friendly Interface:
    • Intuitive interface for inputting data (courses, teachers, classrooms, time slots).
    • Visual representations of schedules using interactive calendars.
    • Easy navigation and data entry.
  • Collaboration Features:
    • Real-time communication and collaboration between teachers, students, and administrators.
    • Ability to submit and approve scheduling requests.

How we built it

  • Frontend (Angular): Developed the user interface using Angular, handling data binding, user interactions, and client-side logic.
  • Backend (Node.js & Express.js): Built a RESTful API using Node.js and Express.js to handle server-side logic, database interactions, and API endpoints.
  • Database (MongoDB): Utilized MongoDB to store user data, schedules, courses, classrooms, and other relevant information.
  • Scheduling Algorithms: Implemented and integrated scheduling algorithms (e.g., genetic algorithms, constraint programming) into the backend to generate optimized schedules.

Challenges we ran into

  • Developing robust scheduling algorithms: Ensuring the algorithms efficiently handle complex constraints and generate optimal schedules within reasonable timeframes.
  • Maintaining data consistency: Ensuring data integrity and preventing conflicts as users interact with the system and schedules are modified.
  • Creating a user-friendly and intuitive interface: Designing an interface that is easy to navigate and understand for users with varying levels of technical expertise.

Accomplishments that we're proud of

  • Successfully developing a functional and dynamic scheduling system: The application successfully addresses the limitations of traditional scheduling methods.
  • Implementing efficient scheduling algorithms: The system generates optimized schedules that minimize conflicts and maximize resource utilization.
  • Creating a user-friendly and intuitive interface: The application is easy to use and provides a positive user experience.

What we learned

  • Full-stack web development using the MEAN stack: Gained valuable experience in frontend development (Angular), backend development (Node.js, Express.js), and database management (MongoDB).
  • Designing and implementing complex algorithms: Learned about the principles of algorithm design and their application in real-world problems.
  • Building a collaborative and user-centered application: Understood the importance of user experience and the value of creating a system that facilitates collaboration among users.
Share this project:

Updates