How kkorel/alongside-drp-project works
Alongside is a prototype web app for facilitated peer-support groups for bereaved young adults. Participants choose a demo identity, complete onboarding, check in on the dashboard, join a scheduled group chat, privately message a facilitator, and use quiet-space tools; facilitators manage groups and arrivals, run sessions, and review private messages and shared reflections. The frontend calls a Play JSON API backed by Slick and PostgreSQL. README capabilities guide the broader feature map; sampled source confirms several controller-to-repository paths, while some unsampled wiring is shown only where documented.
Main entry points: api.ts API client · identity.ts Demo identity · OnboardingSurvey.tsx Onboarding survey · page.tsx Participant dashboard
Components 23
Participant experience
- Demo identity
frontend/app/lib/identity.ts - Onboarding survey
frontend/app/onboarding/OnboardingSurvey.tsx - Participant dashboard
frontend/app/dashboard/page.tsx - Group room
frontend/app/components/ChatRoom.tsx - Quiet space
frontend/app/(quiet) - Reflection state
frontend/app/lib/useQuietSpace.ts
Facilitator workspace
- Facilitator workspace
frontend/app/facilitator
Backend API
- API client
frontend/app/lib/api.ts - Onboarding API
backend/app/controllers/OnboardingController.scala - Dashboard API
backend/app/controllers/DashboardController.scala - Group session API
backend/app/controllers/PeerSupportController.scala - Facilitator API
backend/app/controllers/FacilitatorController.scala - Private message API
backend/app/controllers/FacilitatorSupportController.scala - Quiet space API
backend/app/controllers/QuietRoomController.scala
Persistence
- Onboarding repository
backend/app/repositories/Onboarding/OnboardingRepository.scala - Dashboard repository
backend/app/repositories/Dashboard/DashboardRepository.scala - Peer support repository
backend/app/repositories/PeerSupport/PeerSupportRepository.scala - Facilitator repository
backend/app/repositories/Facilitator/FacilitatorRepository.scala - Private message repository
backend/app/repositories/FacilitatorSupport/FacilitatorSupportRepository.scala - Quiet room repository
backend/app/repositories/QuietRoom/QuietRoomRepository.scala - PostgreSQL
Other components
- Participant
- Facilitator
Connections 30
- Participant → Demo identity: chooses identity
- Demo identity → Onboarding survey: opens survey
- Demo identity → Participant dashboard: opens dashboard
- Participant → Group room: joins group
- Participant → Quiet space: uses tools
- Facilitator → Facilitator workspace: manages groups
- Onboarding survey → API client: submits answers
- Participant dashboard → API client: loads and saves
- Group room → API client: loads and sends
- Facilitator workspace → API client: manages sessions
- Quiet space → Reflection state: edits reflections
- Reflection state → API client: loads and saves
- API client → Onboarding API: calls API
- API client → Dashboard API: calls API
- API client → Group session API: calls API
- API client → Facilitator API: calls API
- API client → Private message API: calls API
- API client → Quiet space API: calls API
- Onboarding API → Onboarding repository: invokes
- Dashboard API → Dashboard repository: invokes
- Group session API → Peer support repository: invokes
- Facilitator API → Facilitator repository: invokes
- Private message API → Private message repository: invokes
- Quiet space API → Quiet room repository: invokes
- Onboarding repository → PostgreSQL: reads and writes
- Dashboard repository → PostgreSQL: reads and writes
- Peer support repository → PostgreSQL: reads and writes
- Facilitator repository → PostgreSQL: reads and writes
- Private message repository → PostgreSQL: reads and writes
- Quiet room repository → PostgreSQL: reads and writes