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.
Log in or sign up for Devpost to join the conversation.