尚未检测到更新。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)