← обратно към портфолиото
📐 Диаграма на реалния flow, по кода в репото

Как работи порталът

Пътят на един проект — от подаване на документи от клиента до защитено изтегляне на готовите файлове — точно както е имплементирано в контролерите.

Клиент Персонал / система
1

Подава проект с файлове

До 20 файла наведнъж (PDF, DOC/DOCX, XLS/XLSX, PNG/JPG, ZIP), макс. 25 MB всеки. Проектът влиза със статус "подаден".

ProjectController@store
2

Файловете се записват на частен диск

Всеки файл получава случайно генерирано UUID име и се пази извън публично достъпните папки — не съществува URL, който просто да отвори файла.

ProjectFileUploadService::storeOne()
3

Персоналът преглежда и движи статуса

Служебно табло показва всички проекти с филтър по статус.

подаден в прогрес нужна информация завършен
Admin\ProjectController@updateStatus
4

При нужда — клиентът добавя файлове

Ако статусът е "нужна информация", клиентът качва допълнителни документи и проектът автоматично се връща на "подаден".

ProjectController@storeFiles
5

Персоналът качва готовите файлове

Крайните документи се маркират отделно като "deliverables" — различни от входните файлове на клиента.

Admin\ProjectController@storeDeliverables
6

Клиентът изтегля готовите файлове

Всяко изтегляне минава през проверка — собственик на проекта ли е заявителят (или е персонал) — преди файлът изобщо да бъде прочетен от диска.

ProjectFileController@download

Технически детайли