Skip to content

Work / DwarSeva Societies / Wiki / Synthesis

what-drawing-the-app-found

Synthesiscanonicalverified 2026-10-04

SYNTHESIS.WHAT-DRAWING-THE-APP-FOUND

Summary

Drawing all 69 screens from source on 2026-10-04 meant reading every route; this is the list of things that reading turned up, grouped by how much they matter.

Built from

Body

People who cannot use the app

  • A security head is bounced to Profile. The gate sends SECURITY_HEAD to the guard tabs; the guard layout admits only SECURITY_GUARD.
  • A guard cannot log out. No header, no avatar, no route to Profile.
  • A society admin cannot post a notice from the phone; only the guard has a compose form.
  • Profile's Edit opens the registration screen (router.push("/(auth)/register")), which starts a new account.

Links to nothing

  • The console's sidebar has five items; three (/users, /feedback, /reports) have no route. The dashboard's quick actions add /users/new, /bills, /bills/new, /payments/new, /geography. A society's "View Bills" and every View / Edit on a member or unit row go to routes that do not exist.
  • The website's FAQ and style-guide pages are linked from nowhere.
  • The mobile guard tabs declare a hidden tab add-visitor-new with no file; components/guard/*Step.tsx and VisitorSummary.tsx are its orphaned parts.
  • Five auth screens (password/reset, both set-with-*, both verify/*) are reached by no navigation.
  • The console exports SocietyManagementPage, SocietyOnboardingWizard and UnitManagement (about 1,270 lines) and mounts none.

Things that render wrong

  • The website's role classes paint nothing — see the decision above.
  • verify/email-otp.tsx labels both its buttons "Resend verification email", including the one that verifies.
  • The reject-visitor reason uses Alert.prompt, which is iOS-only.
  • A check-in confirmation reads "Are you sure you want to checked in this visitor?" — the status name is lower-cased into the sentence.
  • Profile renders a wing as "B -B-12" (a stray space before the dash).
  • Every screen under the root Slot that declares Stack.Screen options (bill, announcement, add visitor, not-in-society) may have no header at all.

Enum drift

See the drift notes on roles, membership, society and bill. The console's filters and badges were written against an earlier vocabulary.

Placeholders shipping as features

  • Profile: "Test notification" and "Send feedback" raise an alert that says so.
  • Console: Add Member, Add Unit, Manage Wings, Advanced Settings, Reject Society's sibling "Extend Subscription" — buttons with no handler or no effect.
  • Console member and unit stat cards show "-" for three of four numbers.
  • The dashboard's "+12%", "+8%" and "+15%" are literals, and Database / API Server are always "Online".

Documents that describe another repo

  • README.md links to docs/ and setup/; neither exists. yarn setup and yarn docs:check call scripts under setup/.
  • The agent rules listed yarn test, yarn seed, yarn docker:*; none is defined.
  • Stack versions in three documents are a major behind — see stack.

Open questions

  • Is the product orange and fuchsia, or blue and indigo?
  • Should a guard be able to approve a visitor on the resident's behalf?
  • Is apps/mobile going to the stores? eas.json's submit block is still placeholders.

Last refresh

2026-10-04 — refresh when any "Built from" page changes, or when a finding is fixed.

Sources

  • .context/designs/mobile/routes.js
  • .context/designs/web/routes.js
  • apps/mobile/src
  • apps/admin/src
  • apps/website/src