Skip to content

ZUS666/spot

Repository files navigation

Spot

api_spot

Оглавление
  1. Описание
  2. API-документация
  3. Переменные окружения (.env)
  4. Запуск проекта
  5. Запуск проекта на локальной машине Linux
  6. Авторы

Описание

https://spots-it.ru/

Ценность приложения в улучшении доступности, удобства и эффективности использования коворкинговых пространств для IT специалистов, а также улучшении управлении и оптимизации пространств для владельцев.

Бэкенд веб-сервиса для поиска веб-сервиса "Онлайн-бронирование в коворкингах для IT специалистов". Возможности: Все пользователи:

  • Аутентификация (TokenAuthentication);
  • Просмотр, поиск, фильтрация всех локаций;
  • Просмотр ивентов, правил и вопросов сайта;

Клиенты:

  • Личный кабинет с возможностью изменить данные в профиле;
  • Список забонированых мест;
  • Добавление локации в избранное и удаление из избранного;
  • Бронь мест в локации и отмена записи (из ЛК);

Реализаново 4 приложение:

  • api: приложение связанное с запросами (api);
  • spots: основный модели( локации, заказы, споты и тд);
  • users: модель пользователя;
  • information: модели вопросов, ивентов, правил;

Используемые технологии

Python Django DjangoREST Postgres Celery Docker

Переменные окружения (.env)

Создать файл .env

touch .env

Заполнить по аналогии с .env.example

Запуск проекта

  • Установите docker
  • Для установки на ubuntu выполните следующие команды:
sudo apt install docker

Про установку на других операционных системах вы можете прочитать в документации

  • Склонируйте репозиторий на локальную машину:
git clone git@github.com:ZUS666/spot.git
  • В корне проекта создайте .env файл по аналогии с файлом .env.example.
  • Перейдите в папку infra и соберите контейнеры:
docker compose up -d
  • Примените миграции:
docker compose exec web python manage.py migrate
  • Создайте суперпользователя Django:
docker compose exec web python manage.py createsuperuser
  • Соберите статику:
docker compose exec web python manage.py collectstatic --noinput
  • Для заполнения или обновления базы данных перейдите по адресу https://localhost/admin
  • Для получения документация по api перейдите по адресу https://localhost/api/docs/

Запуск проекта на локальной машине Linux

  • Создать виртуальное окружение и активировать его
  • Установить зависимости
sudo apt install python3.10-venv
python3 -m vevn venv
source venv/bin/activate
pip install -r requirements.txt
  • Или установить pipenv и работать в нем
$ pip install --user pipenv
  • Проверить установку
$ pipenv --version
pipenv, version 2023.10.24
  • Перейти в папку api_spot и активировать pipenv
cd api_spot
pipenv sync
pipenv shell
  • Установите Redis в качестве брокера Celery и серверной части базы данных
sudo apt update
sudo apt install redis
  • Запустить сервер в терминале redis-server
  • В другом терминале(2) перейти в папку api_spot и запустить celery
cd api_spot
python -m celery -A api_spot worker
  • В другом терминале(3) перейти в папку api_spot и запустить celery_beat
cd api_spot
python -m celery -A api_spot beat
  • В первом терминале запустить сервер Django + cделать миграции
python manage.py createsuperuser
python manage.py makemigrations
python manage.py migrate
python manage.py runserver

Так же можно запустить flower(для мониторинга задач) в третьем терминале.

celery -A api_spot flower --port=5001
  • Для заполнения или обновления базы данных исползовать https://localhost/admin
  • в Postman тестировать api

Авторы: