docs: актуализация под текущее состояние (Bootstrap вместо htmx, RestClient, интерцепторы, контроллеры, публикация по студентам, watch-опрос, автосейв без перезагрузки)

This commit is contained in:
2026-10-13 15:59:37 +03:00
parent 4fa400ddb1
commit b1f00fd776
7 changed files with 152 additions and 45 deletions

View File

@@ -182,6 +182,7 @@ classDiagram
class LabController
class ContentPublicController
class ContentAdminController
class ContentOrderController
class LabService {
+importFromFile(String, ByteArray) LabImportResult
+list() List~LabSummary~
@@ -234,6 +235,7 @@ classDiagram
LabController --> LabService
ContentPublicController --> ContentService
ContentAdminController --> ContentService
ContentOrderController --> ContentService
LabService --> LabRepository
LabService --> LabLevelRepository
LabService --> VariantRepository
@@ -274,6 +276,12 @@ classDiagram
+UUID labId
+Instant publishedAt
}
class GradePublicationStudent {
+UUID groupId
+UUID labId
+UUID studentId
+Instant publishedAt
}
class GradeComment {
+UUID id
+UUID studentId
@@ -313,6 +321,8 @@ classDiagram
ready
}
GradePublication "1" --> "*" GradePublicationStudent : легаси «вся группа» и персональные
Note for GradePublicationStudent : персональная публикация оценки/комментариев студенту
CommentTemplate "1" --> "*" GradeComment : подсказки (text/tone)
GradeComment "*" --> "1" LabGrade : поясняет оценку
LabGrade "1" --> "0..1" GradePublication : видна студенту после публикации
@@ -324,8 +334,11 @@ classDiagram
```mermaid
classDiagram
class ProgressController
class SubmissionController
class DefenseAdminController
class DefenseMyController
class StudentPurgeController
class GroupLabDataController
class ProgressService {
+setLevel(LevelAssignmentRequest, String) LevelAssignmentResponse
+getLevel(UUID, UUID) StudentLabLevel
@@ -334,7 +347,7 @@ classDiagram
+assignWithInfo(AssignRequest, String) VariantAssignmentResponse
+assignmentsForLabEnriched(UUID, String) List~VariantAssignmentResponse~
+setGrade(GradeSetRequest) GradeResponse
+suggestComments(String) List~CommentOut~
+suggestComments(String) List~CommentSuggestion~
+myComments(UUID) List~GradeComment~
+getStudentAssignment(UUID, UUID, String) MeAssignmentResponse
}
@@ -356,10 +369,12 @@ classDiagram
+resetByStudentLab(UUID, UUID)
}
class GradePublicationService {
+setPublished(UUID, UUID, Boolean)
+isPublished(UUID, UUID) Boolean
+publishedLabIdsForGroup(UUID) List~String~
+publishedGroupIdsForLab(UUID) List~String~
+state(UUID, UUID) PublicationState
+setStudents(UUID, UUID, List~UUID~)
+isPublished(UUID, UUID, UUID) Boolean
}
class StudentPurgeService {
+purge(UUID)
}
class AcademicClient {
+getLab(String, String) LabInfo
@@ -383,12 +398,17 @@ classDiagram
class SubmissionRepository
class DefenseSessionRepository
class GradePublicationRepository
class GradePublicationStudentRepository
ProgressController --> ProgressService
SubmissionController --> SubmissionService
DefenseAdminController --> DefenseService
DefenseMyController --> DefenseService
StudentPurgeController --> StudentPurgeService
GroupLabDataController --> ProgressService
ProgressController --> SubmissionService
ProgressController --> GradePublicationService
StudentPurgeService --> SubmissionStorage
ProgressService --> VariantAssignmentRepository
ProgressService --> StudentLabLevelRepository
ProgressService --> LabGradeRepository
@@ -401,6 +421,7 @@ classDiagram
SubmissionService --> AcademicClient
DefenseService --> DefenseSessionRepository
GradePublicationService --> GradePublicationRepository
GradePublicationService --> GradePublicationStudentRepository
```
## 4.web (BFF)
@@ -410,13 +431,29 @@ classDiagram
class AuthPageController
class LearnController
class StudentController
class AdminController
class AdminGroupController
class AdminLabController
class AdminStudentController
class AdminDistributeController
class AdminDefenseController
class AdminUsersController
class ContentAdminController
class ContentAssetProxy
class ApiClient {
+login(String, String) AuthResponseDto
+contentTree(String, Boolean) ContentTreeNodeDto
+contentArticle(String, String, String, String, Boolean) ContentArticleDto
+setContentPublished(String, String, String, Boolean)
+suggestComments(String, String) List~CommentSuggestionDto~
+deleteCommentTemplate(String, String)
+publicationState(String, String, String) PublicationStateDto
+setPublication(String, PublicationSetPayload)
+purgeStudent(String, String)
+searchStudents(String, String) List~AdminUserDto~
+deleteStudent(String, String) DeleteUserDto
+defenseWatch(String, List~String~) List~DefenseDto~
+myDefenseStatus(String, String) Map
+groupLabData(String, String) List~Map~
+groupDetail(String, String) GroupDetailDto
+distribute(String, DistributeRequestPayload) DistributeResultDto
+setGrade(String, String, String, String, String) GradeResponseDto
@@ -437,6 +474,7 @@ classDiagram
+String USER
}
class CsrfInterceptor
class NoCachePageInterceptor
class AuthInterceptor
class AdminInterceptor
class MustChangePasswordInterceptor
@@ -447,8 +485,14 @@ classDiagram
AuthPageController --> ApiClient
LearnController --> ApiClient
StudentController --> ApiClient
AdminController --> ApiClient
AdminGroupController --> ApiClient
AdminLabController --> ApiClient
AdminStudentController --> ApiClient
AdminDistributeController --> ApiClient
AdminDefenseController --> ApiClient
AdminUsersController --> ApiClient
ContentAdminController --> ApiClient
ContentAssetProxy --> ApiClient
LearnController --> MarkdownRenderer
AuthPageController --> SessionUser
AuthPageController --> SessionKeys
@@ -544,7 +588,7 @@ erDiagram
}
CHAPTERS {
uuid id PK
varchar title UK
varchar title
varchar slug UK
int position
boolean published
@@ -598,6 +642,12 @@ erDiagram
uuid lab_id PK
timestamptz published_at
}
GRADE_PUBLICATION_STUDENTS {
uuid group_id PK
uuid lab_id PK
uuid student_id PK
timestamptz published_at
}
GRADE_COMMENTS {
uuid id PK
uuid student_id
@@ -636,6 +686,7 @@ erDiagram
STUDENT_LAB_LEVELS }o--|| LABS : "lab_id (не FK)"
LAB_GRADES }o--|| LABS : "lab_id (не FK)"
GRADE_PUBLICATIONS }o--|| LABS : "lab_id (не FK)"
GRADE_PUBLICATION_STUDENTS }o--|| LABS : "lab_id (не FK)"
GRADE_COMMENTS }o--|| LABS : "lab_id (не FK)"
SUBMISSIONS }o--|| LABS : "lab_id (не FK)"
DEFENSE_SESSIONS }o--|| LABS : "lab_id (не FK)"