University timetable: optimize the entry of student curriculum
We work at the “University Schedule” company , we make mobile applications (iOS, Android, Windows Phone), in which the curriculum of students and teachers is published.
One of the main issues of our project remains - how to make the student as easy and quick as possible to enter his schedule into our database. Manually interrupting the schedule is long and dreary. It is good if the university has an electronic schedule and they have integrated with our service, but 90-93% of universities in Russia do not have an electronic schedule. And integration is not in a hurry even more. There is nothing left but to interrupt it manually.

At first, we used excel templates with macros, an instruction for a couple of pages was attached to them, it could scare anyone. In the spring, we made a web form to make the process of interrupting our schedule more friendly. Since the end of August, we began to receive hundreds of schedules per day through this web form and again drew attention to this process. Moderation took place in manual mode, and we were inundated with a stream of schedules. It was necessary to automate, and a little later, when the flow of schedules decreased, then optimize.
We redid the whole form. Now it is shown in the form of a table familiar to the student, which he often sees on the wall near the dean’s office, and this table can be filled in with your own pairs.
In order not to fill out the same thing every day, we made a separate entry for the call schedule.

If you enter the start time of the first pair, the web form itself will suggest that the end of the pair be done in one and a half hours, and a break between pairs - for 15 minutes. If this is not so at the university, then as soon as the user begins to enter their intervals for the first time, then the “learn” web form will propose values on the call grid of this university.
Our system supports the evenness / oddness of classes in the periodic schedule, and the "final courses" in the modular schedule (the course of disciplines, which runs from date to date, or only on certain dates). Implemented in this way:

When redoing this form, they decided that it should be visual and familiar not only after filling, but also during. It looks like this (filled out for one day):

If the university and the faculty already existed in our database, then the schedule will be checked much faster. If a university or faculty is not in our database, then we will have to create it ourselves. We are still afraid to give this to users, because they often write abbreviated names, not complete, there are many duplicates - the database is cluttered.
Unfortunately, we understand that even technically you can kill almost any schedule here, but it is not always convenient to do this. For example, a cyclic schedule that is used in medical schools. Or a session schedule, which is essentially a calendar and loosely tied to the days of the week. We will work in this direction.
We will be grateful if you point out the shortcomings and special cases of other types of schedules that are not supported by us.
One of the main issues of our project remains - how to make the student as easy and quick as possible to enter his schedule into our database. Manually interrupting the schedule is long and dreary. It is good if the university has an electronic schedule and they have integrated with our service, but 90-93% of universities in Russia do not have an electronic schedule. And integration is not in a hurry even more. There is nothing left but to interrupt it manually.

At first, we used excel templates with macros, an instruction for a couple of pages was attached to them, it could scare anyone. In the spring, we made a web form to make the process of interrupting our schedule more friendly. Since the end of August, we began to receive hundreds of schedules per day through this web form and again drew attention to this process. Moderation took place in manual mode, and we were inundated with a stream of schedules. It was necessary to automate, and a little later, when the flow of schedules decreased, then optimize.
We redid the whole form. Now it is shown in the form of a table familiar to the student, which he often sees on the wall near the dean’s office, and this table can be filled in with your own pairs.
Call schedule.
In order not to fill out the same thing every day, we made a separate entry for the call schedule.

If you enter the start time of the first pair, the web form itself will suggest that the end of the pair be done in one and a half hours, and a break between pairs - for 15 minutes. If this is not so at the university, then as soon as the user begins to enter their intervals for the first time, then the “learn” web form will propose values on the call grid of this university.
Parity of the week in the periodic schedule, support for the modular schedule.
Our system supports the evenness / oddness of classes in the periodic schedule, and the "final courses" in the modular schedule (the course of disciplines, which runs from date to date, or only on certain dates). Implemented in this way:

When redoing this form, they decided that it should be visual and familiar not only after filling, but also during. It looks like this (filled out for one day):

If the university and the faculty already existed in our database, then the schedule will be checked much faster. If a university or faculty is not in our database, then we will have to create it ourselves. We are still afraid to give this to users, because they often write abbreviated names, not complete, there are many duplicates - the database is cluttered.
Unfortunately, we understand that even technically you can kill almost any schedule here, but it is not always convenient to do this. For example, a cyclic schedule that is used in medical schools. Or a session schedule, which is essentially a calendar and loosely tied to the days of the week. We will work in this direction.
We will be grateful if you point out the shortcomings and special cases of other types of schedules that are not supported by us.