About The Company
UOLO is an Indian company that focuses on providing technology-driven solutions for educational institutions. They specialize in developing software and platforms that aim to enhance communication, collaboration, and engagement between schools, parents, and students. UOLO offers a range of products and services, including a school communication app, digital attendance systems, parent-teacher collaboration tools, exam management platforms, and learning management systems. These solutions are designed to streamline administrative tasks, facilitate effective communication, and support the overall learning experience in schools.
My Role
During my internship at UOLO, I undertook the exciting task of developing a comprehensive timetable scheduling system for schools. The objective was to create a user-friendly platform that enables schools to efficiently manage their timetables while empowering teachers to personalize their own schedules. As part of the project, I had the creative freedom to design the system according to my vision and add features beyond the initial requirements. One crucial aspect was accommodating break times for teachers, as UOLO's main clients were Nursery to 5th-grade schools, which often incorporate frequent breaks throughout the day. The resulting system allowed for the creation of multiple timetables for different classes, as well as flexibility in generating multiple timetables for the same class.
Timetable scheduling is a complex problem that requires a lot of computational power. Many institutions use graph coloring to achieve a conflict free schedule, but usually you get one schedule. However, I wanted to give the user (intended to be the school principal or administrator) the choice to select from multiple schedules. To achieve this, I used a genetic algorithm to generate multiple conflict-free solutions. The algorithm was able to generate multiple schedules in a matter of seconds. The user could then select the best choice for their school.
To achieve a responsive and interactive user interface, I employed Vue.js, a progressive JavaScript framework, for the front-end development. Vue.js allowed me to seamlessly create a dynamic user experience that adapts to different screen sizes. To handle data exchange between the front-end and back-end, I utilized Axios, a versatile JavaScript library for making HTTP requests.
For the back-end, I opted for Flask, a Python-based server framework renowned for its simplicity and flexibility, to build a robust RESTful API. Flask empowered me to handle the logic and data management effectively, ensuring seamless communication between the front-end and the database. By leveraging the strengths of these frameworks and technologies, I successfully created a user-friendly and efficient timetable scheduling system for schools, meeting the specific needs and requirements of UOLO and its clientele.
I made a strategic decision to utilize Python as the primary language for the project. Python's exceptional data parsing capabilities made it an ideal choice, allowing me to efficiently process and manipulate the complex data involved in creating and managing timetables.
To future-proof the system and provide flexibility, I incorporated a feature that enabled users to upload their configurations as files. This design choice allowed schools to customize their scheduling preferences and easily adapt the system to their unique requirements. By allowing users to run the timetable generator using their uploaded configurations, the system provided a seamless and user-friendly experience.
All of this secured a high level of adaptability and robustness, meeting the dynamic needs of schools and ensuring long-term usability.