Skip to content

tastydata0/VKR

Repository files navigation

Разработка информационной системы «Личный кабинет слушателя Школы::Кода». Серверная часть и веб-приложение

image

Python FastAPI MongoDB

JavaScript HTML CSS Jinja Bootstrap Webpack jQuery

Проблема и решение

Проблема, решаемая проектом:

  • Трудоемкость и временные затраты на подачу и обработку заявок на зачисление.
  • Неудобства текущего процесса:
    • Следование инструкции из ВК и отправка документов по почте.
    • Заполнение документов с нуля каждый семестр.
    • Отсутствие уведомлений о включении в списки.
    • Монотонная рутина для администратора.
    • Ручное связывание с учениками при проблемах с документами.

Решение:

  • Сайт с пошаговой подачей документов.
  • Автозаполнение документов.
  • Уведомления о важных событиях по почте.
  • Инструменты для упрощения работы администратора.
  • Автоматические уведомления при отклонении документов.

Функционал

Ученик:

  • Подача заявления.
  • Генерация документов.
  • Система запоминает введенные ранее данные.
  • Уведомления по почте.
  • Отслеживание пройденных программ.

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

  • Обработка входящих заявлений.
  • Управление системой.
  • Настройка программ обучения.
  • Получение статистики.
  • Выгрузка данных.

Технологии

Сервер:

  • Язык Python
  • Фреймворк FastAPI
  • MongoDB

Клиент:

  • Язык JavaScript
  • HTML-Шаблонизатор Jinja2
  • Bootstrap
  • Webpack
  • jQuery

Архитектура

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

image

Интерфейс ученика

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

image

Подача заявления

image

image

Интерфейс администратора

image

image

Тестирование

Функциональное тестирование

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

Юнит-тестирование

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

Нагрузочное тестирование

При помощи Postman проведено нагрузочное тестирование основных функций.

UI-тестирование

При помощи Selenium созданы автоматизированные UI-тесты, охватывающие регистрацию и вход и выход пользователя, смену пароля, заполнение данных в заявлении, загрузку документов и отзыв заявления.

Технико-экономическое обоснование

Затрата Сумма в рублях
Работа программистом (384 ч.) 240.000 ₽
(с учетом уплаты НДФЛ)
Работа тестировщиком (48 ч.)
Работа менеджером (48 ч.)
Амортизация техники за 4 месяца 6.666 ₽
Расходы на ПО 0 ₽
Итого 246.666 ₽

Окупаемость: Прирост учеников в 6% увеличит чистую прибыль на 83.520 ₽ за семестр. Срок окупаемости = 246.666 / 83.520 ≈ 2.95 семестра. Итого, проекту нужно полтора года, чтобы окупиться.

Результаты

Спроектированы и реализованы клиентская и серверная части приложения при помощи HTML, CSS, JS и Python соответственно. Реализован пошаговый процесс подачи заявления на обучение. Создан инструментарий для полноценного администрирования системы, а также инструменты автоматизации, упрощающие подачу заявлений и обработку данных. Таким образом, поставленные задачи решены в полном объеме.

Возможности развития

  • Возможность просматривать свои сертификаты об обучении, а также иметь официальную ссылку для доказательства подлинности документа.
  • Интеграция с Google Sheets для динамической загрузки оценок и переносов занятий, уведомление по почте о переносе занятия.
  • Личный кабинет преподавателя, дающий возможность в рамках системы задавать ДЗ и проверять его.
  • Размещение материалов занятий и конспектов на сайте.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages