История о том, как я быстро разработал автоматизированную систему.
Однажды мне поручили разработать информационную систему для поступающих на курсы одной из крупнейших компаний. Время разработки было жестко ограничено. Не было времени начинать разработку базы данных и пользовательского интерфейса с нуля. Я столкнулся с проблемой выбора платформы разработки. Я хотел бы поделиться здесь своим опытом выбора и использования платформы быстрой разработки приложений.
Мне пришлось разработать автоматизированную систему обучения партнеров. Это должно позволить упорядочить и упростить документооборот в учебном процессе.
Обязательным условием заказчика было использование PostgreSQL в качестве сервера. Это меня вполне устраивало, потому что нужно было разграничить доступ пользователей к информации базы данных, а в PostgreSQL есть механизм, позволяющий это сделать.
Система должна выполнять следующие функции:
Я попытался найти готовое к использованию решение и проанализировал существующие продукты на рынке программного обеспечения. Чтобы иметь возможность контролировать и записывать процессы обучения, уже есть несколько предложений от компаний, которые зарекомендовали себя на рынке.
Google Classroom это обучающая платформа, разработанная компанией 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 |
Заказчик остался полностью доволен таким результатом. Он получил готовое веб-приложение с удобным унифицированным пользовательским интерфейсом для всех форм и большим количеством форм визуализации информации.
Несмотря на то, что интерфейс главной страницы, показанный пользователям, оказался слишком стандартизированным и впоследствии мог быть улучшен, разработка системы не заняла много времени.
Ни кода, ни особого дизайна. Просто установите и используйте.