docs: актуализация под текущее состояние (Bootstrap вместо htmx, RestClient, интерцепторы, контроллеры, публикация по студентам, watch-опрос, автосейв без перезагрузки)
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
flowchart LR
|
||||
user["Преподаватель / студент<br/>(браузер)"]
|
||||
nginx["nginx<br/>lms.our-place.ru<br/>TLS, reverse proxy"]
|
||||
web["web BFF<br/>Thymeleaf + htmx<br/>:8090"]
|
||||
web["web BFF<br/>Thymeleaf + Bootstrap<br/>:8090"]
|
||||
gw["gateway<br/>Spring Cloud Gateway<br/>:8080"]
|
||||
id["identity-service<br/>:8081"]
|
||||
ac["academic-service<br/>:8082"]
|
||||
@@ -44,9 +44,9 @@ flowchart LR
|
||||
```mermaid
|
||||
flowchart TB
|
||||
subgraph web["web (BFF, :8090)"]
|
||||
wc["@Controller<br/>AuthPage, Learn, Student, Admin, ContentAdmin"]
|
||||
wi["Interceptor'ы:<br/>Csrf, Auth, Admin, MustChangePassword"]
|
||||
wapi["ApiClient (WebClient)<br/>+ DTO"]
|
||||
wc["@Controller: AuthPage, Learn, Student,<br/>AdminGroup/Lab/Student/Distribute/Defense/Users, ContentAdmin<br/>@RestController: ContentAssetProxy"]
|
||||
wi["Interceptor'ы:<br/>Csrf, NoCachePage, MustChangePassword, Auth, Admin"]
|
||||
wapi["ApiClient (RestClient)<br/>+ DTO"]
|
||||
wmd["MarkdownRenderer<br/>(libs:markdown)"]
|
||||
wc --> wapi
|
||||
wc --> wmd
|
||||
@@ -67,16 +67,16 @@ flowchart TB
|
||||
end
|
||||
|
||||
subgraph ac["academic-service (:8082)"]
|
||||
acc["LabController, ContentPublicController,<br/>ContentAdminController"]
|
||||
acc["LabController, ContentPublicController,<br/>ContentAdminController, ContentOrderController"]
|
||||
acs["LabService, ContentService,<br/>LabImportParser, AssetStorage"]
|
||||
acr["LabRepository, LabLevelRepository, VariantRepository,<br/>SemesterRepository, Content*Repository"]
|
||||
acc --> acs --> acr
|
||||
end
|
||||
|
||||
subgraph pr["progress-service (:8083)"]
|
||||
prc["ProgressController, DefenseAdminController,<br/>DefenseMyController"]
|
||||
prs["ProgressService, SubmissionService,<br/>DefenseService, GradePublicationService"]
|
||||
prr["VariantAssignmentRepository, StudentLabLevelRepository,<br/>LabGradeRepository, GradeCommentRepository,<br/>CommentTemplateRepository, SubmissionRepository,<br/>DefenseSessionRepository, GradePublicationRepository"]
|
||||
prc["ProgressController, SubmissionController, DefenseAdminController,<br/>DefenseMyController, StudentPurgeController, GroupLabDataController"]
|
||||
prs["ProgressService, SubmissionService, DefenseService,<br/>GradePublicationService, StudentPurgeService"]
|
||||
prr["VariantAssignmentRepository, StudentLabLevelRepository,<br/>LabGradeRepository, GradeCommentRepository, CommentTemplateRepository,<br/>SubmissionRepository, DefenseSessionRepository,<br/>GradePublicationRepository, GradePublicationStudentRepository"]
|
||||
prcl["AcademicClient, IdentityClient"]
|
||||
prc --> prs
|
||||
prs --> prr
|
||||
@@ -150,7 +150,8 @@ flowchart TD
|
||||
```mermaid
|
||||
flowchart LR
|
||||
req["HTTP-запрос"] --> csrf["CsrfInterceptor /**<br/>GET: выдаёт token в сессию<br/>POST: сверяет _csrf"]
|
||||
csrf --> must["MustChangePasswordInterceptor /**<br/>(кроме /change-password, /logout, /login, статики)"]
|
||||
csrf --> nocahe["NoCachePageInterceptor /**<br/>(страницы без кэша; /css, /js исключены)"]
|
||||
nocahe --> must["MustChangePasswordInterceptor /**<br/>(кроме /change-password, /logout, /login, статики)"]
|
||||
must --> auth["AuthInterceptor<br/>/admin/**, /student/**, /change-password"]
|
||||
auth --> adm["AdminInterceptor /admin/**"]
|
||||
adm --> ctrl["Контроллер → ApiClient → gateway"]
|
||||
|
||||
Reference in New Issue
Block a user