# Отчёт по проекту FitnessCenter

Подготовлено на основе технической документации проекта, работающего локального экземпляра сайта и шаблона оформления `example.docx`.

Город: Ростов-на-Дону  
Дата подготовки отчёта: 16.03.2026

## Введение

Проект **FitnessCenter** представляет собой веб-приложение фитнес-клуба с лендингом, регистрацией пользователей, авторизацией, личным кабинетом и оформлением абонементов. Система ориентирована на быстрый запуск в учебной или демонстрационной среде и построена по модели серверного рендеринга HTML без отдельного JSON API.

Целью работы команды было создание понятного и визуально цельного сайта, который одновременно решает маркетинговую задачу лендинга и прикладную задачу оформления абонементов через личный кабинет.

## Краткое описание системы

В ходе анализа технической документации и интерфейса были выделены следующие ключевые возможности проекта:

- главная страница с презентацией клуба, тарифов, тренеров и филиалов;
- регистрация нового пользователя с проверкой телефона в формате `+7XXXXXXXXXX`;
- вход в систему через форму авторизации;
- личный кабинет с отображением активного абонемента и истории покупок;
- оформление нового абонемента из личного кабинета;
- административное управление данными через стандартную Django-админку;
- запуск в Docker-контуре с публикацией сервиса на порту `1337`.

## Технологический стек и архитектура

По технической документации проект реализован на следующем стеке:

- backend: `Python 3.13`, `Django 5.1.4`;
- frontend: `Bootstrap 5.3`, кастомные стили в `static/css/main.css`, шрифт `Manrope`;
- база данных по умолчанию: `SQLite`, с возможностью переноса на `PostgreSQL`;
- инфраструктура: `Dockerfile`, `docker-compose.yml`, `entrypoint.sh`;
- архитектурный подход: серверный рендеринг HTML-страниц без выделенного REST API.

Ключевые структурные элементы проекта:

- `gymclub/` содержит настройки Django и верхнеуровневую маршрутизацию;
- `club/` реализует модели, формы, views и бизнес-логику абонементов;
- `templates/` содержит шаблоны страниц `home`, `register`, `login`, `dashboard`;
- `static/` и `staticfiles/` отвечают за визуальную часть проекта;
- маршруты регистрации, входа, выхода и покупки абонементов сосредоточены в `club/urls.py`.

## Реализованный функционал

В итоговой версии системы реализованы следующие пользовательские сценарии:

### 1. Лендинг фитнес-клуба

Главная страница знакомит пользователя с клубом, доступными тарифами, тренерами и адресами филиалов. Интерфейс выполнен в тёмной цветовой схеме с акцентным зелёным цветом, что делает сайт визуально единым и современным.

### 2. Регистрация и авторизация

Пользователь может создать аккаунт, указав логин, имя, фамилию, телефон, email и пароль. После регистрации доступны вход в систему и переход в личный кабинет. Для телефона реализована нормализация и валидация, что снижает количество некорректных записей.

### 3. Личный кабинет и покупка абонементов

После авторизации пользователь видит активный абонемент, историю покупок и перечень доступных тарифов. Покупка выполняется через серверный сценарий, который рассчитывает дату окончания абонемента автоматически.

### 4. Эксплуатационная готовность

Проект запускается в контейнере Docker, а настройки окружения вынесены в переменные. Это упрощает перенос между стендами и делает демонстрацию предсказуемой.

## Команда проекта и распределение работ

Оценка трудозатрат ниже является проектной и отражает предполагаемый вклад участников на протяжении основного этапа разработки с **10.02.2026 по 14.03.2026**.

- **Комин Архип**  
  Роль: тимлид, инфраструктура, DevOps и backend.  
  Оценка занятости: **64 часа**.  
  Основные задачи: постановка архитектуры проекта, подготовка Docker-контура, настройка переменных окружения, организация структуры Django-приложения, реализация моделей `MembershipPlan`, `Profile`, `Subscription`, настройка маршрутов и контроль интеграции backend-части с шаблонами.

