Сфера: E-commerce (электронная торговля косметикой)
Решаемая задача: Автоматизация процесса торговли косметикой с удобным интерфейсом для пользователей и эффективным управлением для менеджеров.
Проект представляет собой MVP платформы с реализованным бэкендом на Django REST Framework и фронтендом на React (Vite). Система поддерживает гостевые и пользовательские корзины, JWT-аутентификацию, управление заказами и адресами доставки.
Анализ и проектирование:
- Проведен анализ предметной области (E-commerce косметика) и бизнес-процессов в IDEF0
- Составлены функциональные (Use Case) и нефункциональные требования
- Разработаны UML-диаграммы: классов, активности, последовательности, компонентов, развертывания
- Спроектированы логическая и даталогическая модели БД (PostgreSQL)
- Разработана OpenAPI 3.0 спецификация для всех эндпоинтов
Разработка бэкенда (Python/Django/DRF):
- Реализованы 4 приложения: users (JWT-аутентификация, профиль, адреса), catalog (товары, категории, бренды), cart (сессионная + пользовательская корзина с мержем), orders (заказы, статусы, админ-панель)
- Реализована RBAC (пользователь/менеджер/admin)
- Настроены CORS, пагинация, хранение секретов через .env
Разработка фронтенда (React/Vite):
- Реализован пользовательский интерфейс: каталог, карточка товара, корзина, оформление заказа, профиль, авторизация/регистрация
- Настроены маршрутизация и защищенные маршруты, интеграция с API через axios
Тестирование и документация:
- Написаны HTTP-тесты для всех приложений
- Составлена полная документация: анализ, история создания, скриншоты
- Выполнена контейнеризация (Docker, Docker Compose)
Стек технологий:
- Проектирование: Ramus, draw.io, IBM Rational Software Architect, Oracle DataModeler, PlantUML
- Backend: Python 3, Django, Django REST Framework, JWT, SQLite
- Frontend: React, Vite, ИИ
- DevOps: Docker, Docker Compose, Git
- BFF (Backend for Frontend) — единый API для веб и мобильных клиентов
- REST API с JSON-пакетами — изоляция логики отображения от бизнес-логики
- Ленивая корзина — создается только при первом добавлении товара
- Гостевая корзина — хранится в сессии, после авторизации сливается с пользовательской
- Мягкое удаление для адресов доставки
- RBAC — разделение прав для пользователей и менеджеров
Все артефакты системного анализа собраны в документе:
- Бизнес-процессы — диаграммы IDEF0
- Функциональные требования — Use Case диаграмма и спецификация
- Нефункциональные требования — производительность, безопасность, совместимость
- Диаграммы UML:
- API Эндпоинты — полная спецификация всех компонентов
- OpenAPI спецификация (schema.yaml) — автогенерируемая документация всех эндпоинтов
Подробный чек-лист реализации доступен в Истории создания — от инициализации проекта до Docker-сборки.
Экраны системы доступны в Скринах работы:
slay/
├── backend/
│ ├── cart/ # Приложение корзины
│ ├── catalog/ # Приложение каталога
│ ├── orders/ # Приложение заказов
│ ├── users/ # Приложение пользователей
│ ├── slay_api/ # Основные настройки проекта
│ ├── Dockerfile
│ ├── requirements.txt
│ ├── schema.yaml # OpenAPI спецификация
│ └── data.json # Фикстуры для БД
├── frontend/
│ ├── src/ # React компоненты
│ ├── Dockerfile
│ └── package.json
├── docs/
│ ├── attach/ # Изображения диаграмм и скриншоты
│ ├── plantuml_diagrams/ # Исходники диаграмм
│ ├── README.md # Основной файл документации проекта
│ ├── История создания.md
│ └── Скрины работы.md
├── docker-compose.yml
└── README.md
# Собрать и запустить
docker-compose up --build
# Остановить
docker-compose downДоступные адреса:
- Фронтенд: http://localhost:5173
- Бэкенд API: http://localhost:8000/api/
- Админ-панель: http://localhost:8000/admin
Тестовые пользователи (из фикстур):
- Superuser: maria@ya.ru / adminnn123
- Менеджер: bakugo@ya.ru / loxlelik1
- Реализация фильтрации и поиска товаров
- Интеграция с платежными системами
- Добавление системы отзывов и рейтингов
- Реализация push-уведомлений о статусе заказа
- Поддержка мобильных устройств (iOS 15+, Android 10+)