Skip to content

ХАКАТОН по задаче от Альфа-Банка

Notifications You must be signed in to change notification settings

Den2605/alfa_bank_hackathon

 
 

Repository files navigation


Backend часть командного проекта в рамках Хакатона Яндекс Практикум Альфа-Банк "02.2024"


Технологии:

Python Django DRF Celery Redis PostgreSQL Gunicorn

Swagger Docker DockerCompose GitHub Actions Nginx Certbot


Функционал:

В процессе разработки проекта были реализованы:

  • интуитивно понятный интерфейс
  • удобное хранение и работа с записями в БД
  • уведомления посредством отправки email

Технические особенности:

Репозиторий включает в себя два файла docker-compose.yml и docker-compose.production.yml, что позволяет развернуть проект на локальном или удалённом серверах.

Данная инструкция подразумевает, что на вашем локальном/удалённом сервере уже установлен Git, Python 3.10, пакетный менеджер pip, Docker, Docker Compose, утилита виртуального окружения python3-venv.

В проекте предусмотрена возможность запуска БД SQLite3 и PostgreSQL. Выбор БД осуществляется сменой значения CURRENT_DB на lite или postgre. lite = SQLite3, postgre = PostgreSQL.

В проекте настроена автодокументация с помощью Swagger. Для ознакомления перейдите по ссылке

С подробными инструкциями запуска вы можете ознакомиться ниже.


Как запустить:

Запуск проекта в Docker-контейнерах с помощью Docker Compose:

Создайте и перейдите в директорию проекта:

mkdir alfa_backend
cd alfa_backend/

Скачайте и добавьте файл docker-compose.production.yml в директорию.

Cоздайте файл .env:

nano .env

Добавьте следующие строки и подставьте свои значения:

POSTGRES_DB=DB                           # название db
POSTGRES_USER=USER                       # имя пользователя для db
POSTGRES_PASSWORD=PASSWORD               # пароль пользователя для db
DB_HOST=db                               # если поменять, то тогда нужно поменять название сервиса в docker-compose.production.yml
DB_PORT=5432                             # это порт для доступа к db
SECRET_KEY=SECRET_KEY                    # SECRET_KEY в настройках django
DEBUG=False                              # режим debug (True или False)
CURRENT_DB=postgre                       # lite для SQLite, posgre для PostgreSQL
ALLOWED_HOSTS=127.0.0.1 backend          # ваши адреса через пробел (пример:localhost 127.0.0.1 xxxx.com)
HOST_URL=http://localhost:8000           # ваш url адрес вместе с http/https
USE_SMTP=False                           # использовать ли настоящий сервис по отправке почты, иначе сообщения будут сохранятся внутри контейнера (папка sent_emails)
EMAIL_HOST=EMAIL_HOST                    # сервер вашего email service
EMAIL_PORT=EMAIL_PORT                    # порт для сервера
EMAIL_HOST_USER=EMAIL_HOST_USER          # email с которогу будет осуществлятся рассылка
EMAIL_HOST_PASSWORD=EMAIL_HOST_PASSWORD  # пароль для доступа со стороны стороннего приложения
EMAIL_USE_TLS=False                      # использовать TLS (True или False)
EMAIL_USE_SSL=True                       # использовать SSL (True или False)

Установить docker: https://www.docker.com/get-started/

В терминале linux это можно сделать так:

sudo apt update
sudo apt install curl
curl -fSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
sudo apt install docker-compose-plugin 

Запустить Docker в директории с файлом docker-compose.yaml (чтобы запустить в фоновом режиме добавьте флаг -d):

docker compose -f docker-compose.production.yml up

В терминале Linux могут потребоваться права суперпользователя:

sudo docker compose -f docker-compose.production.yml up

Для доступа в админ-зону (если вам нужны какие-то данные из бд, или нужно создать объекты) перейдите на страницу http://localhost:8000/admin/:

Логин: admin@admin.ru

Пароль: admin

Для импорта начальных данных воспользуйтесь командой:

docker compose -f docker-compose.production.yml exec backend sh import.sh

Если вы хотите иметь возможность поменять код:

Склонируйте репозиторий:

git clone git@github.com:ALFA-9/Backend.git

Перейдите в папку Backend и запустите файл docker-compose.yml:

cd Backend
docker compose up

Для импорта начальных данных воспользуйтесь командой:

docker compose exec backend sh import.sh

Если вы хотите прикрутить автоматизацию посредством GithubActions настройте файл .github/workflows/main.yml

Примечание. Любые изменения в коде при сохранении будут немедленно отображаться при запросах к серверу


Авторы

Алексей Синюков

Алексей Васильев

Денис Дриц

Илья Симонов

About

ХАКАТОН по задаче от Альфа-Банка

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.6%
  • Other 1.4%