Logo
Logo

Building an automated system for enrolling in courses

Dmitrii Ryzhov

Jun 1, 2020

The story how I created an automated system rapidly.

Once I was assigned to develop an information system for enrolling in courses of one of the largest companies. Development time was tightly limited. There was no time to start developing the database and user interface from scratch. I faced the problem of choosing a development platform. I’d like to share here my experience of choosing and using the rapid application development platform.

So the task is…

I had to develop an automated system for training partners. It should allow to streamline and simplify document management in the learning process.

A prerequisite of the customer was the use of PostgreSQL as a server. This suited me quite well, because it was necessary to differentiate user access to database information, and PostgreSQL has a mechanism that allows this.

The system should implement the following functionality:

  • selection of the type of training. Students choose their learning option — free courses or paid.
  • payment depending on type. This operation is the responsibility of the Deputy Director for Finance;
  • schedule formation. The schedule is created by the head of the training department, assistance is possible from the consultant;
  • training;
  • certification. The process by which a participant receives a document confirming the successful completion of courses.

Ready-to-use solution

I tried to find a ready-to-use solution and analyzed the existing products in the software market. To be able to control and record the learning processes, there are already several offers from companies that have established themselves in the market.

Google Classroom is a learning platform developed by Google for education.

Advantages:

  • united google services familiar to the user;
  • the ability to work with mobile devices;
  • storage of training materials;
  • remote verification of tasks by the teacher.

Disadvantages for me:

  • lack of analysis and accumulation of information about course participants;
  • decentralized management of all learning processes (for example, scheduling);
  • lack of issuance of certificates at the end of training;
  • lack of the ability to locate the system locally (connection without the Internet).

Moodle is a web application (freeware) that can be used to create online learning sites.

Advantages:

  • lack of binding students to the venue;
  • Integration of all resources in one place;
  • keeping the course up to date.

Disadvantages for me:

  • lack of student accounting;
  • lack of certification;
  • undeveloped system of roles (only teacher, student). The consequence is an increase in load.

In both systems there is no possibility of conducting training events synchronously, there is no or poorly developed accounting for information flows that accompany the student throughout the course, certification at the end of the learning process is impossible. Also, Google Classroom and Moodle are poorly adapted for installation on a local network, Internet access is required for operation.

Meet one more player — Abris Platform

I’ve already decided to develop a custom solution from scratch, but I was short of time and my supervisor advised me to choose the new Abris platform as a framework, promising that development would go quickly.

It turned out that the Abris platform really facilitates the development process due to its close interaction with the database. All changes to the database are automatically displayed in the user interface. There is no need to change something in the program code, compile and update. Abris automatically creates a user interface. It encapsulates ready-made solutions for creating, editing and displaying data in the form of tables, graphs, etc. Abris has the ability to easily expand: you can very quickly add the necessary functionality through the development of additional components.

I have a lot to do…

First, I developed an infological model, which is implemented in a conceptual (integrated) ER diagram and is presented in the figure below.

The conceptual model of the database

Here are reflected the essence and relationship of the educational process in accordance with the tasks being implemented. As you can see I have a lot of work to do. I need to implement and link the following entities: users, students, teachers, communications, seminars, courses, lessons, certificates, payments, audiences, mailing lists mailing list templates, files, file templates, companies.

Algorithms development

The development of algorithms for the system took the longest time. But i saved this time on the development of the user interface. The functionality related to UI forms generation have already been implemented in Abris.

The other part had to be developed in the form of trigger functions.

These functions are mainly necessary for issuing warning messages about the impossibility of performing certain actions and the reason why these actions cannot be performed.

Other data processing functions can be written on server side using PHP programming language. An end-user should be able to start server methods and/or data processings algorithms from the UI — by clicking buttons. Abris Platform allows to place on the user interface arbitrary buttons.

What is the result?

For an unregistered user in the developed system several options are available: viewing available courses, registering and recovering a password from an account. In this case, the user interface is as follows:

To register a user as a free listener (individual), the registration form looks like this:

For users who already exist in the system, more options are available, for example, this may look like a list with a detailed description of the courses available:

In this case, the automatic formation of the Abris interface allows transitions between interconnected tables without additional transitions to the menu — directly on one form, revealing records one after another:

As an additional tool for displaying data, in addition to the table view, there is a built-in ability to display some events in time in the form of a calendar. An example is the schedule of courses:

Conclusion

As a result I’ve finished this project in time in spite of lot of data structure and functionality has been implemented:

Element Count Time (man*hour)
Tables 18 2
Triggers 19 25
Pages in web application 80-100 40

Сustomer was completely satisfied with this result. He received ready web application with convenient unified user interface for all forms and wide information visualization forms.

Despite the fact that the interface of the main page shown to users turned out to be too standardized and could be improved subsequently, the development of the system did not take much time.

No code, no special design. Just install and use.