WallpaperMachine
The wallpapers you love. A new home on your Mac.
Istrify: book your colony presswala for pickup and drop. Pick a slot, track your clothes, keep a clean khata.
LifestyleTypeScript · JavaScriptGitHub @anubhavsadhaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Istrify (istrify.in) is an aggregator web app connecting Gurgaon households with their colony presswala (ironing). Customers book pickups or drops by slot, set weekly schedules, track orders, keep a khata and buy monthly plans. Presswalas get an optimised daily route, a counting-and-billing screen and a digital khata. The platform admin approves presswalas, manages areas and plans, and tracks commission.
Stack: Next.js 16 (React 19, App Router, Server Actions) · Node.js · PostgreSQL · Tailwind CSS 4. It works on phones and can be added to the home screen like an app.
| Who | What |
|---|---|
| Household | Phone + password sign-up with sector/society and GPS pin · sees only presswalas serving their area (ranked) · one-tap "Pick up soon" nudge · book a pickup or self-drop by date and slot · choose a return slot and "I'll be home" time (changeable later) · weekly recurring schedule · order tracking and itemised bill · khata with UPI pay link and "I have paid" · monthly plans · ratings |
| Presswala | Daily plan: optimised walking route for morning pickups and evening drops, with Google Maps links · new-request inbox · count clothes per item (rate card) → automatic bill, plan deduction and khata entry · ironed/delivered status · customer list (only his own households) · confirm payments · 7-day load forecast vs capacity · settings for rate card, sectors, working days, capacity, UPI |
| Admin | KPIs (homes, orders, GMV, platform fee) · supply vs demand per area (where to recruit) · approve or disable presswalas · collect commission (settlements) · areas · subscription plans · commission % |
lib/optimize.ts)proxy.ts gates /c, /p and /admin by role, and every page and action re-checks the role on the server.Requires Node 20.9+ and PostgreSQL 14+.
cp .env.example .env # set DATABASE_URL and a long AUTH_SECRET
npm install
npm run db:setup # creates tables, Gurgaon areas, plans, admin (+ demo data if SEED_DEMO=1)
npm run dev # http://localhost:3000
Demo logins (password demo1234 unless noted):
| Role | Phone |
|---|---|
| Admin | ADMIN_PHONE / ADMIN_PASSWORD from .env (default 9999999999 / admin1234) |
| Presswala (DLF 1, DLF 4, Sushant Lok 1) | 9000000001 |
| Presswala (DLF 1, South City 1) | 9000000002 |
| Presswala (Sector 45, 46, Malibu Towne) | 9000000003 |
| Households | 8100000001 … 8100000048 |
Add or remove the demo accounts on any database (including production) at any time:
npm run db:demo # creates the presswalas and households above (safe to re-run)
npm run db:demo:remove # deletes them and all their orders; real accounts stay
Checks: npm run typecheck, npm test (optimiser and billing unit tests), npm run build.
See DEPLOY.md. In short: create a Postgres database (Supabase or Neon), set the environment variables, run npm run db:setup once against it, and deploy to Vercel (or any Node host with npm run build && npm start).
app/
actions/ server actions (auth, customer, presswala, admin)
c/ household app p/ presswala app admin/ admin console
api/cron/ daily schedule job api/health
components/ UI pieces
lib/
optimize.ts routing, slot advice, matching (pure, unit-tested)
billing.ts bill calculation (pure, unit-tested)
data.ts scoped database queries
auth.ts, session.ts, db.ts, dates.ts (IST), constants.ts (slots)
db/schema.sql idempotent schema scripts/ migrate + seed
proxy.ts role-based route gate (Next 16's replacement for middleware)
login/register* in app/actions/auth.ts for MSG91 or Twilio Verify; the phone column is already unique and normalised)