Skip to content

Процессы

SaboteurInCave edited this page Sep 8, 2016 · 15 revisions

Оглавление

Регистрация пользователя в системе

  • Пользователь заходит на сайт
  • Нажимает кнопку "Регистрация"
  • Заполняет поля "ФИО", "Пол", "Дата рождения", "Телефон", "Email"
  • Нажимает кнопку "Отправить", в результате создается пользователь с минимальными правами, т.е. ему не назначена никакая группа
  • Появляется окошко с выбором своего статуса: "Ученик"/"Родитель"/"Преподаватель", в зависимости от выбора:
    • "Ученик" - заполняет дополнительную информацию о школе, классе, отряде (в случае ЛКШ), указывает годы учебы в КШ, смены в ЛКШ (предоставляем списки годов и смен), нажимает кнопку для завершения регистрации
    • "Родитель" - каким-либо образом подтверждает что он родитель (ребенок прислал код регистрации; ссылка на почту, где можно будет пообщаться с родителями; возможно скан паспорта?), нажимает кнопку для завершения регистрации
    • "Преподаватель" каким-либо образом подтверждает что он преподаватель, указывает годы работы в КШ и ЛКШ (предоставляем списки годов и смен), нажимает кнопку для завершения регистрации
  • Администратор подтверждает права "Преподавателей"

В случае выбора статуса "Родитель"/"Преподаватель" администратор рассматривает заявку и в случае успешной идентификации присваивает соответствующую группу пользователю.

Пользователи с администраторскими правами создается на этапе миграций (т.е. создания таблиц БД и занесения информации о пользователе с группой "Администратор"). Пользователей - представителей комитета - можно добавлять либо на этапе миграции, либо вручную администратор изменяет группу.

Вопрос: Может быть у пользователя в системе несколько ролей? Т.е. технически, человек может быть и администратором/преподавателем и одновременно родителем ученика, кто учится в КШ/ЛКШ. Что делать в этом случае?

Добавление детей родителями

  • Родитель авторизуется в системе, заходит в профиль
  • Заходит в вкладку "Дети", нажимает кнопку "Добавить ребенка"
  • Делает поиск детей и высылает запрос на добавление ребенку (поиск можно сделать по ФИО, например, с живым поиском)
  • Ребенок подтверждает заявку - в результате у ученика в вкладке "Родители" добавляется информация о родителе, у родителя - информация о ребенке и доступ к его успеваемости.

Вопрос: Должен ли администратор одобрять такие заявки?

Добавление родителей детьми

  • Ученик авторизуется в системе, заходит в профиль
  • Заходит в вкладку "Родители", нажимает кнопку "Добавить родителя"
  • Делает поиск родителя и высылает ему запрос на добавление
  • Родитель подтверждает заявку - в результате у ученика в вкладке "Родители" добавляется информация о родителе; у родителя в вкладке "Дети" - информация о ребенке и доступ к его успеваемости.

Отправление заявки на участие в смене ЛКШ

  • Ученик авторизуется в системе, заходит в профиль
  • Заходит в вкладку "Заявки", выбирает заявку "ЛКШ - 201х год" (или что-то в таком духе)
  • Указывает предполагаемую учебную группу, адрес прописки (если не указан ранее в профиле самостоятельно). Предыдущие года обучения КШ/ЛКШ экспортируются автоматически из профиля. Родитель, телефон, место работы:
    • Заполняется вручную (в том случае, если родители не хотят/не могут зарегистрироваться на сайте),
    • Выбирается учеником из списка родителей, зарегистрированных на сайте.
  • Нажимает кнопку "Отправить", заявка сохраняется в БД
  • Происходит тестирование на вхождение в группу, которая указана в заявке, в случае, если это возможно (например, у младшей группы такого тестирования может и не быть). Если ученик провалил тестирование, то будет предложено:
    • Снизить уровень сложности (с новым тестированием, информацию о заявке все равно сохраняем)
    • Пройти новый тест этой же группы (информацию вбивать заново не нужно; действие возможно, если подготовлены несколько вариантов тестирования или существует рандомная генерация тестов; возможно, в таком случае необходимо давать возможность пройти тестирование через 1-3 дня)
    • Отзывает свою заявку полностью (информация о заявке уничтожается)
  • При успешном тестировании заявка отмечается как "Ожидающая оплаты", администратор, представитель комитета (преподаватели?) могут видеть список таких заявок
  • При подтверждении оплаты администратор изменяет статус заявки, как "Принятая" (например, родитель или ребенок отправил номер путевки), или представитель комитета может одобрить заявку по факту приема денег на путевку

