1. Цель проекта

Цель проекта — Разработать модульную систему управления учебным центром и практически реализовать её. Система должна быть удобной и функциональной на всех устройствах, вне зависимости от размера экрана, а также запускаться и полноценно функционировать на таких платформах как Web, Android и Windows и возможно другие.

2. Описание системы

Система включает в себя 6 основных функциональных блоков:

  • расписание;
  • журнал;
  • группы;
  • домашние задания;
  • чаты и задачи;
  • бухгалтерия;
  • ученики.

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

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

2.1. Подробное описание блоков

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

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

«Группы» – информационный блок, состоящий из списка групп, информации о составе этих групп, времени занятий и назначенном преподавателе.

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

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

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

«Ученики» – информационный блок, представляющий собой отсортированный в алфавитном порядке список всех учеников учебного центра, с возможностью посмотреть более детализированную информацию (имя родителя, телефон родителя и дополнительную информацию) по каждому ученику.


Также необходимо описать более подробно каждый дополнительный блок:

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

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

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

2.2. Типы пользователей

Разрабатываемая система – CRM для преподавателей, в первую очередь, но в ней могут работать такие пользователи как: административный состав, бухгалтерия, системный администратор.

Преподаватель - отмечает посещаемость учащихся в журнале и назначает Д/З, может общаться и получать задачи в соответсвующем блоке, имеет права просмотра для блоков расписания, групп, бухгалтерии и учеников.

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

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

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

Главный администратор - имеет все права для всех блоков.

Гость - имеет права просмотра для блоков «Ученики», «Группы», «Журнал», «Расписание», роль выдаётся по-умолчанию.

2.3. Регистрация

Главный администратор может создать ссылку-приглашение на регистрацию в системе с определенной ролью, для регистрации нужно ввести следующие поля:

  • имя — обязательное поле

  • фамилия — обязательное поле

  • email — обязательное поле

  • телефон — обязательное поле

  • пароль — обязательное поле

  • повтор пароля — обязательное поле


После отправки формы регистрации Сборщика ему на email приходит письмо с первым кодом, по которому он может войти. Аутентификация будет происходить по разовым кодам, приходящим на email.

2.4. Функционал для отдельных ролей

...

3. Предлагаемый стек технологий

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

  • Backend:

    • Язык JavaScript, NodeJS

    • N-уровневая архитектура (с возможностью распределённости), монолит

    • Взаимодействие с фронтом по RestAPI

    • БД PostgreSQL

  • Frontend:

    • Dart/Flutter

    • Архитектура Bloc

    • Кроссплатформенность и адаптивность под все платформы

  • DevOps:

    • Linux сервер

    • Nginx для балансировки и домена

    • Docker для удобства и изоляции и K8S при необходимости масштабируемости и удобного управления (опционально)

4. Требования к дизайну

Минимализм, лаконичность, адаптивность. Присутствует как светлая так и тёмная тема.

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