siteforglod/!doc/fitnesscenter_report.md
2026-05-19 09:40:26 +03:00

143 lines
13 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Отчёт по проекту 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.