Skip to content

Work / DwarSeva Societies / Wiki

DwarSeva Societies wiki

91 pages · last verified 2026-10-04

Concepts 7

PageOwns
layered-architectureResolver → service → repository → Prisma, one job per layer
mvp-firstShip, refactor hard, keep no legacy
role-gateHow the mobile app decides which of three apps a user sees
society-scopeEvery request is scoped to one society and unit by header
soft-deleteRows are never removed; every read filters deletedAt
status-coloursFour colours carry state, the same in every role's app
time-handlingNo native Date; every time goes through core/utils/time

Entities 10

PageOwns
announcementNotice categories, priorities and how they sort
billBill states, bill types and their labels
contact-detailsThe company's public contact details and app identifiers
domain-modelThe seven core entities and the five business rules
membershipThe five membership states and what each shows
pricingThe three plans the website quotes
rolesSociety and unit roles, their labels, and which app each gets
societySociety states, types, and what the super admin may do in each
stackWhat the monorepo is built with, checked against package.json
visitor-requestThe seven visitor states, who moves a request, and the copy

Surfaces 69

PageScreen
aboutWhat the company is, what the product does, and what is and is not built yet.
admin-announcementsThe society admin's list of notices.
admin-billsThe society admin's list of every bill in the society.
admin-dashboardThe console's home: four totals, contextual quick actions, system health.
admin-errorThe console's 500.
admin-homeThe society admin's dashboard: pending visitors, overdue bills, notices.
admin-loginSign in to the super-admin console with email and password.
admin-logout-confirmThe confirmation before signing out of the console.
admin-membersThe society admin's member list, where join requests are approved.
admin-not-foundThe console's 404 — and where eight of its own links lead.
admin-societiesEvery society on the platform, searchable and filterable.
admin-society-createdThe success dialog after creating a society.
admin-society-editThe same form, filled, to change a society.
admin-society-membersA society's members.
admin-society-newThe form that puts a society on the platform.
admin-society-unitsA society's units.
admin-society-updatedThe success dialog after editing a society.
admin-societyOne society: its details, its standing, and what the admin may do about it.
admin-status-confirmThe confirmation before changing a society's status.
admin-visitorsThe society admin's list of every visitor request.
alertsEvery native alert the mobile app raises, grouped by the screen that raises it.
announcement-detailOne notice in full.
bill-detailOne bill: amount, what is paid, the items, and when it is due.
careersA careers page with no roles.
country-pickerThe bottom sheet that sets the country code on sign-in and registration.
create-visitorPre-register an expected visitor.
demoA self-serve demo: a sample society's dashboard and two forms that update it.
errorThe website's 500.
faqFour questions and answers.
forgot-passwordAsk for a password reset by phone number.
foundersThe two founders, and why the company exists.
guard-add-visitorThe guard's one-screen form to register a walk-in visitor.
guard-contactsEmergency numbers, society admins and the other guards, each one tap from a call.
guard-homeThe guard's dashboard: who is inside, who is expected, and four big actions.
guard-noticesThe guard's notice list, with the only compose button in the app.
guard-visitorsThe guard's working list: search, filter by state, and act on each visitor in place.
homeThe marketing site's one long page: hero, who it is for, what it does, pricing, contact.
login-verify-codeEnter the OTP sent to the phone number given on sign-in.
loginSign in with a phone number and password, or ask for an OTP instead.
not-foundThe website's 404.
not-in-societyWhat a signed-in user with no society membership sees: one button.
phone-otp-verifyA standalone OTP sign-in: enter the code.
phone-otpA standalone OTP sign-in: ask for the code.
post-noticeThe guard's compose form for a notice.
privacyThe privacy policy.
profileThe signed-in user's details, households, and the way out.
register-set-passwordOptionally set a password so the next sign-in does not need an OTP.
register-verify-codeVerify the phone number given at registration.
registerCreate an account: first name, last name, phone.
request-guardThe same request as a guard sees it, with the action its state allows.
requestOne visitor request, as a resident or society admin sees it while it is pending.
reset-passwordSet a new password from a reset token.
resident-announcementsThe resident's notice board, pinned notices first.
resident-billsThe resident's bills: what is owed, then the list.
resident-homeThe resident's dashboard: approvals waiting, next bills, today's visitors, notices.
resident-visitorsThe resident's visitor requests, with anything awaiting approval pulled to the top.
reviewConfirm city, society and flat, then request membership.
select-cityFirst of four steps to join a society: pick a city.
select-societyPick a society in the chosen city.
select-unitPick a wing and a flat in the chosen society.
set-password-emailSet a new password from an emailed link.
set-password-phoneVerify a phone code and set a new password in one step.
splashThe entry gate: a spinner while the app decides where a user belongs.
style-guideThe site's own brand page: logo, colour ramps, type scale, component samples.
termsThe terms of service.
toastsThe four toast severities and the offline strip.
unit-switcherThe sheet that switches which flat — and so which society and role — the app is acting as.
unitsEvery flat the user is attached to.
verify-emailConfirm an email address from a link, or ask for the link again.

Decisions 4

PageDecided
2026-10-04-agents-md-is-the-one-rules-filedwarseva joins the estate convention: AGENTS.md, with CLAUDE.md importing it
2026-10-04-field-resolvers-live-with-their-serviceA field resolver goes in the domain whose service it needs, not its parent type's
2026-10-04-the-console-is-a-flow-of-the-web-surfaceThe admin console is drawn inside designs/web, as the flow admin
2026-10-04-the-set-draws-what-the-website-markup-asks-forUndefined role classes on the website are drawn as intended, not as rendered

Synthesis 1

PageOwns
what-drawing-the-app-foundEverything the 2026-10-04 design pass found by reading every screen