尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 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)