Files
play-life/play-life-web
poignatov 4a06ceb7f6
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 16s
v2.0.0: Multi-user authentication with JWT
Features:
- User registration and login with JWT tokens
- All data is now user-specific (multi-tenancy)
- Profile page with integrations and logout
- Automatic migration of existing data to first user

Backend changes:
- Added users and refresh_tokens tables
- Added user_id to all data tables (projects, entries, nodes, dictionaries, words, progress, configs, telegram_integrations, weekly_goals)
- JWT authentication middleware
- claimOrphanedData() for data migration

Frontend changes:
- AuthContext for state management
- Login/Register forms
- Profile page (replaced Integrations)
- All API calls use authFetch with Bearer token

Migration notes:
- On first deploy, backend automatically adds user_id columns
- First user to login claims all existing data
2026-01-01 18:21:18 +03:00
..
2025-12-29 20:01:55 +03:00
2025-12-29 20:01:55 +03:00
2025-12-29 20:01:55 +03:00
2025-12-29 20:01:55 +03:00
2025-12-29 20:01:55 +03:00
2025-12-29 20:01:55 +03:00
2025-12-29 20:01:55 +03:00
2025-12-29 20:01:55 +03:00
2025-12-29 20:01:55 +03:00
2025-12-29 20:01:55 +03:00
2025-12-29 20:01:55 +03:00
2025-12-29 20:01:55 +03:00
2025-12-29 20:01:55 +03:00

PlayLifeWeb

Веб-приложение для отображения статистики проектов.

Возможности

  • Текущая неделя: Отображение статистики на текущий момент с ProgressBar для каждого проекта
  • Полная статистика: График нарастающей статистики по всем проектам

Технологии

  • React 18
  • Vite
  • Chart.js (react-chartjs-2)
  • Tailwind CSS
  • Docker

Установка и запуск

Локальная разработка

  1. Установите зависимости:
npm install
  1. Запустите dev-сервер:
npm run dev

Приложение будет доступно по адресу http://localhost:3000

Сборка для production

npm run build

Запуск через Docker

  1. Создайте файл .env в корне проекта (можно скопировать из env.example):
cp env.example .env
  1. Соберите образ:
docker-compose build
  1. Запустите контейнер:
docker-compose up -d

Приложение будет доступно по адресу http://localhost:3000

Примечание: API запросы автоматически проксируются к бэкенду через nginx. Не требуется настройка URL API.

Остановка Docker контейнера

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)
  • График полной статистики показывает нарастающую сумму баллов по неделям
  • Все проекты отображаются на одном графике с разными цветами
  • Адаптивный дизайн для различных размеров экранов