Нужно написать бэкенд часть приложения, где пользователь может зарегистрироваться, войти в аккаунт, составлять планы тренировок и отслеживать прогресс.
Система должна уметь работать с JWT-аутентификацией, поддерживать создание, редактирование и удаление тренировок (CRUD), а также формировать отчёты по прошлым занятиям.
Функционал приложения
Авторизация и аутентификация
- Регистрация, вход и выход из аккаунта
- Использовать JWT-токены для авторизации
- Пользователь должен видеть и изменять только свои данные
Упражнения
Нужно заранее подготовить список упражнений (по типу справочника):
- У каждого упражнения есть название, описание и категория — например, кардио, силовые, растяжка, или по группам мышц (спина, грудь, ноги)
- Упражнения затем используются при создании тренировочных планов
Тренировки
Пользователь должен иметь возможность:
- Создавать тренировку, в которую входят несколько упражнений (с количеством подходов, повторений и весом)
- Редактировать или удалять тренировку
- Назначать дату и время занятия
- Смотреть список запланированных и прошедших тренировок
- Получать отчёт о прогрессе за выбранный период
Технические детали
- Используйте реляционную базу данных (например, PostgreSQL или SQLite)
- Реализуйте REST API
- Все запросы к личным тренировкам должны быть защищены JWT-токенами
- Добавьте минимальные тесты для проверки логики
Этот проект — отличный способ прокачать навыки разработки настоящего бэкенда: вы научитесь проектировать структуру базы данных, реализовывать авторизацию пользователей, создавать REST-эндпоинты, писать тесты и документировать API так, как это делается в реальных продакшн-проектах.
Пример OpenAPI спецификации (обновите страницу для отображения):