Лабораторная работа 12. Итоговый проект BizFlow: полнофункциональное бизнес-приложение с ИИ-агентной разработкой
Аудиторная работа: 3 ак. ч.
Самостоятельная работа: 4 ак. ч.
Цель: интегрировать все разделы дисциплины в единое законченное бизнес-приложение.
Задание
Доработайте проект bizflow до состояния законченного MVP.
Функциональные модули
Обязательно реализовать:
Аутентификация
Пользователи
Клиенты
Товары
Заказы
Позиции заказа
Медиафайлы
Dashboard
REST API
OpenAPI
Модель данных
Минимум:
User
Customer
Product
SalesOrder
OrderItem
Media
Клиенты
Реализовать:
просмотр;
создание;
изменение;
поиск;
фильтрацию;
историю заказов.
Товары
Реализовать:
просмотр;
создание;
изменение;
активацию/деактивацию;
себестоимость;
цену продажи;
изображение.
Заказы
Реализовать:
создание;
добавление позиций;
перерасчет;
скидки;
изменение статуса;
просмотр;
фильтрацию;
историю.
Статусы
Использовать:
NEW
CONFIRMED
PAID
SHIPPED
COMPLETED
CANCELLED
Расчет заказа
Реализовать:
Subtotal
Discount
Revenue
Cost
Gross Profit
Gross Margin
Использовать:
Gross Profit = Revenue - Cost
и:
Gross Margin = Gross Profit / Revenue × 100%
Предусмотреть случай:
Revenue = 0
Dashboard
Вывести:
выручку за выбранный период;
валовую прибыль;
валовую маржу;
количество заказов;
средний заказ;
количество клиентов;
количество новых клиентов;
топ-5 клиентов;
топ-5 товаров;
заказы по статусам.
Фильтр dashboard
Поддержать:
7 дней
30 дней
90 дней
произвольный период
Управленческое решение
Добавьте страницу:
/management/discount-simulator
Пользователь вводит:
планируемый объем продаж;
текущую цену;
себестоимость;
планируемую скидку.
Система рассчитывает:
выручку;
сумму скидки;
валовую прибыль;
валовую маржу.
Система должна сравнить:
сценарий без скидки;
сценарий со скидкой.
Добавьте расчет минимального роста объема продаж, необходимого для компенсации скидки при сохранении валовой прибыли.
Все вычисления должны находиться в отдельном сервисе:
ProfitabilityService
Создать unit tests для экономических расчетов.
Роли
Использовать:
ROLE_USER
ROLE_SALES
ROLE_MANAGER
ROLE_ADMIN
Авторизация
Проверить права минимум для:
просмотра клиентов;
редактирования товара;
создания заказа;
изменения статуса;
удаления заказа;
управления пользователями;
просмотра управленческой аналитики.
REST API
Обязательно:
GET /api/customers
POST /api/customers
GET /api/products
GET /api/products/{id}
GET /api/orders
GET /api/orders/{id}
POST /api/orders
PATCH /api/orders/{id}/status
OpenAPI
Каждый API endpoint должен быть документирован.
NelmioApiDocBundle позволяет генерировать OpenAPI-описание на основе routes, attributes и моделей приложения. [32]
Медиа
Для Product реализовать:
upload;
thumbnail;
просмотр;
удаление.
Хранилище должно использовать Flysystem. [33]
Тестирование
Минимум:
10 unit tests
10 integration tests
20 functional/API tests
Обязательные группы тестов:
pricing;
profitability;
discounts;
order transitions;
validation;
authentication;
authorization;
CRUD;
API;
uploads.
Symfony штатно разделяет unit, integration и application/functional testing и интегрирует PHPUnit. [4]
ИИ-агентная команда
Работу выполнить как многоагентный цикл.
Создайте роли:
Product Analyst
Software Architect
Backend Developer
Database Engineer
QA Engineer
Security Engineer
DevOps Engineer
Code Reviewer
Product Analyst
Запрос:
Ты — product analyst системы BizFlow.
Прочитай текущий README и существующий код проекта.
Сравни фактическую функциональность с требованиями итоговой лабораторной работы.
Создай gap analysis:
REQUIREMENT
IMPLEMENTED
PARTIALLY IMPLEMENTED
NOT IMPLEMENTED
BLOCKER
Не пиши код.
Software Architect
Запрос:
Ты — software architect.
На основании gap analysis и текущей кодовой базы
предложи минимальный план завершения проекта.
Не перестраивай уже работающую архитектуру без необходимости.
Раздели работу на небольшие независимые задачи.
Для каждой задачи укажи:
файлы;
зависимости;
тесты;
риски.
Database Engineer
Запрос:
Ты — database engineer.
Проверь Doctrine entities, migrations и repository queries.
Особенно проверь:
constraints;
foreign keys;
indexes;
money representation;
historical order price;
N+1;
aggregation queries dashboard.
Не изменяй БД до составления отчета.
Backend Developer
Запрос:
Ты — senior Symfony developer.
Выполняй только одну задачу из утвержденного архитектурного плана за раз.
После каждой задачи:
1. покажи измененные файлы;
2. запусти относящиеся к задаче тесты;
3. исправь ошибки;
4. остановись.
Не вноси несвязанные изменения.
QA Engineer
Запрос:
Ты — QA automation engineer.
Построй requirements-to-tests matrix.
Для каждого обязательного требования итоговой работы
должен существовать хотя бы один способ автоматической проверки
или четкий manual check.
Найди требования без проверки.
После этого создай недостающие PHPUnit functional/unit tests.
Security Engineer
Запрос:
Ты — application security engineer.
Проведи security review итогового проекта.
Обязательно проверь:
SQL injection;
XSS;
CSRF;
authentication;
authorization;
IDOR;
file upload;
mass assignment;
session handling;
error disclosure;
secrets;
API validation;
broken access control.
Для каждой найденной проблемы:
severity;
file;
scenario;
fix;
verification test.
DevOps Engineer
Запрос:
Ты — DevOps engineer.
Проверь готовность проекта к production.
Используй существующий deployment checklist.
Проверь:
Composer;
APP_ENV;
APP_DEBUG;
cache;
migrations;
tests;
secrets;
public directory;
logs;
health endpoint.
Не считай проект готовым, если хотя бы одна blocking check не проходит.
Финальный Code Reviewer
Запрос:
Ты — независимый senior reviewer.
Считай, что этот проект завтра передается другой команде.
Проверь:
структуру;
названия;
типизацию;
SOLID;
контроллеры;
сервисы;
репозитории;
entities;
DTO;
security;
tests;
dead code;
дублирование;
README;
deployment.
Не исправляй автоматически.
Составь финальный список:
BLOCKER
MAJOR
MINOR
После исправления BLOCKER и MAJOR выполни повторное ревью.
Обязательные автоматические проверки
composer validate
composer audit
php bin/console about
php bin/console lint:yaml config
php bin/console lint:twig templates
php bin/console doctrine:schema:validate
php bin/console debug:router
php bin/phpunit
Создать команду полного контроля проекта
В composer.json добавить script:
check
Команда должна запускать максимально возможный набор автоматизированных проверок проекта.
После настройки должно выполняться:
composer check
с кодом возврата:
0
README
Финальный:
README.md
должен содержать:
назначение;
системные требования;
установку;
настройку БД;
миграции;
запуск;
тесты;
учетные записи test environment;
структуру проекта;
API documentation;
deployment;
известные ограничения.
Не размещать в README реальные пароли production-систем.
AI-документация
Создайте:
docs/ai/lab-12.md
docs/ai/final-review.md
final-review.md должен содержать только:
использованные агенты;
основные найденные проблемы;
что было исправлено;
что было отклонено человеком;
результат composer check.
Финальный сценарий демонстрации
Система должна позволять последовательно выполнить:
1. войти как SALES;
2. создать клиента;
3. создать заказ;
4. добавить два товара;
5. применить скидку;
6. рассчитать итог заказа;
7. подтвердить заказ;
8. войти как MANAGER;
9. изменить статус;
10. открыть dashboard;
11. увидеть заказ в показателях;
12. открыть discount simulator;
13. сравнить два экономических сценария;
14. загрузить изображение товара;
15. получить заказ через REST API;
16. открыть OpenAPI documentation;
17. войти как ADMIN;
18. открыть управление пользователями.
Финальные критерии приемки
[ ] приложение устанавливается по README
[ ] миграции выполняются с чистой БД
[ ] имеются клиенты
[ ] имеются товары
[ ] имеются заказы
[ ] работают формы
[ ] работает Doctrine
[ ] работает Twig
[ ] работает Validator
[ ] работает authentication
[ ] работает authorization
[ ] используются sessions
[ ] работает DI
[ ] бизнес-логика находится в сервисах
[ ] работает REST API
[ ] работает FOSRestBundle
[ ] работает OpenAPI
[ ] работает NelmioApiDocBundle
[ ] работает Flysystem
[ ] работает upload
[ ] создаются thumbnails
[ ] имеется dashboard
[ ] реализованы экономические показатели
[ ] работает discount simulator
[ ] реализованы unit tests
[ ] реализованы integration tests
[ ] реализованы functional tests
[ ] composer audit выполнен
[ ] secrets отсутствуют в Git
[ ] production deployment подготовлен
[ ] composer check завершается успешно
[ ] выполнено независимое AI security review
[ ] выполнено независимое AI code review
[ ] имеется полный AI log
Создать финальный тег:
git tag lab-12
