Данный проект представляет собой систему для ведения образовательной деятельности в группе. Пользователи вступают в группу и получают возможность решать тесты от учителей, которые они могут составить сами или взять готовый. Для учителя будет предоставляться статистика решения составленного теста. Управление позволит переключаться пользователю между группами, что позволит не создавать несколько аккаунтов. Особенностью является чат, в котором и появляются задания.
git clone https://github.com/xtern0o/edu_boost_project
pip install -r edu_boost_project/requirements.txtprofit
- Создать базу данных на основе ORM sqlalchemy с таблицами: USERS, GROUPS, USERS_TO_GROUP, MESSAGES, WORKS, WORKS_RESULTS
- Создание REST-API для моделей GROUPS, WORKS, WORKS_RESULTS
/registerРегистрация пользователей в системе (ученик/учитель)/profile/<int:user_id>Просмотр профилей пользователей и изменение своего/profileредирект на пункт 4/chatПо сути основная страница с возможностью взаимодействовать со всеми группами/worksДля ученика: Список тестов к выполнению. Для учителя: Статистика по всем тестам/works/<int:work_id>Для учителя: Статистика выполнения теста учениками. Для ученика: Меню теста (возможность начать прохождение)/works/completing/<int:work_id>Прохождение теста для учеников/works/results/<int:work_id>Результат прохождения теста учеником/works/creatingСоздание учителем нового теста/chat?chat_id=<int:chat_id>Для учителя: взаимодействие с группой/chat/creatingДля учителя: создание новой группы
Портал для ведения образовательной деятельности
Карнажицкий Максим Романович, Мерескин Евгений Дмитриевич
Идея проекта заключается в создании универсального сервиса для ведения образовательной деятельности. Наш сервис обладает интуитивно понятным управлением и предоставляет возможность учителям самостоятельно создавать тесты для учеников. Учителя могут создавать группы, в которых ученики смогут задавать вопросы, общаться и получать уведомления о новых тестах, которые создают учителя. Также учителя контроллировать процесс процесс прохождения тестов и анализировать результаты для более объективной оценки знаний учеников.
- Таблица
usersсвязана с таблицейgroupsсвязью many-to-many через вспомогательные таблицыusers_to_groupsиusers_to_invites_to_groups
В этой таблице хранятся данные о пользователях
- Таблица
groupsсвязана с таблицейworksсвязью many-to-many через вспомогательную таблицуworks_to_groups
Таблица используется для объединенния пользователей в группу, в которой участники разделяются на учителя и учеников
- Таблица
messagesсвязана с таблицамиusersиgroupsсвязями one-to-many
Таблица используется для хранения истории сообщений между пользователями
- Таблица
worksсвязана с таблицейgroupsсвязью many-to-many через вспомогательную таблицуworks_to_groups
Таблица используется для хранения тестов
Flask - фреймворк для создания веб-приложений на языке программирования Python. В него входят такие наборы инструментов, как Jinja2, при помощи которой мы можем создавать сайты с динамическим содержимым, и Werkzeug, при помощи которого выполняется протокол взаимодействия веб-сервера и веб-приложения.
Sqlalchemy - это программная библиотека на языке Python для работы с реляционными СУБД с применением технологии orm. Благодря этой библиотеке, мы имеем возможность работать с БД в концепциях ООП. Технология orm позволяет создать "вирутальную" базу данных из объектов, что существенно облегчает разработку.
Flask-SocketIO - это библиотека на языке Python для работы с веб-приложениями, использующие фреймворк Flask. Данная библиотека позволяет работать с JavaScript-библиотекой socket.io, которая позволяет обмениваться данными в реальном времени без перезагрузки веб-страниц.
Flask-WTF - это библиотека на языке Python для работы с веб-приложениями, использующие фреймворк Flask. Данная библиотека используется для защиты веб-форм от атак под названием Cross-Site Request Forgery или CSRF.
Для запуска нашего проекта потребуются следующие библиотеки:
SQLAlchemy (version = 2.0.5)Werkzeug (version = 2.2.3)WTForms (version = 3.0.1)Flask (version = 2.2.3)Flask-SocketIO (version = 5.2.0)
В нашем проекте важны версии библиотек, так что рекомендуется пользоваться версиями, которые прописаны вместе с библиотекой
