A small digital learning platform and the support desk behind it. Every error carries an error code and a request ID; support analyses incidents with structured logs, read-only SQL diagnostics and a knowledge base, then resolves them or escalates to Hosting or Development.
About six minutes: you follow one incident from the learner's error page to the resolved ticket.
KWM-HY-201. Note the error code and request ID.group mismatch.All data is sample data and resets when the server restarts.
Built around the daily work of an incident specialist for e-learning software.
| Skill | In the project |
|---|---|
| Java | Spring Boot 3 on Java 21: services, JDBC repositories, controllers, central error handling; 43 JUnit and MockMvc tests |
| SQL | Schema with constraints and indexes, plain SQL repositories, six parameterised read-only diagnostic queries |
| XML | Course package importer with a validate-only dry run: encoding, well-formedness, required fields, references; DOCTYPE blocked against XXE |
| HTML / CSS | Server-rendered pages (Thymeleaf), responsive layout, lesson HTML reduced to a safe allowlist |
| Log and error analysis | logfmt logs with request ID, error code, owner team, path, status and duration; error groups, search, request trails |
| Incident handling | Support dashboard, impact × urgency priority, first-response SLA, filters, internal notes vs. replies to the customer, workflow rules, escalation with evidence, Jira CSV export |
| Knowledge base | One article per error code: symptom, cause, how to check, workaround, when to escalate |






Two code bugs were planted on purpose in the first release and fixed afterwards, each with a regression test that fails before the fix.
| Ticket | Symptom | Root cause | Fix |
|---|---|---|---|
| SD-105 | Quiz shows 0 % although most answers were correct | Integer division: (correct / total) * 100 | 1faa067: multiply first, regression tests |
| SD-106 | Error page on the course catalog for one group | NullPointerException for a course without description | c2e402c: null-safe teaser, regression tests |