Skip to main content
Source snapshot: 13 October 2026. These pages describe the current implementation, including unfinished controls. See coverage and review notes.

Public Mahallu homepage

Host: [tenant].<ROOT_DOMAIN> · Route: /

Purpose and access

Introduce a Mahallu publicly and provide member login/dashboard access.Entry, public access, and redirect rules are described for this screen below.

Screen layout

The page presents Mahallu/Masjid identity, daily prayer cards, Citizen Member Services, announcements, upcoming events, and a member-login call to action. The main link changes when a member session exists.

Fields and displayed information

This screen has no editable fields or filters in its rendered components.

Actions

Linked navigation

Interaction sequence

Visitors choose Member Login (Phone + OTP) → authenticate → open dashboard. Already signed-in members choose Go to Member Dashboard. Announcements and events are displayed from the route’s requests.

States and rules

Prayer times are fixed page values, not a configured live schedule. Service cards describe offerings without request-submission controls. Failed announcement/event reads fall back to empty lists. Announcement/event reads use operator-JWT-protected endpoints, so anonymous/member-only sessions can receive empty feeds. A public/member feed integration is unfinished.

Implementation references

Paths below are relative to the application repository. This is source-reviewed behavior, not a recorded browser test.
  • apps/web/src/app/sites/tenant/[tenant]/page.tsx
Data and access helpers: apps/web/src/lib/member-session.ts, apps/web/src/lib/server-api.ts, apps/web/src/lib/tenants.ts, apps/web/src/lib/business-resources.ts

API behavior references

  • apps/api/src/member-auth/member-auth.controller.ts
  • apps/api/src/tenants/admins.controller.ts
  • apps/api/src/tenants/roles.controller.ts
  • apps/api/src/tenants/tenants.controller.ts
  • apps/api/src/announcements/announcements.controller.ts
  • apps/api/src/events/event-registrations.controller.ts
  • apps/api/src/events/events.controller.ts