📜 ⬆️ ⬇️

Electronic queue of applicants



I want to talk about one interesting problem that arose before me and my colleague at the university. Although now and summer, but life there is not quenched for a minute. All fussing, processing documents, counting applicants, if all summarized - the season of entry into universities. I study at the technical faculty of the university, and I study well, so we were offered to write an electronic queue for admission of applicants. Without hesitation, my colleague and I (both in group and work) agreed. The reason for not wanting to use some kind of ready-made products for the university was the exorbitant price of these developments, which was about 300t.r. Maybe not a lot, but for our city the price is high, which is probably why they decided to attract students from their university, to all other things, this is also a good experience in the industry.

Retreat - as it was before

Last year everything was terrible: the applicant comes with his parents, asks who is the last person in the queue for filing documents, and is waiting in the wings (yes, exactly an hour, because sometimes the clock had to sit). Then the released secretary went out into the corridor and with a loud voice asked who was next for such and such a specialty. After the applicant has applied for one specialty, he stands in a different line, in order to apply for another specialty. This year everything had to change ...


We were given the task “To develop such a system that would allow the applicant not to worry where he stands and not stand in several queues if he enters several specialties”.
Provided the following information:

“The admissions committee is in three classrooms. A total of 28 tables and 28 secretaries, 10 secretaries in two rooms and 8 in the third. Each secretary is assigned a specialty. While the stream of applicants is small, the secretary accepts documents only in his specialty. When the flow of applicants becomes large, so that the secretaries would not sit idle, they begin to accept documents from other specialties of their faculty. ”
It turns out that we have only 28 lines. For example, in Sberbank, in order to get up in two queues, you must take two tickets, and there is a possibility that while you are serving in one queue, you may be called to another. We considered this unacceptable for our case and made it possible to stand simultaneously in several queues.



Brainstorming the task allowed us to make a brief summary of the development, which later had to be followed:
After that, immediately began to collect ideas on how to implement it all. Microsoft SQL SERVER 2005 and Delphi became the initial data for the development. There were a lot of ideas and several times they were revised, but in the end, the idea of ​​a system of applications was still formed.

It was decided to divide the system into 4 programs:
  1. Program for displaying information on the big screen (using a projector) in the place where applicants will be waiting
  2. Program for secretaries, allowing you to take applicants
  3. Program for a person who will sit at the entrance and register entrants into the system
  4. A program for the administrator who can configure the parameters of the tables and track the queue of applicants.
Since the time for development and testing was short, namely, 1 month, I had to reject all kinds of delights and make the program interface as simple as possible.

The program "Display" - output queue

The interface of the queue display program was decided to do the following: the last 15 messages are displayed about which entrant, which audience and which table to go to.


The “Next” program is a convenient tool for secretaries.

We were asked to make the interface for the secretarial program as simple as possible, and so that it would be impossible to do something extra. At first we wanted to make a program with one button “Next”, but then it turned out that the applicant could not come, except to come. So, one more button was added to the interface and a window with information in which specialties are displayed, to which the applicant actually goes. The specialties for which the applicant has already formed are highlighted in green. After pressing the button, the program interface is blocked for a certain time in order to avoid accidental clicks.


Applicant Registration Program

The program for registration of applicants in the system was also implemented on the basis of simplicity. We were told that the maximum applicant can apply for 5 different specialties. Well 5 so 5, we said to ourselves and made the following interface.


The program "Control Panel"

The program for the administrator did not need to be equipped with highly convenient interfaces, so it was made on the basis of calculation (I set it up once and for all). For example, we were told to make it so that in the event of a strong influx of applicants (and on some days the number of people served could reach 200-300 people), we could set up tables so that each table could accept all applicants. No sooner said than done. There was an opportunity for each table to fix the main specialties and, in addition to them, side. From the queue of secondary specialties, applicants would be taken only if there were no one in the main line.


Program features:
  1. Adding new specialties
  2. Adding new tables
  3. Attaching to the tables of priority and non-priority specialties
  4. View statistics: How many applicants are in line and for what specialty; which applicant is now standing
  5. Determining the approximate waiting time of the applicant in the queue

System Logic - Ideal VS Reality

Inside the university immediately after the entrance sits a secretary who registers the applicants. He learns from the applicant's specialty for which he wants to go, enters them in his program and issues an individual number to the applicant. The applicant with this number is held in the waiting room, where he periodically looks at the big screen, which shows the movement of the queue.


