Files
play-life/play-life-web/README.md

106 lines
3.8 KiB
Markdown
Raw Normal View History

2025-12-29 20:01:55 +03:00
# PlayLifeWeb
Веб-приложение для отображения статистики проектов.
## Возможности
- **Текущая неделя**: Отображение статистики на текущий момент с ProgressBar для каждого проекта
- **Полная статистика**: График нарастающей статистики по всем проектам
## Технологии
- React 18
- Vite
- Chart.js (react-chartjs-2)
- Tailwind CSS
- Docker
## Установка и запуск
### Локальная разработка
1. Установите зависимости:
```bash
npm install
```
2. Запустите dev-сервер:
```bash
npm run dev
```
Приложение будет доступно по адресу `http://localhost:3000`
### Сборка для production
```bash
npm run build
```
### Запуск через Docker
1. Создайте файл `.env` в корне проекта (можно скопировать из `env.example`):
```bash
cp env.example .env
```
2. Соберите образ:
```bash
docker-compose build
```
3. Запустите контейнер:
```bash
docker-compose up -d
```
Приложение будет доступно по адресу `http://localhost:3000`
**Примечание:** API запросы автоматически проксируются к бэкенду через nginx. Не требуется настройка URL API.
### Остановка Docker контейнера
```bash
docker-compose down
```
## Структура проекта
```
play-life-web/
├── src/
│ ├── components/
│ │ ├── CurrentWeek.jsx # Компонент текущей недели
│ │ ├── FullStatistics.jsx # Компонент полной статистики
│ │ └── ProjectProgressBar.jsx # Компонент ProgressBar
│ ├── App.jsx # Главный компонент приложения
│ ├── main.jsx # Точка входа
│ └── index.css # Глобальные стили
├── Dockerfile # Docker образ
├── docker-compose.yml # Docker Compose конфигурация
├── nginx.conf # Nginx конфигурация
└── package.json # Зависимости проекта
```
## API Endpoints
Приложение использует относительные пути для API запросов. Проксирование настроено автоматически:
- **Development**: Vite dev server проксирует запросы к `http://localhost:8080`
- **Production**: Nginx проксирует запросы к бэкенд контейнеру
Endpoints, которые используются:
- `/playlife-feed` - данные текущей недели
- `/d2dc349a-0d13-49b2-a8f0-1ab094bfba9b` - полная статистика
- `/projects` - список проектов
- `/project/priority` - обновление приоритетов проектов
- `/api/*` - остальные API endpoints (слова, конфигурации, тесты)
## Особенности реализации
- ProgressBar отображает текущее значение (`total_score`) и выделяет диапазон целей (`min_goal_score` - `max_goal_score`)
- График полной статистики показывает нарастающую сумму баллов по неделям
- Все проекты отображаются на одном графике с разными цветами
- Адаптивный дизайн для различных размеров экранов