Skip to content

Сервис для регистрации представителей IT-сообщества на мероприятия.

License

Notifications You must be signed in to change notification settings

it-events-hub/events-backend

Repository files navigation

API сайта для Афиши IT-мероприятий

Static Badge main workflow Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Poetry code style Imports: isort

Описание проекта

Сервис для регистрации представителей IT-сообщества на мероприятия, в котором можно создавать и редактировать мероприятия, находить и регистрироваться на мероприятия. Фронтенд взаимодействует с бэкендом через API.

С помощью API осуществляются:

  • регистрация и авторизация пользователя;
  • управление пользователем данными своего личного кабинета;
  • хранение информации о мероприятиях;
  • создание, редактирование, активация и деактивация мероприятий админами;
  • отправка авторизованными и неавторизованными посетителями заявок на участие в мероприятиях;
  • отправка людям, которые оставляли заявки на участие в мероприятиях, уведомлений об успешной подаче заявки;
  • отправка людям, которые оставляли заявки на участие в мероприятиях, напоминаний о мероприятиях, на которые они заявлялись - за день, за час или за 15 минут до начала (способ и расписание напоминаний настраивает человек, подавший заявку).

Команда backend разработки

  • Galina Volkova - тимлид, руководство командой backend-разработки, code review, проектирование базы данных, разработка эндпойнтов заявок на участие в мероприятиях и настроек уведомлений пользователей, подключение фильтрации к эндпойнту списка мероприятий, настройка динамической документации апи в форматах Swagger и Redoc, деплой на сервер и настройка CI/CD
  • Nikolai Petrishchev - разработка эндпойнтов пользователей, разработка команд загрузки данных из csv-файлов в базу данных, подготовка сервера в Яндекс Облаке для деплоя
  • Maksim Ukolov - разработка эндпойнтов мероприятий, их частей и спикеров

Динамически генерируемая документация апи

Чтобы посмотреть динамическую документацию апи, нужно запустить приложение и пройти по одной из этих ссылок:

Запуск проекта на локальном компьютере (без Docker)

Предварительные условия: на компьютере должны быть установлены Python 3.10 и Poetry.

Клонировать репозиторий и перейти в него в командной строке:

git clone git@github.com:it-events-hub/events-backend.git
cd events-backend

Создать в папке events-backend/src/config файл с названием ".env" и следующим содержанием:

SECRET_KEY=key
DOCKER=no
MODE=dev
ALLOWED_HOSTS=localhost web testserver 127.0.0.1 0.0.0.0 [::1]
CSRF_TRUSTED_ORIGINS=http://localhost/*

Установить Poetry - https://python-poetry.org/docs/#installation

C помощью Poetry создать и активировать виртуальное окружение:

poetry shell

# деактивировать виртуальное окружение можно командой
exit

Установить зависимости из файла poetry.lock

poetry install

Перейти в папку src и выполнить миграции:

cd src
python3 manage.py migrate

Собрать папку со статикой:

python3 manage.py collectstatic --no-input

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

python3 manage.py createsuperuser

Локально запустить проект:

python3 manage.py runserver

Выйти из проекта: Ctrl + C.

Запуск проекта на локальном компьютере в Docker Compose

Предварительные условия: на компьютере должен быть установлен Docker Compose.

Клонирование репозитория, создание контейнеров и первоначальная сборка

Важно: при работе в Linux или через терминал WSL2 все команды docker и docker compose нужно выполнять от имени суперпользователя — начинайте их с sudo.

Склонировать репозиторий на свой компьютер и перейти в него:

git clone git@github.com:it-events-hub/events-backend.git
cd events-backend

Создать в папке infra/ файл .env с необходимыми переменными окружения.

Пример содержимого файла:

SECRET_KEY=key
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
MODE=dev
DOCKER=yes
ALLOWED_HOSTS=localhost web testserver
CSRF_TRUSTED_ORIGINS=http://localhost/*

Запустить сборку контейнеров с помощью docker compose:

docker compose -f docker-compose.local.yml up -d --build

После этого будут созданы и запущены в фоновом режиме контейнеры db, backend и nginx.

Внутри контейнера backend создать админа-суперпользователя для входа в Админку:

docker compose -f docker-compose.local.yml exec -it backend python manage.py createsuperuser

После этого Админка должна стать доступна по адресу: http://localhost/admin/ API Root будет доступен по адресу: http://localhost/api/

Остановка и повторный запуск контейнеров

Для остановки работы приложения можно набрать в терминале команду Ctrl+C или открыть второй терминал и выполнить команду:

docker compose stop 

Снова запустить контейнеры без их пересборки можно командой:

docker compose start 

About

Сервис для регистрации представителей IT-сообщества на мероприятия.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •