Progress

Backend — Core

16/21 (76%)

Core/Platform

7/8
  • AbstractId base class
  • Timestamps value object
  • DomainEventInterface contract
  • TenantId shared value object
  • FileStorageServiceInterface + Flysystem adapter
  • OrganizationContextResolverInterface
  • OrgMembershipCheckInterface
  • Module entitlement contracts

Core/Identity

9/13
  • Tenant aggregate (create, status, type, locale, slug)
  • User aggregate (OIDC, profile, invite, status, roles)
  • ApiKey aggregate
  • Zitadel OIDC bearer authenticator
  • Zitadel OIDC session authenticator
  • API key authenticator
  • X-Organization-Id context resolution
  • SecurityUser with tenantId + organizationId
  • Admin UI (tenants, users, API keys)
  • Passkey support via Zitadel
  • Mailgun transactional email integration
  • Password reset flow via Zitadel + Mailgun
  • Email verification flow

Backend — Modules

16/39 (41%)

Module/Organization

7/10
  • Organization aggregate (create, update, archive, ltree)
  • OrgMembership aggregate (join, leave, roles)
  • OrgAuthorizationChecker (ltree cascading)
  • RootOrganizationProvisioner
  • Org context resolver + membership check
  • Admin UI + API controllers
  • registrationMode per org (open, invite_only, by_request)
  • OrgInvitation entity + invite/accept endpoints
  • Leave org endpoint + auto-remove group memberships
  • GET /api/v1/me/organizations (cross-tenant org list)

Module/Groups

4/6
  • Group aggregate (create, update, delete, archive, hierarchy)
  • GroupMembership aggregate (add, remove, roles)
  • Org-scoped repos and queries
  • Admin UI + API controllers
  • Group visibility (open, request, invite-only)
  • Group type filtering

Module/Events

5/8
  • Event aggregate (create, update, publish, cancel)
  • EventRegistration aggregate (register, cancel)
  • Timezone + RecurrenceRule value objects
  • Org-scoped repos and queries
  • Admin UI + API controllers
  • Event ↔ Group relationship
  • Calendar export (iCal)
  • RSVP Level 2 (capacity, waitlist)

Module/People

0/4
  • People profile (name, photo, bio, contact)
  • Privacy settings (who sees what)
  • Searchable member directory (org-scoped)
  • Contact actions (email, phone)

Module/News

0/5
  • News post aggregate (create, edit, delete, schedule)
  • Multi-level feed (org-scoped, cascading)
  • Rich text with images
  • Post targeting (all / org / group)
  • Admin UI + API controllers

Push Notifications

0/6
  • Firebase FCM integration (Android)
  • APNs integration (iOS)
  • Web push (service worker)
  • Notification types (news, event, group)
  • Member preferences (per-type toggle)
  • Deep link from notification to screen

Backend — Pipeline

6/6 (100%)

Pipeline/Audit

4/4
  • AuditEntry entity
  • AuditEventHandler (Messenger async)
  • Audit log query
  • Superadmin UI

Pipeline/History

2/2
  • EntitySnapshot entity
  • HistoryEventHandler (versioned snapshots)

Frontend (React Native / Expo)

5/15 (33%)

Foundation

5/8
  • Expo project with Expo Router
  • Design system tokens (theme.ts)
  • UI component library (Button, Input, Card, etc.)
  • Design system showcase page
  • 4-tab navigation shell
  • Auth flow (OIDC → Zitadel)
  • API client + token management
  • Org context provider

Screens

0/7
  • Org picker / switcher
  • Feed screen (news, pull-to-refresh)
  • Groups screens (my groups, discovery, detail)
  • Events screens (upcoming, detail, RSVP)
  • Directory screens (search, profile view)
  • Profile screens (edit, privacy, notifications)
  • Settings (language toggle DE/EN)

Org Access Flows

2/6 (33%)

Org Access

2/6
  • Open join — auto-membership on first API call
  • registrationMode per org
  • Org switching (GET /me/organizations + org picker)
  • Invite-only join (admin sends invite → member accepts)
  • Leave org (member can leave, auto-removes memberships)
  • Invite link / QR code generation

Infrastructure

8/18 (44%)

Local Development

5/5
  • Docker Compose (PostgreSQL, Redis, Zitadel, MinIO, Mailpit)
  • Zitadel OIDC setup script
  • make setup / make serve / make worker
  • Seed command (sample data)
  • Subdomain testing via lvh.me

CI/CD

0/4
  • PHPStan + Deptrac + PHPUnit pipeline
  • ESLint + TypeScript check
  • Staging auto-deploy on merge to main
  • Production deploy on tag

Hosting

0/4
  • Hetzner servers via OpenTofu
  • Cloudflare R2 + CDN
  • Cloudflare Pages (PWA hosting)
  • Zitadel production deployment

Quality

3/5
  • Deptrac boundary enforcement (0 violations)
  • 96 unit tests, 285 assertions
  • Domain event JSON serialization
  • OpenAPI documentation
  • Integration tests for infrastructure layer

Admin Backend

6/11 (55%)

Tenant Admin

6/11
  • Super admin dashboard (tenant list)
  • User management (list, search, roles)
  • Audit log viewer
  • Organization tree management
  • Group management
  • Event management
  • Self-service tenant creation wizard
  • Member invite (link, QR, email)
  • News content management
  • Basic dashboard (member count, activity)
  • Conflict detection (duplicate tenants)