Стек технологий бэкенда: DRF, PostgreSQL, Docker🐳, docker-compose, Linux, nginx, gunicorn
Демо-версия, нужная для кейс-чемпионата "Лига Приключений: Москва" в 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
Во время разработки нам пришлось отложить некоторые наши масштабные идеи, чтобы максимально отточить проект. Вот некоторые из них:
- Любые функции (в том числе цикличные), связанные со временем, как пример: функции связанные с "просрочкой" тестов, которые можно было бы реализовать с помощью Celery-Beat.
- Кэшированное отображения данных (например, информации студента в профиле) при помощи Redis.
- Весь функционал, реализованный с помощью админ-панели, хотелось бы перенести из неё в самодельные эндпоинты, а саму модель - кастомизировать.
- В будущем мы хотели бы добавить юнит-тесты для большинства эндпоинтов для экономии времени при разработке
Тонкости при деплое:
- пустую папку files создать среди приложений
- .env на основе deploy/.env_test поместить в settings.py