API для управления личными финансами с отслеживанием доходов, расходов и бюджетов.
- Регистрация и авторизация пользователей
- Учет доходов и расходов с категориями
- Создание и отслеживание бюджетов
- Создание финансовых целей
- Генерация отчетов
- Планирование регулярных платежей
- Поиск и фильтрация транзакций
- Python 3.10+
- FastAPI 0.95+
- MongoDB (через Motor для асинхронной работы)
- Pydantic 2.0+
- JWT для аутентификации
- Клонировать репозиторий
- Создать виртуальное окружение:
python -m venv venv source venv/bin/activate # для Linux/macOS venv\Scripts\activate # для Windows
- Установить зависимости:
pip install -r requirements.txt
- Создать файл
.env
на основе.env.example
- Запустить MongoDB
- Запустить приложение:
python main.py
После запуска API будет доступно по адресу http://localhost:8000
POST /api/auth/register
- Регистрация нового пользователяPOST /api/auth/login
- Авторизация и получение JWT токенаPOST /api/auth/refresh-token
- Обновление JWT токена
GET /api/users/me
- Получение информации о текущем пользователеPUT /api/users/me
- Обновление информации о текущем пользователеGET /api/users/me/statistics
- Получение статистики пользователя
POST /api/transactions
- Создание новой транзакцииGET /api/transactions
- Получение списка транзакций с фильтрациейGET /api/transactions/{transaction_id}
- Получение транзакции по IDPUT /api/transactions/{transaction_id}
- Обновление транзакцииDELETE /api/transactions/{transaction_id}
- Удаление транзакции
POST /api/categories
- Создание новой категорииGET /api/categories
- Получение списка категорийGET /api/categories/{category_id}
- Получение категории по IDPUT /api/categories/{category_id}
- Обновление категорииDELETE /api/categories/{category_id}
- Удаление категории
POST /api/budgets
- Создание нового бюджетаGET /api/budgets
- Получение списка бюджетовGET /api/budgets/{budget_id}
- Получение бюджета по IDPUT /api/budgets/{budget_id}
- Обновление бюджетаDELETE /api/budgets/{budget_id}
- Удаление бюджетаGET /api/budgets/{budget_id}/progress
- Получение прогресса по бюджету
POST /api/goals
- Создание новой финансовой целиGET /api/goals
- Получение списка финансовых целейGET /api/goals/{goal_id}
- Получение финансовой цели по IDPUT /api/goals/{goal_id}
- Обновление финансовой целиDELETE /api/goals/{goal_id}
- Удаление финансовой целиGET /api/goals/{goal_id}/progress
- Получение прогресса по финансовой целиPOST /api/goals/{goal_id}/contributions
- Добавление взноса к финансовой цели
GET /api/reports/monthly
- Получение ежемесячного отчетаGET /api/reports/category
- Получение отчета по категориямGET /api/reports/income-expense
- Получение отчета по доходам и расходам
POST /api/transactions
{
"type": "expense",
"amount": 1500.50,
"currency": "RUB",
"category_id": "category_id_here",
"description": "Покупка продуктов",
"date": "2023-11-15T14:30:00",
"tags": ["продукты", "еда"]
}
POST /api/budgets
{
"name": "Бюджет на продукты",
"amount": 15000,
"currency": "RUB",
"period": "monthly",
"category_id": "category_id_here",
"start_date": "2023-11-01",
"end_date": "2023-11-30"
}
POST /api/goals
{
"name": "Покупка ноутбука",
"target_amount": 80000,
"currency": "RUB",
"current_amount": 15000,
"deadline": "2024-03-01",
"description": "Накопить на новый ноутбук"
}
GET /api/reports/monthly?year=2023&month=11