143 lines
13 KiB
Markdown
143 lines
13 KiB
Markdown
# Отчёт по проекту 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 часов.**
|
||
|
||
## Итоговые экраны системы
|
||
|
||
Ниже приведены скриншоты реально работающего локального экземпляра проекта.
|
||
|
||
### Главная страница
|
||
|
||

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

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

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

|
||
|
||
В кабинете отображаются профиль пользователя, срок действия активного абонемента, доступные тарифы и история покупок.
|
||
|
||
## Вывод
|
||
|
||
По результатам анализа документации и проверки интерфейса можно сделать вывод, что проект **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.
|