Skip to content

About

Web application for organizing the educational process in programming.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

Web Education

Python Django Code Style Linter Repo Size Lines of Code

Веб-приложение для организации учебного процесса по программированию.

🛠️ Используемые технологии

  • Python
  • Django
  • MySQL
  • Django ORM
  • Jinja2
  • HTML
  • CSS
  • REST API

✨ Возможности

🔐 Авторизация и регистрация

  • Регистрация новых пользователей.
  • Авторизация в системе.
  • Защита страниц от неавторизованных пользователей.
  • Автоматическое перенаправление неавторизованных пользователей на страницу авторизации.
  • Верификация новых пользователей администратором.
  • Отображение статуса регистрации при отклонении верификации.

👤 Личный кабинет

После авторизации пользователь получает доступ к персональному кабинету.

Основные возможности:

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

🔔 Уведомления

В приложении реализована система уведомлений:

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

🏆 Достижения

Пользователи могут получать достижения за различные действия в системе.

На отдельной странице отображается:

  • список полученных достижений;
  • доступные достижения;
  • описание условий их получения;
  • прогресс пользователя.

Например, заполнение личной информации в профиле может автоматически открыть соответствующее достижение.

📚 Учебные материалы и публикации

На главной странице пользователям доступны публикации с учебной и организационной информацией.

Возможности:

  • просмотр списка публикаций;
  • переход к подробной странице публикации;
  • отслеживание количества просмотров;
  • просмотр учебного контента.

Для каждого пользователя учитывается только первый просмотр конкретной публикации, поэтому один пользователь не может искусственно увеличить счетчик повторными открытиями.

📝 Учебные задания

Платформа позволяет студентам выполнять различные типы заданий.

Поддерживаются:

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

Таким образом, приложение позволяет использовать платформу не только для размещения материалов, но и для практической проверки знаний студентов.

📊 Рейтинг студентов

В системе предусмотрена рейтинговая таблица студентов.

Администратор может:

  • просматривать рейтинг;
  • работать с группами студентов;
  • начислять студентам баллы;
  • отслеживать результаты обучения.

Рейтинг позволяет сравнивать результаты студентов и использовать накопленные баллы для оценки их активности и успеваемости.

🔗 Полезные ссылки

Пользователям доступна отдельная страница с полезными образовательными ресурсами.

Для администратора доступны дополнительные инструменты управления:

  • создание новых ссылок;
  • редактирование существующих ссылок;
  • управление содержимым раздела.

💬 Анонимная обратная связь

Студенты могут отправлять анонимную обратную связь преподавателям.

Администратор получает возможность:

  • просматривать поступившие сообщения;
  • отслеживать новые обращения;
  • отмечать сообщения как прочитанные.

Анонимность позволяет студентам свободно оставлять отзывы и предложения.

👨‍💼 Панель администратора

Пользователи с правами администратора получают расширенный доступ к системе.

В зависимости от типа сущности администратору доступны действия:

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

Обычные студенты не видят административные элементы интерфейса и не имеют доступа к соответствующим функциям.

📋 Учебные проекты

В приложении реализована система сопровождения студенческих проектов с несколькими этапами разработки.

На начальном этапе студент:

  1. указывает тему проекта;
  2. прикрепляет ссылку на документ с описанием проекта;
  3. отправляет проект на рассмотрение;
  4. ожидает утверждения.

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

👥 Разграничение ролей

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

Роль Доступ
Студент Данные своей группы
Преподаватель Все группы студентов, может производить все операции с событиями, задачами, тестированию, выдачей достижений
Администратор Полный доступ ко всей базе данных

🗄️ База данных

ER-модель БД

Скриншот админ панели:

🖥️ Обзор веб-приложения

При входе в веб-приложение попадаем на страницу авторизации. Все незарегистрированные пользователи, переходя на любую существующую страницу, перенаправляются на страницу авторизации, если это не страница регистрации.

Страница регистрации:

Сразу зарегистрируем студента и войдем в систему. Необходима верификация аккаунта администратора.

Зайдем за администратора и подтвердим пользователя. Для этого нужно просто удалить запись из БД. Но сначала отклоним регистрацию пользователя, чтобы посмотреть, что он увидит.

Запись в БД о необходимости верифицировать нового пользователя:

У пользователя отображается страница отклонения верификации:

Удалим эту запись из БД и пользователь сможет пользоваться веб-приложением.

Страница пользователя:

Наводясь на определенные элемент можно получать подсказки:

Рис. 6.8. Страница редактирования аккаунта:

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

Страница с уведомлениями:

Несколько уведомлений отмечены как прочитанные перейдем на страницу с достижениями. Тут их еще много.

Страница с достижениями:

Страница с полезными ссылками за студента:

Страница с полезными ссылками за администратора Администратору показываются дополнительные кнопки, которые ведут на страницы панели администратора, где можно работать с данными. По кнопке (+) осуществляется переход на страницу создания сущности, а по кнопке (edit) осуществляется переход на редактирование сущности. Нажмем на кнопку редактирования у одной из ссылок.

Страница с редактированием ссылки Можно оставлять анонимную обратную связь для преподавателей.

Страница обратной связи:

За администратора можно просматривать обратную связь и помечать ее как прочитанную:

Главная страница у студента. У каждого поста есть просмотры. Просмотром поста считается его первое получение пользователем. Каждый пользователь может добавить лишь один просмотр к посту.

Главная страница у администратора:

Страница детализации поста:

Страница задачи с текстовым вариантом ответа:

Страница задачи, где нужно прикрепить код программы:

Страница задачи с отправленным кодом на проверку. Синтаксис кода подсвечивается. Добавим еще пару студентов и начислим им баллы. Теперь можно просматривать таблицу рейтинга:

Страница рейтинга у администратора (у студента нет выборки группы). Так же можно и работать с проектом: у него есть несколько стадий разработки. Изначально нужно вписать тему и прикрепить ссылку на документ с его описанием, а дальше ждать его утверждения.

Страница проекта:

About

Web application for organizing the educational process in programming.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages