Монорепозиторий для управления личными финансами.
apps/web- Next.js фронтенд приложение с мок APIpackages/ui- Общие UI компоненты (заготовка)packages/shared- Общие типы (заготовка)
# Установка зависимостей
npm install
# Запуск в режиме разработки
npm run dev
# Сборка
npm run build
# Линтинг
npm run lint
# Форматирование
npm run format
# Тесты
npm run test # Запуск тестов
npm run test:watch # Запуск тестов в watch режиме
npm run test:ui # Запуск тестов с UI интерфейсом
npm run test:coverage # Запуск тестов с генерацией coverage отчетаВсе API endpoints находятся в apps/web/app/api/:
GET /api/transactions- список транзакцийPOST /api/transactions- создание транзакцииGET /api/balance- балансGET /api/categories- категорииPOST /api/auth/login- входPOST /api/auth/register- регистрацияPOST /api/auth/logout- выходGET /api/auth/me- текущий пользователь
В будущем эти моки будут заменены на Go бэкенд.
Проект использует Vitest для юнит и интеграционных тестов.
- Юнит тесты:
*.test.ts,*.test.tsx- рядом с тестируемыми файлами - Интеграционные тесты:
__tests__/- тесты для API маршрутов и интеграционных сценариев
- ✅ Утилиты авторизации (
auth.ts,api-auth.ts) - ✅ Компоненты защиты маршрутов (
AuthLoader,ProtectedRoute,PublicRoute) - ✅ API endpoints с проверкой авторизации
- ✅ Работа с сессиями (localStorage и cookies)
# Запуск всех тестов
npm run test
# Запуск в watch режиме
npm run test:watch
# Запуск с UI интерфейсом
npm run test:ui
# Запуск с генерацией coverage отчета
npm run test:coverage- Frontend: Next.js 16, TypeScript, Tailwind CSS v4
- Архитектура: Feature-Sliced Design (FSD)
- Иконки: Lucide React
- Тестирование: Vitest, @testing-library/react
- Монорепо: Turborepo
- CI/CD: GitHub Actions
new branch (feature/xxx) → dev → main
- main - основная ветка, защищена, только через PR
- dev - ветка разработки, защищена от прямого push, только через PR
- feature branches - создаются от dev, мержатся в dev через PR
-
Создание feature ветки:
git checkout dev git pull origin dev git checkout -b feature/my-feature
-
Создание Pull Request:
- Из feature ветки →
dev: создайте PR на GitHub - Из
dev→main: после тестирования в dev создайте PR в main
- Из feature ветки →
-
Защита веток:
- Ветки
mainиdevзащищены от прямого push - Все изменения должны проходить через Pull Requests
- Подробные инструкции по настройке: BRANCH_PROTECTION.md
- Ветки
Проект использует Conventional Commits. Формат: <type>(<scope>): <subject>
Примеры:
feat(web): add transaction formfix(api): correct balance calculationdocs: update README