https://github.com/pashpiter/hackathon_alfa_task
Командный проект по созданию MVP индивидуального плана развития для сотрудников в Альфа-Банке.
https://github.com/pashpiter/hackathon_alfa_task
alembic docker fastapi nginx postgresql pydantic sqlalchemy
Last synced: 3 months ago
JSON representation
Командный проект по созданию MVP индивидуального плана развития для сотрудников в Альфа-Банке.
- Host: GitHub
- URL: https://github.com/pashpiter/hackathon_alfa_task
- Owner: pashpiter
- Created: 2024-01-17T11:50:37.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-09T16:27:21.000Z (over 2 years ago)
- Last Synced: 2025-05-07T20:18:15.252Z (about 1 year ago)
- Topics: alembic, docker, fastapi, nginx, postgresql, pydantic, sqlalchemy
- Language: Python
- Homepage:
- Size: 2.78 MB
- Stars: 0
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# **MVP индивидуального плана развития для сотрудников Альфа-Банка**










Репозиторий с исходным кодом: https://github.com/pashpiter/Hackathon_Alfa_task/
Проект запущен по адресу: http://51.250.6.208/
В базе данных создано два пользователя
Руководитель: Андреев Андрей Андреевич, токен: `1234567890abcdefghijklmnopqrstuvwxyz`
Сотрудник: Иванов Иван Иванович, токен: `0987654321zyxwvutsrqponmlkjihgfedcba`
___
## **Спецификация проекта**:
- для построения REST API используется фреймворк FastAPI
- в качестве хранилища данных проекта используется СУБД PostgreSQL
- раздачей статики и проксированием http-запросов занимается web-сервер nginx
- в качестве упрощённого механизма авторизации используется проверка Bearer-токенов.
Токены статически хранятся в БД, выдача токенов не предусмотрена
___
## **Энодпоинты API**:

Подробная информация об эндпоинтах содержится в репозитарии в архиве `docs/endpoints.zip`
___
## **Как запустить проект локально**:
- Склонируйте репозитарий:
```
git clone git@github.com:pashpiter/Hackathon_Alfa_task.git
```
- Установите Docker согласно инструкции с официального сайта: _https://docs.docker.com/_
- В папке infra создайте папку env с файлами переменных окружения (в качестве
примера можно взять папку env.example):
```
# env/general
# Server
SERVER_HOST=127.0.0.1
SERVER_PORT=80
# Versions
POSTGRES_VERSION=15
NGINX_VERSION=1.23.3
# Hosts
POSTGRES_HOST=postgres
NGINX_HOST=nginx
FASTAPI_HOST=fastapi
# Ports
POSTGRES_PORT=5432
FASTAPI_PORT=8001
```
```
# env/postgres
POSTGRES_DB=database
POSTGRES_USER=user
POSTGRES_PASSWORD=password
POSTGRES_SCHEMA=plans
```
```
# env/fastapi
APP_NAME="ИПР для сотрудников Альфа-Банка"
DEBUG=False
```
Список команд для управления работой сервиса:
```
make up - запуск сервиса
make down - остановка сервиса
make down-volumes - остановка сервиса с удалением всех данных
```
## **Как наполнить базу**:
* Зайдите в контейнер fastapi:
```
cd infra
sudo docker compose --file=docker-compose.yaml --env-file=env/general exec fastapi bash
```
* Залейте дамп в базу данных:
```
cd db
python fill_table_users.py
```
Openapi документация доступна по адресам:
- Swagger: _http:///api/v1/openapi_
- ReDoc: _http:///api/v1/redoc_
## **Разработчики**:
[Павел Дровнин](https://github.com/pashpiter) - Тимлид
[Александр Бондаренко](https://github.com/dcomrad) - Разработчик
[Денис Заборовский](https://github.com/zrivkoren) - Разработчик
[Иван Павлов](https://github.com/ivnpvl) - Разработчик