How jackielinn/mhfl-vs works
MHFL-VS is a federated-learning visualization and simulation platform. Users manage accounts and datasets, configure training tasks, run federated algorithms, and monitor round/client results live; they can also explore recommendations, platform health, and an RAG assistant. The README documents the Python → Redis → Spring Boot → MySQL/WebSocket training pipeline. Some subsystem links rely on README capabilities and the file tree because their implementations were not sampled.
Main entry points: main.ts Vue application · TrainingMessageListener.java Training messages · main.py FastAPI routes · TaskService.java Task orchestration
Components 24
Vue user interface
- Vue application
mhfl-ui/src/main.ts - Task views
mhfl-ui/src/views/Task/index.vue - Training views
mhfl-ui/src/views/TaskDetail/index.vue - Task API client
mhfl-ui/src/api/task.ts - Dashboard views
mhfl-ui/src/views/Dashboard/index.vue - Recommendation views
mhfl-ui/src/views/Recommended/index.vue - Assistant views
mhfl-ui/src/views/Assistant/index.vue - Assistant API client
mhfl-ui/src/api/assistant.ts
Spring application
- Task endpoints
mhfl-server/src/main/java/ynu/jackielinn/server/controller/TaskController.java - Task orchestration
mhfl-server/src/main/java/ynu/jackielinn/server/service/TaskService.java - Account and access
mhfl-server/src/main/java/ynu/jackielinn/server/service/AccountService.java - Dashboard services
mhfl-server/src/main/java/ynu/jackielinn/server/service/DashboardService.java - Recommendations
mhfl-server/src/main/java/ynu/jackielinn/server/service/RecommendService.java - Assistant sessions
mhfl-server/src/main/java/ynu/jackielinn/server/service/AssistantService.java - Training messages
mhfl-server/src/main/java/ynu/jackielinn/server/listener/TrainingMessageListener.java - Task WebSocket
mhfl-server/src/main/java/ynu/jackielinn/server/websocket/TaskWebSocketHandler.java
Federated learning service
- FastAPI routes
mhfl-algo/main.py - Training orchestration
mhfl-algo/services/training_service.py - Federated algorithms
mhfl-algo/fl_core/algorithms - RAG assistant
mhfl-algo/assistant/rag.py
Shared infrastructure
- MySQL
- Redis
- RabbitMQ
Other components
- Platform user
Connections 26
- Platform user → Vue application: uses
- Vue application → Task views: routes to
- Vue application → Dashboard views: routes to
- Vue application → Recommendation views: routes to
- Vue application → Assistant views: routes to
- Task views → Task API client: requests
- Training views → Task API client: requests
- Task API client → Task endpoints: HTTP requests
- Task endpoints → Task orchestration: delegates
- Task orchestration → FastAPI routes: starts or stops
- FastAPI routes → Training orchestration: dispatches
- Training orchestration → Federated algorithms: runs
- Training orchestration → Redis: publishes updates
- Redis → Training messages: delivers updates
- Training messages → MySQL: persists results
- Training messages → Task WebSocket: pushes updates
- Task WebSocket → Training views: streams updates
- Task orchestration → MySQL: reads and writes
- Dashboard views → Dashboard services: requests
- Recommendation views → Recommendations: requests
- Assistant views → Assistant API client: requests
- Assistant API client → Assistant sessions: HTTP and SSE
- Assistant sessions → FastAPI routes: proxies chat
- FastAPI routes → RAG assistant: dispatches chat
- Assistant sessions → MySQL: stores conversations
- Training messages → RabbitMQ: may consume messages