Здесь создается инструмент для сбора заявок на соревнования и иные мероприятия, на которых для идентификации участника используется его стартовый номер. Данный сервис позволит авторизованным пользователя создавать форму регистрации на гонку, определять категории участников гонки, задавать диапазоны стартовых номеров, доступных в каждой категории при регистрации. Любой неавторизованный пользователь сможет оставить заявку на участие, а также просмотреть список участников, уже зарегистрировавшихся на гонку.
Этот инструмент разрабатывается с целью реального использования на практике, поскольку автор входит в команду организаторов любительских соревнований по маунтинбайку.
django 3.0.5 REST API python 3.8 docker 3.8 postgresql 12.4 Gunicorn 20.0.4
Программа-максимум включает в себя следующие стадии:
- Создание моделей, написание алгоритмов проверки полей модели, настройка админки django.
- Разработка html-форм для создания форм регистрации на гонки, настройки категорий участников и html-форм для подачи заявок на участие.
- Написание моделей пользователей с разграничением прав (админ, модератор, гость) и страницы регистрации.
- Написание тестов (django unittest).[частично выполнено]
- Написание API для регистрации на гонку, просмотра списка участников гонки и иной информации о гонке [см. openapi-schema.yml].
- Написание telegramm-бота для реализации функционала API из пункта 5.[выполнено]
- Развертывание проекта на сервере при помощи Docker [выполнено] и автоматизация этого процесса посредством Git Actions [в планах].
- [Текущая стадия] >>>Оформление описания функционала сервиса и инструкции по развертыванию.<<<
- Перед развертыванием на сервере должны быть установлены: docker, git, nginx. В процессе развертывания потребуется еще установка certbot. Для сайта должно быть приобретено доменное имя.
Соединение с сайтом будет осуществляться по https. За установку и обновление сертификатов будет отвечать (certbot), а для его работы как раз и требуется наличие nginx непосредственно на сервере.
Серверный nginx будет настроен на перенаправление запросов на nginx, запущенный в докер-контейнере в связке с движком сайта.
После клонирования репозитория на сервер необходимо в файлах .conf в папке infra закомментировать "#" отдельные строки, которые обозначены внутри этих файлах соответствующими комментариями.