How dancs-kornel/regexpath works
RegExPath is a web-based platform for learning regular expressions and XPath, with structured lessons and teacher-led group assignments. Learners enter through the Angular application, explore sandboxes or lessons, and can submit exercise answers for validation; teachers manage groups and assignments and review progress and statistics. The backend separates HTTP controllers, application use cases/services, domain repositories, and persistence. The README documents several capabilities whose individual frontend files are not in the supplied tree; those branches are represented at their listed backend source paths. Connections are limited where sampled source does not show the caller.
Main entry points: app.routes.ts Feature routes · ExerciseValidationService.java Exercise validation · main.ts Angular app · auth.service.ts Auth client
Components 20
Web client
- Angular app
webapp/src/main.ts - Feature routes
webapp/src/app/app.routes.ts - Auth client
webapp/src/app/core/services/auth.service.ts
Learning features
- XPath evaluator
webapp/src/app/features/xpath-sandbox/services/evaluation-orchestrator.service.ts - Lessons and progress
server/src/main/java/hu/kornel/server/application/usecase/lessons - Exercise validation
server/src/main/java/hu/kornel/server/application/service/ExerciseValidationService.java - XPath validation
server/src/main/java/hu/kornel/server/application/service/XPathValidationService.java - Regex parsing
server/src/main/java/hu/kornel/server/infrastructure/service/regex/RegexParserServiceImpl.java - Saved sandbox content
server/src/main/java/hu/kornel/server/application/usecase/sandbox
Teaching features
- Group management
server/src/main/java/hu/kornel/server/application/usecase/groups - Assignment workflows
server/src/main/java/hu/kornel/server/presentation/controller/AssignmentController.java - Assignment use cases
server/src/main/java/hu/kornel/server/application/usecase/assignments - Progress analytics
server/src/main/java/hu/kornel/server/application/usecase/assignments
Backend services
- Authentication
server/src/main/java/hu/kornel/server/application/service/AuthenticationApplicationService.java - Validation endpoint
server/src/main/java/hu/kornel/server/presentation/controller/ExerciseValidationController.java
Persistence
- PostgreSQL
- Assignment persistence
server/src/main/java/hu/kornel/server/infrastructure/persistence/assignments - Content persistence
server/src/main/java/hu/kornel/server/infrastructure/persistence/sandbox/SandboxContentRepositoryImpl.java
Other components
- Learner
- Teacher
Connections 21
- Learner → Angular app: uses
- Teacher → Angular app: uses
- Angular app → Feature routes: routes
- Feature routes → Auth client: authenticates
- Feature routes → XPath evaluator: opens sandbox
- XPath evaluator → Learner: shows evaluation
- Auth client → Authentication: HTTP requests
- Validation endpoint → Exercise validation: validates answers
- Exercise validation → XPath validation: evaluates XPath
- Exercise validation → Regex parsing: checks regex
- Learner → Lessons and progress: studies lessons
- Learner → Validation endpoint: submits answers
- Teacher → Assignment workflows: manages assignments
- Assignment workflows → Assignment use cases: dispatches
- Assignment use cases → Assignment persistence: reads and writes
- Teacher → Group management: manages groups
- Teacher → Progress analytics: reviews progress
- Learner → Saved sandbox content: saves content
- Saved sandbox content → Content persistence: reads and writes
- Assignment persistence → PostgreSQL: persists in
- Content persistence → PostgreSQL: persists in