How yuranium/javalab works
JavaLab is a Java-learning platform: learners browse tasks, work through a task profile, submit Java code, and receive test feedback; accounts, progress tracking, and AI chat support that work. The repository is split into a SolidJS client and Java services for tasks, execution, identity, progress, AI, and notifications, with Kafka event exchange. The sampled code confirms task creation, account confirmation, code compilation/testing, and chat-memory behavior; it does not establish every cross-service route, so uncertain wiring is omitted.
Main entry points: TaskCodeEditor.jsx Task workspace · App.jsx SolidJS app · TaskService.java Task management · ExecutionService.java Execution service
Components 30
Learning client
- SolidJS app
java-lab-solidjs/src/App.jsx - Task workspace
java-lab-solidjs/src/components/Tasks/TaskProfile/TaskCodeEditor/TaskCodeEditor.jsx - Profile and progress
java-lab-solidjs/src/pages/ProgressPage.jsx
Task and execution
- Task API
TaskService/src/main/java/com/javalab/taskservice/controller/TaskController.java - Task management
TaskService/src/main/java/com/javalab/taskservice/service/TaskService.java - Task data access
TaskService/src/main/java/com/javalab/taskservice/dao/TaskDao.java - Execution service
ExecutionService/src/main/java/com/javalab/executionservice/service/ExecutionService.java - In-memory compiler
ExecutionService/src/main/java/com/javalab/executionservice/util/InMemoryCompiler.java - Test runner
ExecutionService/src/main/java/com/javalab/executionservice/service/TestCaseService.java - Execution updates
ExecutionService/src/main/java/com/javalab/executionservice/service/ExecutionWebSocketHandler.java - Task event publisher
TaskService/src/main/java/com/javalab/taskservice/service/kafka/KafkaSender.java - Execution consumer
ExecutionService/src/main/java/com/javalab/executionservice/service/kafka/KafkaConsumer.java
Identity and messaging
- User API
UserService/src/main/java/com/yuranium/userservice/controller/UserController.java - Authentication
UserService/src/main/java/com/yuranium/userservice/service/AuthService.java - User persistence
UserService/src/main/java/com/yuranium/userservice/repository/UserRepository.java - Notifications
NotificationService/src/main/java/com/wenn/notificationservice/service/NotificationDispatcher.java - Email delivery
NotificationService/src/main/java/com/wenn/notificationservice/service/EmailService.java - User event consumer
UserService/src/main/java/com/yuranium/userservice/service/kafka/KafkaConsumer.java - Notification consumer
NotificationService/src/main/java/com/wenn/notificationservice/service/kafka/KafkaConsumer.java
Progress and AI
- Progress tracking
ProgressService/src/main/java/com/wenn/progressservice/service/ProgressService.java - Achievements
ProgressService/src/main/java/com/wenn/progressservice/service/AchievementService.java - AI chat API
AiService/src/main/java/com/wenn/aiservice/controller/AiController.java - AI chat service
AiService/src/main/java/com/wenn/aiservice/service/AiService.java - Chat history
AiService/src/main/java/com/wenn/aiservice/service/AiChatService.java - Progress consumer
ProgressService/src/main/java/com/wenn/progressservice/service/kafka/KafkaConsumer.java
Event backbone
- Kafka
Other components
- Learner
- Keycloak
- Mail provider
- AI model provider
Connections 30
- Learner → SolidJS app: uses
- SolidJS app → Task workspace: opens task
- SolidJS app → Profile and progress: views progress
- Task workspace → Task API: requests task
- Task API → Task management: dispatches
- Task management → Task data access: reads and writes
- Task management → Task event publisher: publishes creation
- Task event publisher → Kafka: sends event
- Kafka → Notification consumer: delivers event
- Notification consumer → Notifications: dispatches
- Notifications → Email delivery: sends email
- Email delivery → Mail provider: delivers
- Kafka → User event consumer: delivers events
- User event consumer → Authentication: dispatches
- Authentication → User persistence: reads and writes
- Authentication → Keycloak: updates status
- Kafka → Progress consumer: delivers events
- Progress consumer → Progress tracking: updates activity
- Progress tracking → Achievements: checks milestones
- Profile and progress → Progress tracking: requests progress
- Task workspace → AI chat API: requests chat
- AI chat API → AI chat service: dispatches
- AI chat service → AI model provider: requests completion
- AI chat service → Chat history: loads and saves history
- Kafka → Execution consumer: delivers requests
- Execution consumer → Execution service: dispatches
- Execution service → In-memory compiler: compiles code
- Execution service → Test runner: runs tests
- Test runner → Execution updates: publishes results
- Execution updates → Task workspace: streams feedback