basic AI front epta

This commit is contained in:
arrelin
2025-12-15 12:16:37 +03:00
parent 74d55c43fd
commit 1e393c79b5
14 changed files with 1513 additions and 63 deletions

View File

@@ -0,0 +1,94 @@
# Family Budget - Frontend
Фронтенд приложение для управления семейным бюджетом.
## Технологии
- React 19
- TypeScript
- Vite
- React Router DOM
- Zustand (state management)
- Axios (HTTP client)
- Tailwind CSS
## Структура проекта
```
frontend/
├── src/
│ ├── api/ # API клиент для общения с бэкендом
│ ├── pages/ # Страницы приложения
│ ├── store/ # Zustand store
│ ├── types/ # TypeScript типы
│ ├── App.tsx # Главный компонент с роутингом
│ └── main.tsx # Точка входа
├── .env # Переменные окружения
└── package.json
```
## Установка и запуск
1. Установите зависимости:
```bash
cd frontend
npm install
```
2. Настройте переменные окружения в `.env`:
```
VITE_API_BASE_URL=http://localhost:3000
```
3. Запустите dev сервер:
```bash
npm run dev
```
4. Соберите production версию:
```bash
npm run build
```
## Страницы
### Главная страница (`/`)
- Выбор семьи из списка
- Кнопка для перехода в админ панель
### Страница семьи (`/family/:familyId`)
- Отображение всех категорий семьи
- Показ оставшегося баланса для каждой категории
- Добавление расходов (вычет из остатка)
- Добавление новых категорий
- Удаление категорий
- Сброс лимита категории
### Админ панель (`/adminpanel`)
- Авторизация администратора
- Создание новых семей
- Удаление семей
- Выход из админки
## API Endpoints
Все запросы отправляются на бэкенд через Axios клиент (`src/api/client.ts`):
- **Auth**: `POST /login`, `POST /logout`
- **Families**: `GET /families`, `POST /families`, `DELETE /families/:id`
- **Categories**: `GET /families/:id/categories`, `POST /families/:id/categories`, etc.
- **Expenses**: `GET /families/:id/categories/:id/expenses`, `POST /families/:id/categories/:id/expenses`, etc.
## Учетные данные по умолчанию
Согласно бэкенду, дефолтный админ:
- Username: `admin`
- Password: `2123`
## State Management
Используется Zustand для управления глобальным состоянием:
- `isAdmin` - флаг авторизации администратора
- `selectedFamily` - выбранная семья
- `families` - список всех семей
- `categories` - категории текущей семьи