Используемые технологии:
- TelegramBot Api
- IRON_PROGRAMMER_BOT_ConsoleApp использует Polling
- IronProgrammerBotWebApplication использует Webhooks
- Хранение состояния пользователя реализовано через NoSql БД FireBase
- Данные: Роли, Пользователи, Курсы, Студенты, Группы и т.д. хранятся в MSSQL БД
- Разработка баз данных через CodeFirst и миграций EntityFrameworkCore
Перед началом работы необходимо:
-
Создать проект в Firebases.
-
прописать следующие данные в appsettings:
- Firebase - BasePath и Secret
- ConnectionStrings - строку подключения к БД
- BotConfiguration - настройки бота
-
В файле добавить в коде данные администратора
По умолчанию есть 4 роли:
- Администратор
- Куратор
- Студент
- Пользователь
Функции администратора:
- Создавать (загружать данные по шаблону):
- Курсы
- Кураторов
- Телеграм группы
- Студентов
- Связывать сущности Курс - Группа - Куратор - Студент
- Запускать новый курс
- Выгружать статистику по студенту и куратору в каждом курсе
Для запуска курса администратору необходимо:
-
Заполнить все необходимые данные: "Создать курс": Из главного меню:
- "Создать курс"
- "Скачать шаблон"
- "Назад"
- "Загрузить данные"
- вложить excel файл с заполненными данными
- При успешной валидации курс создается
- Если возникнут ошибки валидации, то они будут указаны с номером строки
- Аналогично созданию курса скачать и заполнить шаблоны для:
- "Создать группы"
- "Создать кураторов"
- "Создать студентов"
-
Добавить загруженные данные к курсу:
- Из главного меню выбрать "Мои курсы" и выбрать нужный курс
- Добавить группы к курсу и выбрать нужные из ранее загруженного документа по шаблону
- Аналогично группам добавить студентов и кураторов
-
Для каждого выбранного куратора нужно проставить кол-во мест:
-
В выбранном курсе выбрать:
- "Список кураторов"
- Нажать на фамилию куратора
- "Заполнить кол-во мест к куратору"
- Выбрать нужное кол-во и подтвердить
-
Вернуться к выбранному курсу и нажать "Запустить курс". Если все верно сделано, то бужет сообщение "Курс запущен", иначе выведется ошибка валидации. После этого студент может выбрать куратора на курс
Функции куратора
- "Мои курсы":
- открывается список курсов:
- "Мои студенты":
- Выбранный студент => страница с контактными данными
- "Мои студенты":
- открывается список курсов:
- "Мой профиль":
- "Изменить профиль":
- Скачать шаблон, заполнить его и загрузить документ
- "Изменить профиль":
Функции студента:
- "Мои курсы"
- "Написать в чат группы" (если администратор добавл группы к курсу отображается ссылка по тарифу ВИП или Кураторы)
- Выбранный курс:
- "Заполнить личные данные" (студент не может выбрать куратора, пока не указал необходимые данные: Фамилия, Имя, электронная почта, ник на Гитхабе):
- После подтверждения можно перейти сразу в главное меню или обрвтно к выбранному курсу
- "Заполнить личные данные" (студент не может выбрать куратора, пока не указал необходимые данные: Фамилия, Имя, электронная почта, ник на Гитхабе):
- "Выбрать куратора" (после запуска курса администратором у студента появляется эта кнопка)
- Отображается список доступных кураторов (если у кого-то из кураторов уже нет мест для записи, его не в списке для выбора) => Выбрать куратора по Фамилии => "Выбрать куратора" => "Подтвердить" => Отображается сообщение с результатом записи После успешной записи куратору приходит сообщение от бота с информацией о студенте и курсе
- "Написать куратору" => переход в личные сообщения
- Видеодемонстрация функций студента - заполнение личных данных
- Видеодемонстрация функций студента - выбор куратора
Функции пользователя: Для всех остальных пользователей отображается стандартная приветственная страница с контактами школы Iron Programmer
В видеоматериалах использованы данные кураторов с их согласия:
- Сергей Борщев @GudzON28
- Алексей Миронов @algmironov
- Николай Смирнов @Nikolay200
- Кирилл Фисенко @KirillFisenko