- **Токмачев Егор**  
  Роль: full-stack разработчик.  
  Оценка занятости: **58 часов**.  
  Основные задачи: реализация форм регистрации и входа, связка пользовательских сценариев с бизнес-логикой, доработка личного кабинета, интеграция покупки абонементов, отладка переходов между страницами и проверка корректности пользовательских сообщений.

- **Стрельников Вадим**  
  Роль: frontend разработчик, дизайнер.  
  Оценка занятости: **49 часов**.  
  Основные задачи: разработка визуальной концепции сайта, вёрстка главной страницы и экранов авторизации, настройка тёмной темы, адаптация карточек тарифов и тренеров, подбор визуальных акцентов, доработка читаемости и согласованности интерфейса на разных экранах.

- **Акуев Магомед**  
  Роль: тестировщик, дизайнер.  
  Оценка занятости: **37 часов**.  
  Основные задачи: ручное тестирование регистрации, входа и кабинета, проверка сценариев покупки абонемента, поиск визуальных и функциональных дефектов, проверка текстов форм и состояний ошибок, участие в финальной полировке элементов интерфейса.

**Суммарная оценка трудозатрат команды: 208 часов.**

## Итоговые экраны системы

Ниже приведены скриншоты реально работающего локального экземпляра проекта.

### Главная страница

![Главная страница проекта](home.png)

На главной странице представлены ключевое позиционирование клуба, тарифы, карточки тренеров, адреса филиалов и информационные блоки.

### Страница входа

![Страница входа](login.png)

Экран входа минималистичен и сфокусирован на быстрой авторизации пользователя.

### Страница регистрации

![Страница регистрации](register.png)

Форма регистрации включает обязательные пользовательские поля и согласие на обработку персональных данных.

### Личный кабинет пользователя

![Личный кабинет пользователя](dashboard.png)

В кабинете отображаются профиль пользователя, срок действия активного абонемента, доступные тарифы и история покупок.

## Вывод

По результатам анализа документации и проверки интерфейса можно сделать вывод, что проект **FitnessCenter** доведён до работоспособного состояния и решает основные задачи учебного веб-продукта: демонстрацию услуг фитнес-клуба, регистрацию пользователей, авторизацию и оформление абонементов. Архитектура проекта остаётся достаточно простой для сопровождения, а Docker-окружение делает запуск и демонстрацию удобными.

Отдельным преимуществом проекта является согласованная работа команды: backend, frontend, дизайн и тестирование разделены по ролям, но при этом объединены в единый пользовательский сценарий. Это делает результат целостным как с технической, так и с визуальной точки зрения.

## Использованные материалы и литература

### Локальные материалы проекта

- техническая документация проекта: `../DOCS_RU.md`;
- локально запущенный сайт: `http://localhost:1337`;
- шаблон оформления и структуры отчёта: `example.docx`.

### Подобранная литература

1. Django Software Foundation. **Django documentation** [Электронный ресурс]. URL: `https://docs.djangoproject.com/en/5.1/` (дата обращения: 16.03.2026).
2. Bootstrap Team. **Bootstrap v5.3 Documentation** [Электронный ресурс]. URL: `https://getbootstrap.com/docs/5.3/` (дата обращения: 16.03.2026).
3. Fowler M. **Patterns of Enterprise Application Architecture**. Boston: Addison-Wesley, 2002.
4. Krug S. **Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability**. 3rd ed. Berkeley: New Riders, 2014.
5. Pressman R. S., Maxim B. R. **Software Engineering: A Practitioner's Approach**. 9th ed. New York: McGraw-Hill, 2019.
6. Gamma E., Helm R., Johnson R., Vlissides J. **Design Patterns: Elements of Reusable Object-Oriented Software**. Boston: Addison-Wesley, 1994.
7. Sommerville I. **Software Engineering**. 10th ed. Boston: Pearson, 2015.
8. Нильсен Я. **Веб-дизайн: удобство использования веб-сайтов**. М.: Вильямс, 2010.
9. Купер А., Рейман Р., Кронин Д., Носсел К. **Интерфейс. Основы проектирования взаимодействия**. 4-е изд. СПб.: Питер, 2017.
10. Макконнелл С. **Совершенный код**. 2-е изд. СПб.: Питер, 2019.
