Skip to content

Latest commit

 

History

History
195 lines (134 loc) · 8.98 KB

README.md

File metadata and controls

195 lines (134 loc) · 8.98 KB

Проект Платформа для онлайн-бронирования услуг фотографов и видеоператоров:

MSPP CI/CD

Цель проекта -

Оглавление:

Технологии:

Развернуть

Языки программирования, библиотеки и модули:

Python [Chanels] [Daphne] [Djoser] Social-OAuth Pillow Redis logging uvicorn

Фреймворк, расширения и библиотеки:

Django

База данных:

PostgreSQL

CI/CD:

GitHub_Actions docker_hub docker_compose Nginx

⬆️Оглавление

Описание работы:

Сервис поддерживает следующие базовые функции:

Главная страница:

  • Основная информация для пользовтелей
  • Меню для перехода по страницам
  • Вывод топовых исполнителей на главной страницей, возможность перейти на их страницу или просмотра всех специалистов

Регистрация:

  • Выбор регистрации как пользователь или исполнитель
  • Возможность регистрации через Gmail или Vkontakte как пользователь

Личный кабинет:

  • Редактирование личной информации
  • Настройка уведомлений
  • Просмотр оставленных отзывов для фотографов
  • Чат с исполнителями
  • Удаление аккаунта

Для исполнителей:

  • Возможность выбора 5 работ(фото + видео) для предсвления на главной странице
  • Чат с клиентами
  • Добавление и удаление личных проектов

Просмотр страниц исполнителей:

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

Чат с пользователями:

⬆️Оглавление

Установка и запуск:

Удобно использовать принцип copy-paste - копировать команды из GitHub Readme и вставлять в командную строку Git Bash или IDE (например VSCode).

Предварительные условия:

Развернуть

Предполагается, что пользователь:

  • создал аккаунт DockerHub, если запуск будет производиться на удаленном сервере.
  • установил Docker и Docker Compose на локальной машине или на удаленном сервере, где проект будет запускаться в контейнерах. Проверить наличие можно выполнив команды:
    docker --version && docker-compose --version

Локальный запуск
  1. Клонируйте репозиторий с GitHub и в .env-файле введите данные для переменных окружения (значения даны для примера, но их можно оставить; подсказки даны в комментариях):
git clone https://github.com/Prosept-marking/backend.git && \
cd backend && \
cp .env_example .env && \
nano .env

Для работы сервиса необходимо задать значения минимум пяти переменным окружения: POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB, , DB_HOST, DB_PORT.

  1. Запуск - из корневой директории проекта выполните команду:
docker compose up -d --build

Проект будет развернут в четырех docker-контейнерах (db, backend, frontend, nginx) по адресу http://localhost:80.

  1. Остановить docker и удалить контейнеры можно командой из корневой директории проекта:
docker compose down

Если также необходимо удалить тома базы данных и статики:

docker compose down -v

Запуск на удаленном сервере
  1. Создайте Actions.Secrets согласно списку ниже (значения указаны для примера) + переменные окружения из env_example файла:
# Данные удаленного сервера и ssh-подключения:
HOST  # публичный IP-адрес вашего удаленного сервера
USER
SSH_KEY
SSH_PASSPHRASE

#  Переменные для работы с PostgreSQL.
POSTGRES_HOST=db
POSTGRES_DB=postgres
POSTGRES_PORT=5432
POSTGRES_USER=postgres
POSTGRES_PASSWORD=12345

# Переменные для создания суперюзера.
DJANGO_SUPERUSER_USERNAME=admin
DJANGO_SUPERUSER_EMAIL=admin@admin.com
DJANGO_SUPERUSER_PASSWORD=admpass
  1. Запустите вручную workflow, чтобы автоматически развернуть проект в четырех docker-контейнерах (db, backend, frontend, nginx) на удаленном сервере.

При первом запуске будут автоматически произведены следующие действия:

  • выполнятся миграции БД
  • создастся суперюзер (пользователь с правами админа) с учетными данными из переменных окружения DJANGO_SUPERUSER_USERNAME, DJANGO_SUPERUSER_EMAIL, DJANGO_SUPERUSER_PASSWORD.
  • соберется статика

Вход в админ-зону осуществляется по адресу: http://hostname/admin/ , где hostname:

  • localhost
  • Доменное имя удаленного сервера, например prosept.hopto.org

⬆️Оглавление

Удаление:

Для удаления проекта выполните команду:

cd .. && rm -fr backend

⬆️Оглавление

Авторы:

Vladislav Kuznetsov

German Leontiev

Vladislav Iakovenko

⬆️В начало