DocParty - это сайт для совместного работы над файлами любого формата.
Проект сделан по архитекнурному принципу MVC.
В разработке проекта использовалась библиотека mediatR, которая освобождает контроллеры от обязанностей и передаёт их обработчикам. Обработчики есть двух типов:
- обработчики запросов - действует по принципу запрос - ответ, получают одни данные от контроллера и возвращают другие
- обработчики уведомлений - действуют по принципу издатель - подписчик, т.е. на один вызов из контроллера могут реагировать сразу несколько обработчиков, в отличии от обработчиков запрос, но при этом обработчики уведомлений, не возвращают контроллеру данные. Это сделано чтобы освободить контроллеру от большого числа ответственности и большого числа зависимостей.
Для создания базы данных использовался фреймворк Entity Framework Core, подход code-first и миграции на основании изменении моделей.
Что необходимо знать о проекте:
- В проекте есть две роли, каждая роль связана с конкретным проектом: а) Creator - создатель проекта, имеет весь доступный функционал для работы с проектом б) Author - приглашенный создателем проекта пользователь, может только создавать новые версии, комментировать, просматривать и скачивать их.
- Для обозначение версии проекта (файла) использовалось именование Snapshot. При создании проекта создается снэпшот инициализации, название которого такое как и у проекта.
- При добавление нового автора в проект, если он не зарегистрирован, его приглашение будет храниться в базе данных, после регистрации он автоматически будет добавлен в проект.