{"id":27966360,"url":"https://github.com/pashpiter/hackathon_alfa_task","last_synced_at":"2026-04-11T05:37:13.104Z","repository":{"id":218075129,"uuid":"744483880","full_name":"pashpiter/Hackathon_Alfa_task","owner":"pashpiter","description":"Командный проект по созданию MVP индивидуального плана развития для сотрудников в Альфа-Банке.","archived":false,"fork":false,"pushed_at":"2024-02-09T16:27:21.000Z","size":2919,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-07T20:18:15.252Z","etag":null,"topics":["alembic","docker","fastapi","nginx","postgresql","pydantic","sqlalchemy"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pashpiter.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-01-17T11:50:37.000Z","updated_at":"2024-04-01T16:12:59.000Z","dependencies_parsed_at":"2024-02-09T05:21:04.289Z","dependency_job_id":"ee8a765d-df07-458c-9cc2-21afe26428a7","html_url":"https://github.com/pashpiter/Hackathon_Alfa_task","commit_stats":null,"previous_names":["pashpiter/hackathon_alfa_task"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pashpiter%2FHackathon_Alfa_task","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pashpiter%2FHackathon_Alfa_task/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pashpiter%2FHackathon_Alfa_task/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pashpiter%2FHackathon_Alfa_task/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pashpiter","download_url":"https://codeload.github.com/pashpiter/Hackathon_Alfa_task/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252949236,"owners_count":21830154,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alembic","docker","fastapi","nginx","postgresql","pydantic","sqlalchemy"],"created_at":"2025-05-07T20:18:18.622Z","updated_at":"2025-12-30T21:56:26.375Z","avatar_url":"https://github.com/pashpiter.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **MVP индивидуального плана развития для сотрудников Альфа-Банка**\n![Development](https://github.com/pashpiter/Hackathon_Alfa_task/actions/workflows/dev_workflows.yml/badge.svg)\n\n![image](https://img.shields.io/badge/Python-FFD43B?style=for-the-badge\u0026logo=python\u0026logoColor=blue)\n![image](https://img.shields.io/badge/FastAPI-005571?style=for-the-badge\u0026logo=fastapi)\n![image](https://img.shields.io/badge/PostgreSQL-316192?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white)\n![image](https://img.shields.io/badge/sql%20alchemy-grey?style=for-the-badge\u0026logo=alchemy)\n![image](https://img.shields.io/badge/alembic-7FFFD4?style=for-the-badge)\n![image](https://img.shields.io/badge/pydantic-FF1493?style=for-the-badge\u0026logo=pydantic)\n![image](https://img.shields.io/badge/poetry-4169E1?style=for-the-badge\u0026logo=poetry)\n![image](https://img.shields.io/badge/Nginx-009639?style=for-the-badge\u0026logo=nginx\u0026logoColor=white)\n![image](https://img.shields.io/badge/Docker-2CA5E0?style=for-the-badge\u0026logo=docker\u0026logoColor=white)\n\nРепозиторий с исходным кодом: https://github.com/pashpiter/Hackathon_Alfa_task/  \nПроект запущен по адресу: http://51.250.6.208/\n\n\u003cbr\u003e \n\nВ базе данных создано два пользователя\n\nРуководитель: Андреев Андрей Андреевич, токен: `1234567890abcdefghijklmnopqrstuvwxyz`\n\nСотрудник: Иванов Иван Иванович, токен: `0987654321zyxwvutsrqponmlkjihgfedcba`\n\n___\n## **Спецификация проекта**:\n- для построения REST API используется фреймворк FastAPI\n- в качестве хранилища данных проекта используется СУБД PostgreSQL\n- раздачей статики и проксированием http-запросов занимается web-сервер nginx\n- в качестве упрощённого механизма авторизации используется проверка Bearer-токенов. \nТокены статически хранятся в БД, выдача токенов не предусмотрена\n\n___\n## **Энодпоинты API**:\n\n![](docs/endpoints.png)\n\nПодробная информация об эндпоинтах содержится в репозитарии в архиве `docs/endpoints.zip`  \n___\n## **Как запустить проект локально**:\n\n- Склонируйте репозитарий:\n```\ngit clone git@github.com:pashpiter/Hackathon_Alfa_task.git\n```\n\n- Установите Docker согласно инструкции с официального сайта: _https://docs.docker.com/_\n- В папке infra создайте папку env с файлами переменных окружения (в качестве \nпримера можно взять папку env.example):\n\n```\n# env/general\n\n# Server\nSERVER_HOST=127.0.0.1\nSERVER_PORT=80\n\n# Versions\nPOSTGRES_VERSION=15\nNGINX_VERSION=1.23.3\n\n# Hosts\nPOSTGRES_HOST=postgres\nNGINX_HOST=nginx\nFASTAPI_HOST=fastapi\n\n# Ports\nPOSTGRES_PORT=5432\nFASTAPI_PORT=8001\n```\n```\n# env/postgres\n\nPOSTGRES_DB=database\nPOSTGRES_USER=user\nPOSTGRES_PASSWORD=password\nPOSTGRES_SCHEMA=plans\n```\n```\n# env/fastapi\n\nAPP_NAME=\"ИПР для сотрудников Альфа-Банка\"\nDEBUG=False\n```\n\nСписок команд для управления работой сервиса:\n```\nmake up             - запуск сервиса\nmake down           - остановка сервиса\nmake down-volumes   - остановка сервиса с удалением всех данных\n```\n\n## **Как наполнить базу**:\n\n* Зайдите в контейнер fastapi:\n```\ncd infra\nsudo docker compose --file=docker-compose.yaml --env-file=env/general exec fastapi bash\n```\n* Залейте дамп в базу данных:\n```\ncd db\npython fill_table_users.py\n```\n\nOpenapi документация доступна по адресам:\n- Swagger: _http://\u003cip адрес сервера\u003e/api/v1/openapi_\n- ReDoc: _http://\u003cip адрес сервера\u003e/api/v1/redoc_\n\n## **Разработчики**:\n[Павел Дровнин](https://github.com/pashpiter) - Тимлид\n\n[Александр Бондаренко](https://github.com/dcomrad) - Разработчик\n\n[Денис Заборовский](https://github.com/zrivkoren) - Разработчик\n\n[Иван Павлов](https://github.com/ivnpvl) - Разработчик\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpashpiter%2Fhackathon_alfa_task","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpashpiter%2Fhackathon_alfa_task","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpashpiter%2Fhackathon_alfa_task/lists"}