Domus — Screen Inventory (MVP)
Document Version: 1.0.7
Status: In Progress
Last Updated: 08 April 2026
Maps every screen to its route, layout, FSD placement, domain entities/services, and access roles.
Use this as the reference when building any page or feature UI.
Layout
Used By
Preview
AppShell
All authenticated pages
Preview (Code )
PublicShell
Login, join org, pending, rejected, privacy, terms
Preview (Code )
ErrorShell
404, 500, 403
Preview (Code )
Field
Value
Route
/login
Layout
PublicShell
FSD Page
src/pages/auth/ui/LoginPage.tsx
App Export
app/(auth)/login/page.tsx
Entity / Service
—
Access
Unauthenticated only. Redirect to / if already logged in.
Description
Google OAuth sign-in. Single CTA: "Masuk dengan Google".
Field
Value
Route
/join/[joinId]
Layout
PublicShell
FSD Page
src/pages/org/ui/JoinPage.tsx
App Export
app/(pubs)/join/[joinId]/page.tsx
Entity / Service
OrganizationEntity, UnitEntity, EnrollmentService
Access
pending or new users only.
Description
Displays org info + unit options. Registration form: fullName, idCardPhoto, unitId (optional), position. Submit creates parishioners + org_enrollments (status: pending).
Field
Value
Route
/pending
Layout
PublicShell
FSD Page
src/pages/auth/ui/PendingPage.tsx
App Export
app/(auth)/pending/page.tsx
Entity / Service
UserEntity
Access
Authenticated users with accountStatus: pending only.
Description
Informs user their account is awaiting admin approval. Action: Logout or Join other Org (redirect to /join/[joinId]).
Field
Value
Route
/rejected
Layout
PublicShell
FSD Page
src/pages/auth/ui/RejectedPage.tsx
App Export
app/(auth)/rejected/page.tsx
Entity / Service
UserEntity
Access
Authenticated users with accountStatus: rejected only.
Description
Informs user their registration was rejected. Contact info or support link.
Field
Value
Route
/privacy
Layout
PublicShell
FSD Page
src/pages/auth/ui/PrivacyPolicyPage.tsx
App Export
app/(auth)/privacy/page.tsx
Entity / Service
—
Access
Unauthenticated and authenticated users.
Description
Static Privacy Policy page. Content rendered from MDX via next-intl.
Field
Value
Route
/terms
Layout
PublicShell
FSD Page
src/pages/auth/ui/TermsOfServicePage.tsx
App Export
app/(auth)/terms/page.tsx
Entity / Service
—
Access
Unauthenticated and authenticated users.
Description
Static Terms of Service page. Content rendered from MDX via next-intl.
Field
Value
Route
/
Layout
AppShell
FSD Page
src/pages/dash/ui/DashPage.tsx
App Export
app/(dash)/page.tsx
Entity / Service
ParishionerEntity, EventEntity, TransactionEntity, EnrollmentEntity
Access
All authenticated users (approved). Content visibility filtered by role.
Description
Overview stats, upcoming events, recent activity feed. Stats visible by role: finance stats only for treasurer, pastor, executive-board.
Field
Value
Route
/parishioners
Layout
AppShell
FSD Page
src/pages/parishioner/ui/ParishionerListPage.tsx
App Export
app/(dash)/parishioners/page.tsx
Entity / Service
ParishionerEntity, ParishionerService
Access
parish-admin, super-admin, org admin, org owner
Description
Searchable, filterable list of parishioners. Supports pagination.
Field
Value
Route
/parishioners/[id]
Layout
AppShell
FSD Page
src/pages/parishioner/ui/ParishionerDetailPage.tsx
App Export
app/(dash)/parishioners/[id]/page.tsx
Entity / Service
ParishionerEntity, EnrollmentEntity, PlacementEntity, AttendanceEntity, ParishionerService
Access
parish-admin, super-admin, org admin, org owner
Description
Full profile: personal data, org enrollments, placement history, attendance history.
Parishioner Create (Manual by Admin)
Field
Value
Route
/parishioners/new
Layout
AppShell
FSD Page
src/pages/parishioner/ui/ParishionerCreatePage.tsx
App Export
app/(dash)/parishioners/new/page.tsx
Entity / Service
ParishionerEntity, ParishionerService
Access
parish-admin, territorial org admin (Region/Station/BEC), org owner
Description
Form to manually add a parishioner without going through the self-registration flow. No approval required.
Field
Value
Route
/org
Layout
AppShell
FSD Page
src/pages/org/ui/OrgListPage.tsx
App Export
app/(dash)/org/page.tsx
Entity / Service
OrganizationEntity, OrganizationService
Access
All authenticated users. Edit/manage actions restricted to parish-admin, org owner, org admin.
Description
List of all organizations. Hierarchical view for territorial orgs (Region/Station/BEC), flat list for categorical.
Field
Value
Route
/org/[id]
Layout
AppShell
FSD Page
src/pages/org/ui/OrgDetailPage.tsx
App Export
app/(dash)/org/[id]/page.tsx
Entity / Service
OrganizationEntity, EnrollmentEntity, UnitEntity, TermEntity, OrganizationService
Access
All authenticated users. Manage actions restricted by scoped role.
Description
Org profile, enrollment list, pending enrollment approvals (for admin), units, terms.
Field
Value
Route
/org/new
Layout
AppShell
FSD Page
src/pages/org/ui/OrgCreatePage.tsx
App Export
app/(dash)/org/new/page.tsx
Entity / Service
OrganizationEntity, OrganizationService
Access
parish-admin, super-admin
Description
Form to create a new territorial (Region/Station/BEC) or categorical organization.
Field
Value
Route
/org/[id]/enrollments/pending
Layout
AppShell
FSD Page
src/pages/org/ui/OrgEnrollmentPendingPage.tsx
App Export
app/(dash)/org/[id]/enrollments/pending/page.tsx
Entity / Service
EnrollmentEntity, EnrollmentService
Access
Org admin, org owner
Description
List of pending enrollment registrations. Approve or reject each entry.
Organization Member Roles
Field
Value
Route
/org/[id]/roles
Layout
AppShell
FSD Page
src/pages/org/roles/ui/OrgMemberRolesPage.tsx
App Export
app/(dash)/org/[id]/roles/page.tsx
Entity / Service
MemberEntity, MemberService
Access
Org admin, org owner, super-admin
Description
Manage roles of existing members (admin, member) and remove members from the organization.
Event & Attendance Screens
Field
Value
Route
/events
Layout
AppShell
FSD Page
src/pages/event/ui/EventListPage.tsx
App Export
app/(dash)/events/page.tsx
Entity / Service
EventEntity, EventService
Access
All authenticated users. Private events filtered by org enrollment.
Description
Upcoming and past events. Tabs: All / My Org. Filter by date range.
Field
Value
Route
/events/[id]
Layout
AppShell
FSD Page
src/pages/event/ui/EventDetailPage.tsx
App Export
app/(dash)/events/[id]/page.tsx
Entity / Service
EventEntity, RsvpEntity, AttendanceEntity, EventService, RsvpService, AttendanceService
Access
All authenticated users (public events) or org members (private events).
Description
Event info, RSVP action (if enabled), self-attendance (QR scan or GPS), attendance list for admin.
Field
Value
Route
/events/new
Layout
AppShell
FSD Page
src/pages/event/ui/EventCreatePage.tsx
App Export
app/(dash)/events/new/page.tsx
Entity / Service
EventEntity, EventService
Access
Org admin, org owner (private events). parish-admin (public events).
Description
Form: name, description, location, GPS coordinates (optional), date/time, RSVP toggle, visibility.
Field
Value
Route
/events/[id]/attendance
Layout
AppShell
FSD Page
src/pages/event/ui/EventAttendancePage.tsx
App Export
app/(dash)/events/[id]/attendance/page.tsx
Entity / Service
AttendanceEntity, AttendanceService, ParishionerEntity
Access
Org admin, org owner, parish-admin (for public events)
Description
Full attendance list. Approve/reject pending manual requests. Add manual attendance on behalf of parishioner.
Financial Report (Overview)
Field
Value
Route
/finance
Layout
AppShell
FSD Page
src/pages/finance/ui/FinancePage.tsx
App Export
app/(dash)/finance/page.tsx
Entity / Service
FinancialPeriodEntity, TransactionEntity, TransactionService, FinancialPeriodService
Access
treasurer, pastor, executive-board
Description
Yearly overview: total income vs expense per month. Drill-down to monthly detail.
Field
Value
Route
/finance/[year]/[month]
Layout
AppShell
FSD Page
src/pages/finance/ui/FinancePeriodPage.tsx
App Export
app/(dash)/finance/[year]/[month]/page.tsx
Entity / Service
FinancialPeriodEntity, TransactionEntity, TransactionService
Access
treasurer, pastor, executive-board
Description
All transactions for a given month. Income/expense breakdown by category. Lock/unlock period (treasurer only).
Field
Value
Route
/finance/[year]/[month]/new
Layout
AppShell
FSD Page
src/pages/finance/ui/TransactionCreatePage.tsx
App Export
app/(dash)/finance/[year]/[month]/new/page.tsx
Entity / Service
TransactionEntity, TransactionCategoryEntity, TransactionService
Access
treasurer only. Period must be open.
Description
Form: type (income/expense), category, amount, description, date, receipt photo (optional).
Transaction Detail / Edit
Field
Value
Route
/finance/[year]/[month]/[transactionId]
Layout
AppShell
FSD Page
src/pages/finance/ui/TransactionDetailPage.tsx
App Export
app/(dash)/finance/[year]/[month]/[transactionId]/page.tsx
Entity / Service
TransactionEntity, TransactionService
Access
treasurer only. Edit/delete only if period is open.
Description
Transaction detail view. Edit and delete available for treasurer on open periods.
Field
Value
Route
/setting
Layout
AppShell
FSD Page
src/pages/auth/ui/ProfileSettingsPage.tsx
App Export
app/(dash)/setting/page.tsx
Entity / Service
UserEntity, ParishionerEntity, ParishionerService
Access
All authenticated users (approved).
Description
View and edit personal profile. Display name, photo (from Google OAuth).
Transaction Category Management
Field
Value
Route
/setting/categories
Layout
AppShell
FSD Page
src/pages/finance/ui/CategorySettingsPage.tsx
App Export
app/(dash)/setting/categories/page.tsx
Entity / Service
TransactionCategoryEntity, TransactionService
Access
super-admin, treasurer
Description
CRUD for transaction categories (income and expense types).
Field
Value
Route
/setting/users
Layout
AppShell
FSD Page
src/pages/setting/ui/UserManagementPage.tsx
App Export
app/(dash)/setting/users/page.tsx
Entity / Service
UserEntity, UserService
Access
super-admin, parish-admin
Description
List all users. Assign/remove global roles. View account status.
Field
Value
Route
/setting/diocese
Layout
AppShell
FSD Page
src/pages/setting/ui/DioceseListPage.tsx
App Export
app/(dash)/setting/diocese/page.tsx
Entity / Service
DioceseEntity, DioceseService
Access
All authenticated users (view). super-admin, parish-admin (manage).
Description
List of all dioceses. Edit/delete actions restricted to super-admin and parish-admin.
Field
Value
Route
/setting/diocese/new
Layout
AppShell
FSD Page
src/pages/setting/ui/DioceseCreatePage.tsx
App Export
app/(dash)/setting/diocese/new/page.tsx
Entity / Service
DioceseEntity, DioceseService
Access
super-admin, parish-admin
Description
Form to create a new diocese. Fields: name, address, phone, email, logo, website, description.
Field
Value
Route
/setting/diocese/[id]
Layout
AppShell
FSD Page
src/pages/setting/ui/DioceseDetailPage.tsx
App Export
app/(dash)/setting/diocese/[id]/page.tsx
Entity / Service
DioceseEntity, DioceseService
Access
All authenticated users (view). super-admin, parish-admin (edit/delete).
Description
Diocese detail view. Edit and delete available for super-admin and parish-admin.
Field
Value
Route
/setting/parish
Layout
AppShell
FSD Page
src/pages/setting/ui/ParishListPage.tsx
App Export
app/(dash)/setting/parish/page.tsx
Entity / Service
ParishEntity, ParishService
Access
All authenticated users (view). super-admin, parish-admin (manage).
Description
List of all parishes. Edit/delete actions restricted to super-admin and parish-admin.
Field
Value
Route
/setting/parish/new
Layout
AppShell
FSD Page
src/pages/setting/ui/ParishCreatePage.tsx
App Export
app/(dash)/setting/parish/new/page.tsx
Entity / Service
ParishEntity, ParishService
Access
super-admin, parish-admin
Description
Form to create a new parish. Fields: dioceseId, name, address, phone, email, logo, website, description.
Field
Value
Route
/setting/parish/[id]
Layout
AppShell
FSD Page
src/pages/setting/ui/ParishDetailPage.tsx
App Export
app/(dash)/setting/parish/[id]/page.tsx
Entity / Service
ParishEntity, ParishService
Access
All authenticated users (view). super-admin, parish-admin (edit/delete).
Description
Parish detail view. Edit and delete available for super-admin and parish-admin.
Field
Value
Route
* (catch-all)
Layout
ErrorShell
FSD Page
src/pages/error/ui/NotFoundPage.tsx
App Export
app/not-found.tsx
Entity / Service
—
Access
All
Field
Value
Route
— (Next.js error.tsx)
Layout
ErrorShell
FSD Page
src/pages/error/ui/ErrorPage.tsx
App Export
app/error.tsx
Entity / Service
—
Access
All
This is a living document. Update as new screens are added to the MVP.