Recently our team has been working on a project for the school. While working a completely new and extraordinary solution was born, having no similar analogs in the market today. That is why we want (without undue modesty) to tell about the solutions and developments we have gone through and share our experiences. We do believe and can say absolutely confident that our work and findings will be useful for the business owners and stakeholders in various fields, not just in the field of education.
The basic project is school management software. It’s quite an ordinary yet comprehensive solution for digitizing school management, providing full control over the educational process, including all the roles involved. The software includes such functionality as a curriculum board, lesson schedule, logbook, and many more.
But most time and effort was put into the Automatic scheduling feature. This feature is worth talking about and could have been a separate project on its own because it is a unique solution, having no analog in the market today.
Our customers reached us with a very common problem. To operate the educational process they have to use different managing systems for reporting, scheduling, working with the logbooks and class registers. Therefore, we have to not just develop the software but to create the whole system workflow, make a product design, conduct the testing phase to assure the quality of the product and its being in accordance with the end user's requirements and expectations.
To achieve a goal having been set we had to start with conducting the research of the market, check and analyze all the existing solutions, and moreover have a close look at education systems of different regions. All these pre-actions were critical to creating an unprecedented solution.
The automatic scheduling feature was put a lot of time and effort on. This feature could have been a separate project on its own, as we have mentioned earlier because composing any schedule is a complex administrative work by itself. It requires taking into account and considering many nuances and points.
As for the automation of this process, the task was not easy at all. There was no open-source algorithm for it to base our solution and take it as a mockup technology. So we have chosen an extraordinary decision to use a genetic algorithm, which allowed us to make the solution a multi-purpose one. The reason is pretty simple - it was created manually from scratch by our developers.
Have an exciting project on your mind?
We're ready to help! Get consult with our specialist right here.
Key peculiarities of algorithm
The generic algorithm on its own is not an innovation at all. We were inspired by one of the ideas found on GitHub, so it was not just taken to work, but shaped properly in accordance with the project needs.
The thing is, the initial algorithm could just work under the standardized conditions, counting the time when the lesson should start and end. So we worked over it a lot, making the algorithm what it is now - a unique solution with diverse functionality, applicable in many fields and niches.
There are a few of our developers who were working on implementing this algorithm. Backend engineer, Pavel is one of them. And he’s gonna share its features:
“We used a genetic algorithm, being a substring of the evolutionary ones when math from biology is used. So to say, “under the hood” there's a simulation of mutation occurring and chromosome forming. As soon as the simulations are completed, the optimal option is picked, or the one, which is matching the inserted criteria best.
In alternative solutions, presented in the market, the planning is realized with simple iterations. The final result has a lot of flaws and faults, the number of events for the teachers is not balanced, so the teachers are often overloaded. In our case, the algorithm creates a collection of a couple of schedule options. After that, it picks the best match. It looks like a survival of the fittest in natural selection. A genetic algorithm makes this selection possible
But there are still a lot of points to rework. Nowadays, the algorithms we use do not include the setting and limitation of the beginning and the end of the classes for both students and teachers. The teachers’ load and so-called “hours for academic development” are not included in the calculation as well".
Snags and difficulties
In the very beginning, we’ve tried a few ordinary decisions, with open-source algorithms for them. But there were hitches with equal distribution of the teachers' and students' workload and the need to generate a different schedule for every interaction. As a rule, the schedule is composed based on common iteration. The end result hardly satisfies the needs of the end-users - there are “gaps” in it, some events can occur being scheduled in a row, the workload for the teachers is not distributed properly.
In our case, the algorithm produces 5 options of the might-be schedule. After that the selections start, picking the most appropriate ones as the natural selection works, finding the best option to survive under certain conditions. It is the work generic algorithms do.
Moreover, there are variables such as teachers' days off, weekends, and public holidays (which are different in different regions).
During the production process, another problem was pointed out. We need to have an opportunity to edit the schedule. Therefore, we’ve got the one that takes into account the overwork / non-completion of teachers. Also, the annual schedule is duplicated in the current one which can be edited and saved back to the annual.
This project and the challenges that have been overcome is another proof of the fact that our team always tries to find the best solution for each and every task, pushing the limits, applying all the skill and knowledge, going beyond the standard view to deliver the product of high quality and in accordance with the customers’ needs.