Video in the works
GATE 2.0
A resident creating a visitor pass, and a guard scanning it.

About the project
GATE 2.0 is a mobile app for gated housing societies. Residents create visitor QR passes, guards scan and log entries, and admins run notices, staff and payments, all in one app.
GATE 2.0 is a mobile app for gated housing societies. One app serves three people: residents who invite visitors, guards at the gate who scan and log them, and admins who run the society.
It's a front-end MVP with sample data: every screen and flow is designed and working, ready to connect to a backend. Rohit later added features and renamed it DoorWy.
How it works
Log in
Phone number and OTP. The number decides whether you see the resident, guard or admin app.
Invite
A resident creates a QR visitor pass or pre-approves a guest.
At the gate
The guard scans the pass, checks the visitor and approves or denies entry, and it's logged.
Run the society
Admins see stats, post notices, and manage residents, staff and payments.
Pay
Residents pay maintenance by UPI, card or netbanking (mocked for now).
Under the hood
- App
- One Expo app with typed routes, for Android, iOS and the web.
- Design
- A theme built from a Google Stitch design, with Reanimated and hand-drawn SVG scenes.
- Web preview
- A static Expo export on Vercel.
What I did
- One Expo app for three roles; the role comes from the phone number after login, so there's no role picker
- Resident screens: login, visitors, a QR pass, pre-approving guests, payments, notices and profile
- Guard screens: a scanner, an entry log, check-in and approve or deny
- Admin screens: stats, visitors, residents, notices, staff and payment reports
- Theme built from a Google Stitch design, then redesigned light and minimal
- Hand-drawn animated SVG scenes for onboarding
- Deployed the web build to Vercel
Problems I hit, and how I fixed them
Filter rows collapsed behind the list below them.
Fix Stop them from growing, on every screen.
The last row hid under the tab bar.
Fix A spacing token for it.
A role picker added a step.
Fix Get the role from the phone number.