Просмотр заявок на участие в смене ЛКШ

  • Администратор/Представитель комитета открывает вкладку "Заявки"
  • Выбирает из актуальных списков заявок необходимый ( в данном случае список заявок на участие в ЛКШ 20xx)
  • Происходит отображение списка заявок в виде: id заявки, ФИО ребенка, статус ( "Тестирование" - если ученик провалил тестирование в указанную группу и решил пересдать через 1-3 дня, "Ожидает оплаты", "Отклонена", "Оплачена", "Одобрена")
  • Выбирает интересующую заявку из списка
  • Происходит отображение заявки на новой странице: id заявки, ФИО ученика, год рождения, телефон и E'mail ученика, класс, группа, в которой будет обучаться, адрес прописки, информация о родителе (ФИО, место работы, телефон), предыдущие участия в ЛКШ/КШ, статус

Как вариант - можно раскрывать данные в самой таблице при нажатии на строке с заявкой

Изменение статуса заявки для участия в ЛКШ

  • Администратор/Представитель комитета нажимает на статус
  • Выбирает из списка возможный статус.
    • Представитель комитета может изменить только статус "Ожидает оплаты" на "Оплачена".
    • Система сама изменяет статус с "Тестирование" на "Ожидает оплаты" в случае успешного прохождения теста.
    • Администратор может изменить статус с любого на любой. В случае изменения статуса на "Отклонена" выпадает диалоговое окно, в которое предлагается ввести причину отклонения заявки.

Просмотр заявки для участия в ЛКШ

  • Пользователь авторизуется в системе, заходит в профиль
    • Ученик:
      • Открывает вкладку "Заявки"
      • Выбирает из списка актуальных заявок заявку на участие в ЛКШ ( список заявок в виде: id-заявки, мероприятие, дата мероприятия, статус заявки )
      • Происходит отображение заявки на новой странице/раскрывается информация о заявке на текущей в виде: id-заявки, информация с возможностью редактирования (на кого оформлена путевка, адрес прописка и т.д.), описание мероприятия, группа, если уже определена( на основе теста), статус. Если статус заявки - "Отклонена", то ученик может посмотреть причину отказа, наведя курсор на статус.
    • Родитель
      • Открывает вкладку "Дети"
      • Выбирает одного ребенка из списка своих детей
      • Затем из выпадающего меню/кнопки напротив каждого ребенка выбирает действие "Посмотреть заявки"
      • Происходит отображение списка заявок выбранного ребенка на новой странице
      • Выбирает из списка заявок заявку на участие в ЛКШ ( список заявок в виде: id-заявки, ФИО ребенка, мероприятие, дата мероприятия, статус заявки)
      • Происходит отображение заявки на новой странице/раскрывается информация о заявке на текущей в виде: id-заявки, информация без возможности редактирования(на кого оформлена путевка, адрес прописка и т.д.), описание мероприятия, группа, если уже определена(на основе теста), статус. Если статус заявки - "Отклонена", то родитель может посмотреть причину отказа, наведя курсор на статус.

Подтверждение оплаты путевки в ЛКШ родителем или учеником(?)

  • Действия для отображение заявки на участие в ЛКШ описаны в пункте выше
  • Нажимает на кнопку "Подтвердить оплату"
  • Появляется поле для ввода номера путевки
  • Вводит код, нажимает кнопку "Отправить"
  • Информация о подтверждении отправляется администратору в виде уведомления
  • В случае проверки администратором актуальности кода, он переводит заявку в статус "Оплачена"

Альтернативный вариант тестирования для зачисления (?)

  • Администратор/преподаватели создают вопросы/темы, которые необходимо/желательно/неплохо бы знать для поступления в определённую группу (критичность знаний задаётся), привязывают к каждой теме одну или несколько практических задач
  • Ученик при заполнении заявки не указывает желаемую группу(?), но зато проходит "теоретическую анкету". Ему в случайном порядке (или что-то типа бинпоиска) предлагаются темы, для каждой из них он оценивает свои знания (отдельно теорию и практику?) по шкале от 0 до 3 (приблизительно). Потом он переходит к следующей теме.
  • После заполнения всей анкеты ученик может отредактировать некоторые вопросы
  • Ученик блокирует анкету и получает практические задачи (см. дальше)
  • На основе анкеты автоматически выбираются практические задачи, которые ученик вроде бы должен уметь решать. И он их может сдавать до окончания приёма заявок
  • Учеников автоматически раскидывает в предполагаемые группы
  • Каждый преподаватель смотрит теоретическую анкету и решения практических задач учеников в своей предполагаемой группе (может быть не только?). Он зачисляет их в свою группу, перекидывает в предполагаемых учеников другой группы или вовсе отказывает в зачислении.
  • В зачислении автоматически отказывается всем тем, кто не заполнил теоретическую анкету (или если никаких знаний не требуется не отметил, что собирается заниматься начальным программированием, к примеру)
  • Потом публикуются списки групп и на странице с заявкой отмечается в какую группы ученика зачислили (все ученики узнают это одновременно)