- проектирование REST API
- асинхронный backend
- работу с реальными финансовыми данными (MOEX)
- расчёт PnL и другие метрики по истории сделок (FIFO)
- Backend API (FastAPI)
- Auth (JWT access/refresh)
- Портфели / Активы / Сделки
- Модуль аналитики
- Price updater microservice
- Достает данные из MOEX API
- Обновляет в PostgreSQL
- Публикует обновления через Redis
- PostgreSQL - основное хранилище
- Redis
- Cache
- Pub/Sub (в разработке)
cp .env.example .env docker compose up -d --build
После запуска Swagger будет доступен по http://localhost:8000/docs
- Автоматически собирать цены активов с MOEX через API
- Хранить данные в БД
- Позволять пользователю создавать портфели и позиции и управлять ими
Предоставлять аналитику по:
- структуре портфеля
- распределению по секторам
- динамике стоимости Предоставлять удобный API
- архитектура с разделением api, services, repositories, models, shemas
- набор эндпоинтов (аналитика и CRUDы)
- история сделок
- правильная по FIFO аналитика расчета PNL-ов по истории сделок
- отдельный модуль аналитики
- 3 вида аналитических сводок
- отдельный сервис price_updater для обновления динамики цен активов
- авторизация/аутентификация JWT / Oauth2
• Python 3.11 • FastAPI • WebSocket • Pydantic • aiohttp • asyncio • PostgreSQL • SQLAlchemy 2.0 (async) • Alembic • Redis • Logging • API iss.moex • Auth JWT (Access/Refresh)
- custom exceptions
- обеспечение скорости модуля аналитики raw sql запросами
- улучшение микросервиса price_updater
- система задач/воркеров
- добавление новых источников данных
- микрсервис на Python/Go для импорта портфеля из Т-инвестиций
- frontend клиент (react, next.js)