The appearance of a new record on the screen is accompanied by a sound signal and the applicant does not miss his turn, unless he leaves somewhere. After the appearance of information about your room, audience and table where you need to go, the applicant goes to the place specified by the program. There he is already awaited by the secretary for registration. After registration, the applicant either returns to the waiting room (if he has more specialties for which you need to apply) or goes home happy.

This happens if we consider the ideal case: the system works perfectly, and the applicant is the ideal applicant who keeps a close eye on everything and is not late.

In reality, the cases are different. The applicant can skip the recording on the monitor, move away for water or simply go about his business. In this case, it is impossible to give the secretary a long time to spend valuable time, because, in addition to the applicant who’s gone, there are those who want to get formalized as soon as possible. In the system, we give one minute for the applicant to wait for the secretary (the secretary can wait more for his discretion, but he can neither complete the call for the applicant, call the next one, nor even close the program), then the secretary can click on the “Late” button , and exclude the late applicant for 2 minutes from the queue. That is, the late entrant is excluded from the queue for 2 minutes, then the program itself returns it to the queue, and not the last, but the same number that was given to it (after all, if put to the end, the applicant can wait until the end of the day). But endlessly it is also not profitable to return an applicant, besides, if there are 3-4 such applicants, they can simply paralyze the queue, so if the applicant does not come for the third time, we throw him out of the queue for half an hour (in case he drove off on business). In half an hour we return him to the queue and if he is again 3 times late, the exception from the queue will be completely.

Program logic

The program "Display" to display the queue of applicants

This program is used to notify applicants about the movement of the queue. After the next button is pressed by the secretary, a record of this action is entered into the database. This program takes all the records from the database and displays them on the screen. New entries are displayed below, highlighted in gray. Appeared records gradually rise up. That is, the newer records supplant the oldest. If the applicant is late, the program displays next to the record that has already appeared that the applicant was late and was temporarily excluded from the queue (in our case it was decided to select such applicants with faint red and write “Delayed” about them).
There are also additional actions that the program performs for the convenience of queuing:
Secretary Program

The program hangs on the desktop at the secretaries. To call the applicant, you must click on the "Next" button. If there is someone in the queue, the program will display the number of the applicant, his specialty and add the applicant to the table from which information is displayed in the waiting room. There is one important thing to note. If the applicant is on several specialties, the program additionally blocks it, so that he cannot be called at the same time by another table, otherwise the meaning of this system would be lost. If the applicant has arrived, the secretary draws it up and after all registration he presses the button “Design completed”, if the secretary did not wait for the applicant, he presses the button “Late” and calls the next applicant.


Important points of the program:
Applicant Registration Program

Perhaps the easiest program in the system. The secretary selects from the 1st to the 5th specialties, presses the “Register” button, a unique number of the registered entrant appears in the program, the secretary issues a number to the entrant. It also implemented protection against accidental clicks in the form of a 5-second wait after each registration.

Administration program

This program does not participate in the queue process, but participates in the system administration.

Problems that might arise

Problem that arose

Yes, there was only one problem during the program. If during the appearance of a new applicant in the queue for about 0.1 seconds, the “Next” button was pressed by two secretaries belonging both to the same specialty, then this applicant would appear twice on the screen with the queue and go to both secretaries. It happened so that three secretaries clicked =) The problem was quickly resolved, but the program needed to be fixed. Without hesitation, when you click the Next button, instead of first selecting the applicant, and then ticking the employment, we decided to enter a hash. First, the applicant was assigned a hash, then he was selected, and only then the hash was erased, and at the same time a tick was placed. When sampling, of course, was taken into account - there is a hash or not. After testing and verification, it turned out that the program is not affected by this bug anymore.

Work results

At the moment, the period for accepting documents has come to an end (at least at our university) and some conclusions can be made on the results of the program:
  1. About 3,500 applicants were served
  2. In the most visited day there were over 250 applicants
  3. With the program, each applicant saves on average 50% (when submitting documents for two specialties, and over 80% when applying for three or more) time compared to a normal queue
  4. There is no psychological stress like “Who is the last?”
  5. You always know about how many people you will go through
  6. Not dangerous to leave for a couple of minutes for fear of losing your turn.
  7. The burden on secretaries who had to go out every time and ask if someone was in their specialty decreased
  8. System failure has never happened, given the turnkey development time - 1 month
  9. Electronic queuing is convenient

Source: https://habr.com/ru/post/100072/

All Articles