Contributions
Table of contents
This page documents the individual contributions of the team members, derived from the git history of the repository (commit hashes in parentheses) and the task distributions in the weekly reports. Overall distribution across all branches: 121 commits, of which 91 by Denis Cercasin (~75 %); measured in changed lines of source code and documentation, Denis authored ~85 %.
Line and commit counts are proxies: 3D modeling work (Blender) and Unity scene editing produce binary changes that line statistics cannot capture, and contributions by Erik Wlochal and Jacob Gotter were committed through teammates’ machines. Reproduce the numbers with git shortlog -sn --all.
Denis Cercasin — lead developer
91 commits, ~34,000 added lines in code and documentation. Feature branches designed, implemented, and merged:
Backend
- API security & validation (
feature/improved-key-management, May): Zod validation middleware for all endpoints (85e21d6), UUID v7 utilities replacing legacy key generation (b5a3fe3,eda0deb), centralized fail-fast configuration validation for API and frontend (4cfeab8,c5f30eb), modernized TypeScript setup (885b53d), hardened ignore rules and secret-handling guidance (bf9da3e,8f8e816) - Real-time layer (
feature/websockets, May): Socket.IO server with per-game rooms (a2d2ea3), shared typed event/payload contracts (e00a9d5), session/auth abstraction (f843387), broadcasts after every game-state change (87d7b06) - Evaluation engine (
feature/error-weights, June): weighted 32-error catalog as database seed (b55e22d), scoring service (7710e3a), evaluation engine with rule-based trainer feedback (35e2348,90d40b1),game_evaluationstable anderror_definitionsextension (9f74ed1), normalized game-state loading (ff58ac4), live evaluation in the game-state event (1dc424e)
Frontend
- Patient selection (
feature/patient-model-selection, June): selection UI with medical cards for all six patients (1790839,cc4d79d), selection logic and preview rendering (5389688) - Results dashboard (June): evaluation overview, category breakdown with percentage scores, critical-mistakes section, trainer-feedback panel, typed helpers (
f45dd75,171ba07,9a0e037,9f96d7c,ccc02d0) - Accessibility (
feature/color-blindness, July): color-vision modes incl. dynamic color system replacing static color codes (110cf63,be6b325,d325577,c381fb8) - Patient-specific error filtering concept (
1d6eba8), improved random error selection (3e7e496)
Unity
- All new error scenarios (#19-#31) in the game, including every patient-specific scenario:
- A (child): bed too big, call bell too high
- B (non-binary, penicillin allergy): allergy–medication conflict, bed set too high, alarm out of reach
- C: family visit — too many visitors decision dialog (
366fb0d) - D (dementia): 3 blocked doors, sensor mat in wrong position (
0915166) - E (obese, amputation): regular bed instead of bariatric bed, missing address in record (homelessness)
- F (no German): interpreter decision dialog
- Interactive patient file (
feature/patient-acts, July): 17 sections of data per patient with built-in record errors — missing address, interpreter decision, diagnosis–medication mismatch, allergy conflict (168f603,d8ce8aa,5508395,7799c58) - Smarter error rendering: solving an error visibly resolves it; unselected errors are hidden or shown in their correct state so the active set can’t be guessed —
MoveErrorContainer(df9a19a),VisualStateCorrection(0c64b93) - Reworked win/lose screens for better UX (
709e9be,473f193) - Desktop mode: full game playable and testable on a laptop without a headset
- Restructured project files and general fixes of inherited bugs (e.g. patient–bed decoupling); Unity version-control configuration (
fb66dd9), repository setup (09e9bf8)
Documentation
- GitHub Pages documentation: architecture, data model, API reference, error catalog, patient documentation, translations, screenshots (
dec2df3,9c0393f,ad8be9c,45f7da0,335723c), data-model documentation for the weighted errors (8ea3068,e2d7a9a)
Project & team
- Communication with all stakeholders (Lily Dausch, Prof. Dr. Wiesner, Kaan Turan) and coordination within the team
- Testing of all components throughout the semester
Semi Kaan Baskaya
- SQLite → PostgreSQL migration with native UUID columns (
06b4b65), connection settings (07f561f) error_definitionstable: creation, write module, startup seeding groundwork (996fdcd,d955617,791bfcd)- User manual (target agreement goal 5): detailed German manual for hosts and non-technical users (“nicht IT-affine” audiences) covering login, game code, session setup, gameplay, and troubleshooting — Manual Room of Horror (DOCX), in German
- Initial data-model documentation (
add datamodel)
Jan Busson
- Patient Models: model creation and Unity scene integration incl. materials (PR #15)
- 3D patient models in Blender together with Erik Wlochal (weekly report, week 4)
- AI feasibility study (target agreement goal 8): “Room of Horror 3.0 – KI-Machbarkeitsstudie” — three solution approaches for AI-supported speech and dialog functions with diversity relevance, incl. Unity roadmaps and open questions for future teams — PDF, in German
- Documentation of the game structure and project overview
Erik Wlochal
- 3D patient models in Blender together with Jan Busson (weekly report, week 4)
- Accessibility assessment (target agreement goal 2): written status quo of the existing accessibility features plus prioritized recommendations for future development (motion-sickness measures, multilingual UI, wheelchair perspective, visible avatar, two-senses principle, adjustable font size, practice room) — Assessment Barrierefreiheit (DOCX), in German
(No direct commits — work contributed via teammates’ machines.)
Jacob Gotter
- Main author of the project documentation submitted to the course throughout the whole semester — the project-management documentation (introduction, time and milestone management, change management, stakeholder matrix, vision, requirements) — Projektdokumentation Room of Horror (PDF), in German
- VR application user manual (target agreement goal 5): German manual for trainers, lecturers, and medical instructors covering VR start, lobby and game code, WebApp login, desktop test mode, troubleshooting, and role overview — a second, VR-focused manual alongside Semi Kaan Baskaya’s host manual — Nutzerhandbuch Room of Horror VR (PDF), in German
- Unity support and attempt of integration of the interactive patient file in Unity (weekly report, week 6)
(No direct commits — work contributed via teammates’ machines.)
Batuhan Selvi
- Patient model selection integration connecting frontend and backend (
8ff74c4) - Patient avatars and selection visuals (
feat: add patient selection avatars/images,feat: update patient selection visuals) - Technical documentation template (
Add technical documentation)
Berk Cakmak
- GitHub Pages setup and configuration changes
- Documentation pages: goals, patient models, project structure, contributors
Joint achievements
- Weekly team meetings and stakeholder alignments (see Weekly Reports)
- Presentation preparation as a whole team: interim presentation (08.06.2026) and final presentation (14.07.2026) incl. live demos
- Requirements catalog and target agreement with Lily Dausch
Information sources
- Git history of the repository (
git shortlog -sne --all,git log --numstat, per-feature branch logs) — all commit hashes verifiable in the repository - Weekly Reports (task distributions of weeks 4 and 6)
- Patient Models (modeling responsibilities)
Assumptions
- Roles of Erik Wlochal and Jacob Gotter are attributed from the weekly reports and patient documentation, as their work was committed through teammates’ accounts.
- In the weekly reports, “Kaan” partly refers to the technical advisor Kaan Turan (architecture overview, advice) and partly to team member Semi Kaan Baskaya; the git history confirms the PostgreSQL migration and error_definitions groundwork as Semi Kaan Baskaya’s commits.
Last build: 19 Aug 2026, 05:20+00:00