Skip to content

Rastraponovich/moneta

Repository files navigation

Moneta - Финансовый трекер

Монорепозиторий для управления личными финансами.

Структура

  • apps/web - Next.js фронтенд приложение с мок API
  • packages/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 (Моки)

Все 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

Работа с ветками

  1. Создание feature ветки:

    git checkout dev
    git pull origin dev
    git checkout -b feature/my-feature
  2. Создание Pull Request:

    • Из feature ветки → dev: создайте PR на GitHub
    • Из devmain: после тестирования в dev создайте PR в main
  3. Защита веток:

    • Ветки main и dev защищены от прямого push
    • Все изменения должны проходить через Pull Requests
    • Подробные инструкции по настройке: BRANCH_PROTECTION.md

Коммиты

Проект использует Conventional Commits. Формат: <type>(<scope>): <subject>

Примеры:

  • feat(web): add transaction form
  • fix(api): correct balance calculation
  • docs: update README

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published