WallpaperMachine
당신이 사랑하는 배경화면, 맥에서 새롭게 만나보세요
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 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)