Условия передачи: готов передать полный исходный код. Поддержка 2 недели после сделки (консультации по коду, запуску и настройке). Домен и сервер не продаются — только исходники и инструкции по развёртыванию.
О проекте: веб-приложение для учёта личных финансов WealthTracker (инвестиции, бюджет, обязательства). Есть десктопная и мобильная версии интерфейса, вход через Telegram-бота. Так же по домену можно зайти
Функционал:
Инвестиции: портфель активов, интеграция с Tinkoff Invest API (котировки, инструменты), графики по классам активов и тикерам.
Бюджет: счета, категории доходов/расходов, транзакции, месячные лимиты по категориям, шифрование сумм (cryptography), сводки и графики по периодам.
Обязательства: блоки кредитов/ипотеки, график платежей, отметки об оплате, прогресс погашения, напоминания о ближайших платежах.
Итоги месяца: баннер 1–3 и последние 3 дня месяца (бюджет + обязательства за выбранный месяц), навигация по месяцам.
Админка: только для staff — список пользователей (поиск, фильтры, сортировка), управление флагом is_staff, редактирование имени/email пользователей; управление бэкапами БД (создание, список, скачивание, восстановление, ротация).
Профиль: смена имени и почты, тёмная/светлая тема.
Авторизация: JWT, вход по email/паролю.
Стек:
Frontend: React 18, TypeScript, Vite, Tailwind CSS, React Router, Chart.js, react-hot-toast, Bootstrap Icons, date-fns. Адаптивная вёрстка (отдельные маршруты/лейауты для мобильной версии).
Backend: Python 3.11, FastAPI, SQLAlchemy 2, Pydantic, Uvicorn. Аутентификация: JWT (python-jose), bcrypt для паролей. Интеграция с Tinkoff Invest API (invest-python, gRPC/protobuf). Redis — кэш и rate limiting. Шифрование сумм в БД (cryptography).
БД: PostgreSQL 16. Миграции — Flyway (Java), версионированные SQL-скрипты в env/pgsql/migrations/.
DevOps и развёртывание:
Docker: образы backend (Python 3.11-slim), frontend (Node 20 → nginx:alpine), postgres:16-alpine, redis:7-alpine, flyway, nginx, certbot.
Docker Compose: локальный (docker-compose.yml) и прод (docker-compose.production.yml) с томами для данных, статики и бэкапов.
Nginx: раздача статики фронта, проксирование API, HTTPS. Let's Encrypt (certbot) для SSL.
CI/CD: GitHub Actions — при пуше в master сборка образов backend и frontend, push в Docker Hub, деплой на сервер по SSH (копирование compose, nginx, скриптов, pull образов, перезапуск контейнеров), проверка контейнеров, уведомление в Telegram.
Бэкапы:
API (только для авторизованного админа): создание бэкапа (pg_dump + gzip), список с метаданными и размером, скачивание файла, восстановление (psql) с опцией drop_existing, ручная ротация, сведения об использовании диска.
Хранение: на проде том /opt/backups, переменные BACKUP_DIR, BACKUP_RETENTION_DAYS (по умолчанию 30 дней), автоматическое удаление старых бэкапов.
Cron: скрипт scripts/create_backup_cron.sh — получение JWT по логину/паролю из .env, вызов POST /backups/create; на сервере можно повесить на cron для регулярных бэкапов.
Makefile: make backup-list, make backup-restore BACKUP_FILE=..., make backup-create TOKEN=... для локальной работы с бэкапами.
Структура репозитория: app/backend/ (FastAPI, api, core, db, models, routes, scripts), app/frontend-react/ (src, components, pages, services, contexts), env/ (Dockerfile’ы backend и frontend, nginx, pgsql/migrations), корневые docker-compose.yml, docker-compose.production.yml, nginx.conf, Makefile, .github/workflows/deploy.yml, scripts/create_backup_cron.sh. Документация по запуску, переменным окружения, API и ручным командам — в README.md.