How ita-social-projects/oitassist works
OITAssist is a modular monolith for planning and running programming competitions. Its domain spans competition and tour lifecycle management, task authoring and assignment, participant enrollment and submissions, results aggregation, and supporting forums, files, registration, and news. The tree and README establish these capabilities; sampled service contracts clarify several behaviors, including status rules, forum access, file storage, and score aggregation. Some subsystem implementations were not sampled, so the graph leaves their internal wiring unspecified.
Main entry points: RegistrationController.java Registration · CompetitionController.java Competition API · CompetitionServiceImpl.java Competition lifecycle · StageServiceImpl.java Stage management
Components 22
Identity and access
- Registration
src/main/java/com/itasocialacademy/oitassist/auth/controller/RegistrationController.java - Account activation
src/main/java/com/itasocialacademy/oitassist/auth/listener/ActivationAccountListener.java - Two-factor auth
src/main/java/com/itasocialacademy/oitassist/security/service/interfaces/TwoFactorService.java - User profiles
src/main/java/com/itasocialacademy/oitassist/user/service/interfaces/UserService.java
Competition planning
- Competition API
src/main/java/com/itasocialacademy/oitassist/competition/controller/CompetitionController.java - Competition lifecycle
src/main/java/com/itasocialacademy/oitassist/competition/service/CompetitionServiceImpl.java - Stage management
src/main/java/com/itasocialacademy/oitassist/competition/service/StageServiceImpl.java - Tour management
src/main/java/com/itasocialacademy/oitassist/competition/service/TourServiceImpl.java
Contest participation
- Enrollment
src/main/java/com/itasocialacademy/oitassist/participation - Task authoring
src/main/java/com/itasocialacademy/oitassist/task/service/interfaces/TaskService.java - Task assignment
src/main/java/com/itasocialacademy/oitassist/taskassignment/service/interfaces/AssignmentService.java - Submissions
src/main/java/com/itasocialacademy/oitassist/submission/service/interfaces/SubmissionService.java - Participant forum
src/main/java/com/itasocialacademy/oitassist/chat/service/interfaces/ParticipantForumService.java
Files and communication
- File management
src/main/java/com/itasocialacademy/oitassist/filemanager/controller/FileController.java - File service
src/main/java/com/itasocialacademy/oitassist/filemanager/service/FileServiceImpl.java - Storage providers
src/main/java/com/itasocialacademy/oitassist/filemanager/providers/interfaces/StorageProvider.java - SharePoint
src/main/java/com/itasocialacademy/oitassist/filemanager/providers/SharePointStorageProvider.java - News and archiving
src/main/java/com/itasocialacademy/oitassist/news/service/NewsServiceImpl.java
Results and operations
- Results aggregation
src/main/java/com/itasocialacademy/oitassist/evaluation/service/ResultsAggregator.java - Result exports
src/main/java/com/itasocialacademy/oitassist/export/service/ExportServiceImpl.java
Other components
- User
- Application data
Connections 19
- User → Registration: registers
- Registration → Account activation: publishes activation event
- User → Two-factor auth: enrolls or verifies
- User → Competition API: manages competitions
- Competition API → Competition lifecycle: handles lifecycle
- Competition lifecycle → Stage management: organizes stages
- Stage management → Tour management: organizes tours
- User → Task authoring: authors tasks
- User → Task assignment: manages assignments
- User → Enrollment: requests enrollment
- User → Submissions: submits work
- User → Participant forum: asks questions
- User → File management: uploads or retrieves files
- File management → File service: delegates file operations
- File service → Storage providers: transfers file bytes
- Storage providers → SharePoint: optional provider
- User → News and archiving: reads announcements
- User → Results aggregation: views scores
- Results aggregation → Result exports: exports results