webprogr.ru Новости

RSS

{{toodo.preview}}

...
{{toodo.name}}

{{toodo.preview}}

далее..

{{toodo.preview}}

{{toodo.name}}

{{toodo.preview}}

смотреть..

toodo.name

{{toodo.preview}}

{{toodo.name}}

{{toodo.preview}}

перейти...

{{toodo.preview}}

...
{{toodo.name}}

{{toodo.preview}}

далее..

{{toodo.preview}}

{{toodo.name}}

{{toodo.preview}}

смотреть..

toodo.name

{{toodo.preview}}

{{toodo.name}}

{{toodo.preview}}

перейти...


Последние новости

Лабораторная работа XII. Итоговый проект BizFlow: полнофункциональное бизнес-приложение с ИИ-агентной разработкой

Лабораторная работа 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

Рейтинг@Mail.ru