Сервис курсов валют с парсером данных ЦБ РФ.
- FastAPI — REST API с JWT-авторизацией
- SQLAlchemy 2.0 (async) + asyncpg — работа с PostgreSQL
- Alembic — миграции
- Scrapy — парсер сайта ЦБ РФ
- APScheduler — автозапуск парсера раз в сутки
- Docker + Docker Compose — контейнеризация
api/ — HTTP-ручки (FastAPI)
domain/ — бизнес-логика (auth, users, currency)
core/ — конфиг, БД, security, зависимости, планировщик
parser/ — Scrapy spider + pipeline
alembic/ — миграции
-
Клонировать репозиторий:
git clone <url> cd higher-web-practice-python-currency
-
Установить зависимости:
uv sync
-
Создать
.env:cp .env.example .env
-
Запустить всё через Docker:
docker compose up -d --build
-
Открыть Swagger: http://127.0.0.1:8000/docs
POST /auth/login— логин, возвращает access + refreshPOST /auth/refresh— обновление токена
POST /users/register— регистрацияGET /users/{user_id}— получить пользователя (защищено)GET /users/email/{email}— получить по email (защищено)PUT /users— обновить профиль (защищено)
GET /currencies— список валют (защищено)GET /currencies/{code}— последний курс (защищено)GET /currencies/{code}/history?startdate=...&enddate=...— история (защищено)GET /currencies/{code}/all— вся история (защищено)
Запускается автоматически раз в 24 часа через APScheduler.
Ручной запуск:
docker compose exec app sh -c "cd parser && scrapy crawl cbr -a days=30"Артур Щекач
- GitHub: @ArturShchekachPav
- Email: ashhekach@gmail.com
Учебный проект.