Skip to content

Vooidss/ProForma

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProForma — Приложение тренера для учета тренировок

Desktop приложение + backend для:

  • составления плана тренировок;
  • фиксации результатов по упражнениям;
  • отслеживания прогресса спортсмена.

Технологический стек

Backend

  • Java 21
  • Spring Boot (Web, Validation)
  • Hibernate / Spring Data JPA
  • PostgreSQL
  • Flyway (миграции БД)

Frontend

  • TypeScript
  • Electron
  • HTML/CSS/JavaScript desktop UI для работы тренера в широком экране

Примечание: в текущем окружении есть ограничения доступа к npm/maven registry (HTTP 403), поэтому установка новых пакетов ограничена.

Архитектура

Backend (backend-proforma)

Слои:

  • api — REST controllers
  • service — бизнес-логика
  • repository — JPA repositories
  • domain — JPA entities
  • dto — вход/выход API
  • common — единая обработка ошибок
  • config — CORS и инфраструктурные настройки

Основные сущности

  • Athlete — спортсмен
  • TrainingPlan — тренировочный план
  • TrainingSession — факт/план конкретной тренировки

REST API

  • POST /api/athletes — создать спортсмена
  • GET /api/athletes — список спортсменов
  • GET /api/athletes/{id} — карточка спортсмена
  • PUT /api/athletes/{id} — обновить данные спортсмена
  • POST /api/training-plans — создать план
  • GET /api/training-plans?athleteId= — список планов (фильтр по спортсмену)
  • GET /api/training-plans/{id} — получить план по id
  • POST /api/training-sessions — создать тренировочную сессию
  • GET /api/training-sessions?athleteId= — тренировки спортсмена
  • PATCH /api/training-sessions/{sessionId}/actual — обновить фактические результаты
  • GET /api/progress?athleteId= — агрегированный прогресс (completion rate, max weight, avg load)

Конфигурация БД

application.yml поддерживает переменные окружения:

  • DB_URL (default jdbc:postgresql://localhost:5432/proforma)
  • DB_USERNAME (default postgres)
  • DB_PASSWORD (default postgres)

Миграции

  • SQL-миграции лежат в backend-proforma/src/main/resources/db/migration
  • Базовая схема создаётся миграцией V1__init_schema.sql

Frontend (frontend)

  • Полностью переписан под desktop-сценарий на Electron
  • Главное окно с 4 панелями:
    1. Спортсмены (выбор и добавление)
    2. Планы тренировок
    3. Тренировочные сессии
    4. Метрики прогресса
  • Electron main process (main.js) + preload (preload.js)
  • Renderer на HTML/CSS/JavaScript (src/renderer)
  • API-клиент (src/api/client.js)

API base URL определяется из:

  1. PROFORMA_API_URL
  2. fallback http://localhost:8080/api

Запуск

Backend

cd backend-proforma
./mvnw spring-boot:run

Frontend

cd frontend
npm install
npm start

Дополнительно использовано

  • Browser Fetch API для HTTP-запросов в renderer-процессе
  • Context isolation + preload для безопасной передачи конфигурации API

About

Dekstop приложение для тренера

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors