Skip to content

Latest commit

 

History

History
64 lines (44 loc) · 4.55 KB

README.md

File metadata and controls

64 lines (44 loc) · 4.55 KB

logo

Кейс: корпоративный университет Совкомбанка (от команды GEMS)

Стек технологий бэкенда: DRF, PostgreSQL, Docker🐳, docker-compose, Linux, nginx, gunicorn

💬 TL:DR

Демо-версия, нужная для кейс-чемпионата "Лига Приключений: Москва" в 2023 году. Сайт разрабатывали:

  • Алексей Куделько (Backend Developer)
  • Артём Иванов (Frontend Developer)
  • Мария Пилипец (UI-UX Designer)

Веб-версия: https://univer-gems.ru

🌀 Готовый функционал

Мини-приложение "users"

  • Авторизация (JWT)
  • Вывод профиля студента (статистика посещений, статистика успеваемости, отображение прочей информации о студенте)
  • Управление таблицами: "направления", "группа", "профиль студента", "учебные группы"

Мини-приложение "conent"

  • Вкладка "моё обучение" (подсчёт успеваемости по каждому из предметов, вывод учебных материалов и тестов по каждому)
  • Просмотр содержимого выбранного задания или выбранного учебного материала
  • Прохождение тестов, проверка результатов, и сохранение их в БД для просмотра преподавателя
  • Возможность составления тестов и учебных материалов для студентов

Мини-приложение "timetable"

  • Отображение расписания для группы студента
  • Возможность отметки присутствующих на паре
  • Возможность редактирования расписания для разных групп со стороны куратора

Мини-приложение "applications"

  • Возможность отправки заявки со стороны незарегистрированного пользователя
  • Функционал для проверки, фильтрации, удаления заявок со стороны абитуриентов

В том числе написаны unit-test'ы для большинства эндпоинтов Помимо этого данное веб-приложение содержит базвую документацию в swagger.

Базовая схема базы данных

https://dbdiagram.io/d/657f330956d8064ca02ffaf7 Untitled

💭 Функционал для будущей доработки

Во время разработки нам пришлось отложить некоторые наши масштабные идеи, чтобы максимально отточить проект. Вот некоторые из них:

  1. Любые функции (в том числе цикличные), связанные со временем, как пример: функции связанные с "просрочкой" тестов, которые можно было бы реализовать с помощью Celery-Beat.
  2. Кэшированное отображения данных (например, информации студента в профиле) при помощи Redis.
  3. Весь функционал, реализованный с помощью админ-панели, хотелось бы перенести из неё в самодельные эндпоинты, а саму модель - кастомизировать.
  4. В будущем мы хотели бы добавить юнит-тесты для большинства эндпоинтов для экономии времени при разработке

👓 Для разработчиков

Тонкости при деплое:

  • пустую папку files создать среди приложений
  • .env на основе deploy/.env_test поместить в settings.py