How xinyu-li/flora works
FLoRA is a research-oriented learning analytics backend: it captures learning activity, derives self-regulation signals, and supports learners with personalized assistance. Its product capabilities also include writing annotations, course/background-document search, teacher and administrator management, and data export. The graph combines README-described capabilities with sampled controller, processing, storage, and search behavior; unsampled subsystem wiring is intentionally left out.
Main entry points: HomeController.java Learning API · TraceDataController.java Trace API · DataManagementController.java Management API · ExportExcelFileStorageService.java Analytics export
Components 23
Learning support
- Learning API
src/main/java/com/monash/flora_backend/controller/HomeController.java - Chat API
src/main/java/com/monash/flora_backend/controller/ChatController.java - Voice requests
src/main/java/com/monash/flora_backend/controller/VoiceRequestController.java - Writing annotations
src/main/java/com/monash/flora_backend/dao/entity/Annotation.java - Personalized scaffolds
src/main/java/com/monash/flora_backend/service/IGptScaffoldService.java - Document search
src/main/java/com/monash/flora_backend/service/impl/BackgroundDocService.java - Course documents API
src/main/java/com/monash/flora_backend/controller/HomeController.java
Trace analytics
- Trace API
src/main/java/com/monash/flora_backend/controller/TraceDataController.java - SRL processing
src/main/java/com/monash/flora_backend/service_func/ActionAndProcessService.java - Trace records
src/main/java/com/monash/flora_backend/dao/entity/TraceData.java
Course operations
- Teacher tools
src/main/java/com/monash/flora_backend/controller/TeacherEndController.java - Management API
src/main/java/com/monash/flora_backend/controller/manage/DataManagementController.java - Moodle data
src/main/java/com/monash/flora_backend/dao/entity/MdlCourse.java - Analytics export
src/main/java/com/monash/flora_backend/service_func/ExportExcelFileStorageService.java
Persistence and integrations
- File storage
src/main/java/com/monash/flora_backend/service_func/FileStorageService.java - Application database
src/main/java/com/monash/flora_backend/dao/mapper - Redis cache
src/main/java/com/monash/flora_backend/config/cache/MyRedisCacheManager.java - JWT security
src/main/java/com/monash/flora_backend/config/filter/JwtAuthenticationFilter.java
Other components
- Learner
- Teacher
- Administrator
- LLM service
- Elasticsearch
Connections 24
- Learner → Learning API: requests support
- Learner → Chat API: sends messages
- Learner → Voice requests: submits speech
- Teacher → Teacher tools: uses tools
- Administrator → Management API: manages data
- Learning API → Personalized scaffolds: requests scaffold
- Learning API → LLM service: requests generation
- Chat API → LLM service: sends prompts
- Learning API → Document search: saves documents
- Learning API → Writing annotations: saves annotations
- Document search → Elasticsearch: indexes and searches
- Trace API → Trace records: handles trace data
- SRL processing → Trace records: updates process labels
- Teacher tools → Trace API: views trace data
- Management API → Analytics export: starts exports
- Analytics export → File storage: writes archives
- Analytics export → Application database: exports records
- Learning API → Application database: reads and writes
- Trace API → Application database: persists traces
- Management API → Moodle data: manages course data
- Learning API → Redis cache: caches scaffold status
- Learner → JWT security: authenticates
- Teacher → JWT security: authenticates
- Administrator → JWT security: authenticates