Logo
Logo

Разработка автоматизированной системы зачисления на курсы

Дмитрий Рыжов

Jun 1, 2020

История о том, как я быстро разработал автоматизированную систему.

Однажды мне поручили разработать информационную систему для поступающих на курсы одной из крупнейших компаний. Время разработки было жестко ограничено. Не было времени начинать разработку базы данных и пользовательского интерфейса с нуля. Я столкнулся с проблемой выбора платформы разработки. Я хотел бы поделиться здесь своим опытом выбора и использования платформы быстрой разработки приложений.

Итак, задача заключается в…

Мне пришлось разработать автоматизированную систему обучения партнеров. Это должно позволить упорядочить и упростить документооборот в учебном процессе.

Обязательным условием заказчика было использование PostgreSQL в качестве сервера. Это меня вполне устраивало, потому что нужно было разграничить доступ пользователей к информации базы данных, а в PostgreSQL есть механизм, позволяющий это сделать.

Система должна выполнять следующие функции:

  • выбор вида обучения. Студенты выбирают свой вариант обучения — бесплатные курсы или платные.
  • оплата в зависимости от типа. За эту операцию отвечает заместитель директора по финансам;
  • формирование расписания. График работы составляется руководителем учебного отдела, возможна помощь консультанта;
  • обучение;
  • сертификация. Процесс, посредством которого участник получает документ, подтверждающий успешное прохождение курсов.

Готовое к использованию решение

Я попытался найти готовое к использованию решение и проанализировал существующие продукты на рынке программного обеспечения. Чтобы иметь возможность контролировать и записывать процессы обучения, уже есть несколько предложений от компаний, которые зарекомендовали себя на рынке.

Google Classroom это обучающая платформа, разработанная компанией Google для образования.

Достоинства:

  • объединенные сервисы Google, знакомые пользователю;
  • возможность работы с мобильными устройствами;
  • хранение учебных материалов;
  • дистанционная проверка заданий преподавателем.

Недостатки для меня:

  • отсутствие анализа и накопления информации об участниках курса;
  • децентрализованное управление всеми учебными процессами (например, планирование);
  • отсутствие выдачи сертификатов по окончании обучения;
  • отсутствие возможности локализовать систему локально (подключение без Интернета).

Moodle это веб-приложение (бесплатное), которое можно использовать для создания сайтов онлайн-обучения.

Достоинства:

  • отсутствие привязки студентов к месту проведения;
  • интеграция всех ресурсов в одном месте;
  • поддержка курса в актуальном состоянии.

Недостатки для меня:

  • отсутствие учета студентов;
  • отсутствие сертификации;
  • неразвитая система ролей (только учитель, ученик). Следствием этого является увеличение нагрузки.

В обеих системах отсутствует возможность синхронного проведения учебных мероприятий, отсутствует или слабо развит учет информационных потоков, сопровождающих студента на протяжении всего курса, невозможна аттестация в конце учебного процесса. Также Google Classroom и Moodle плохо адаптированы для установки в локальной сети, для работы требуется доступ в Интернет.

Встречайте еще одного игрока — платформа “Абрис”

Я уже решил разработать индивидуальное решение с нуля, но у меня было мало времени, и мой руководитель посоветовал выбрать новую платформу Abris в качестве фреймворка, пообещав, что разработка пойдет быстро.

Оказалось, что Abris platform действительно облегчает процесс разработки благодаря своему тесному взаимодействию с базой данных. Все изменения в базе данных автоматически отображаются в пользовательском интерфейсе. Нет необходимости что-то менять в программном коде, компилировать и обновлять. Abris автоматически создает пользовательский интерфейс. Он инкапсулирует готовые решения для создания, редактирования и отображения данных в виде таблиц, графиков и т. д. Abris обладает способностью легко расширяться: вы можете очень быстро добавить необходимый функционал за счет разработки дополнительных компонентов.

У меня много дел…

Сначала я разработал инфологическую модель, которая реализована в концептуальной (интегрированной) диаграмме ER и представлена на рисунке ниже.

Концептуальная модель базы данных

Здесь отражаются сущность и взаимосвязь образовательного процесса в соответствии с реализуемыми задачами. Как видите, у меня много работы. Мне нужно реализовать и связать следующие сущности: users, students, teachers, communications, seminars, courses, lessons, certificates, payments, audiences, mailing lists mailing list templates, files, file templates, companies.

Разработка алгоритмов

Разработка алгоритмов для системы заняла больше всего времени. Но я сэкономил это время на разработке пользовательского интерфейса. Функциональность, связанная с генерацией форм пользовательского интерфейса, уже реализована в Abris.

Другая часть должна была быть разработана в виде триггерных функций.

Эти функции в основном необходимы для выдачи предупреждающих сообщений о невозможности выполнения определенных действий и причине, по которой эти действия не могут быть выполнены.

Другие функции обработки данных могут быть написаны на стороне сервера с использованием языка программирования PHP. Конечный пользователь должен иметь возможность запускать серверные методы и/или алгоритмы обработки данных из пользовательского интерфейса — нажатием кнопок. Платформа Abris позволяет размещать на пользовательском интерфейсе произвольные кнопки.

Каков же результат?

Для незарегистрированного пользователя в разработанной системе доступно несколько вариантов: просмотр доступных курсов, регистрация и восстановление пароля от учетной записи. В этом случае пользовательский интерфейс выглядит следующим образом:

Для регистрации пользователя в качестве свободного слушателя (физического лица) регистрационная форма выглядит следующим образом:

Для пользователей, которые уже существуют в системе, доступны дополнительные опции, например список с подробным описанием доступных курсов:

При этом автоматическое формирование интерфейса Abris позволяет осуществлять переходы между взаимосвязанными таблицами без дополнительных переходов в меню — непосредственно на той же форме, раскрывая записи одну за другой:

В качестве дополнительного инструмента отображения данных, помимо табличного представления, имеется встроенная возможность отображения некоторых событий во времени в виде календаря. Примером может служить расписание курсов:

Заключение

В результате я закончил этот проект вовремя, несмотря на то, что было реализовано много структур данных и функций:

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

Заказчик остался полностью доволен таким результатом. Он получил готовое веб-приложение с удобным унифицированным пользовательским интерфейсом для всех форм и большим количеством форм визуализации информации.

Несмотря на то, что интерфейс главной страницы, показанный пользователям, оказался слишком стандартизированным и впоследствии мог быть улучшен, разработка системы не заняла много времени.

Ни кода, ни особого дизайна. Просто установите и используйте.