Kundalik mahsulotlarni ulgurji narxda yoki guruh bo‘lib arzonroq xarid qiling.
Translation pending
CommerceJavaScript · CSSGitHub @ZuwazaaOnlineOwner 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
Arzon.uz — ulgurji va guruhli xarid platformasi (MVP)
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Ulgurji va guruhli xarid web platformasi. Node.js 22.5+ (built-in node:sqlite), Express, vanilla-JS SPA (o‘zbek tilida, mobile-first). Demo hisoblar (parol: demo12345): admin +998900000001, sotuvchilar +998900000002, +998900000003, xaridor +998900000004. Muhit o‘zgaruvchilari PORT, DB_FILE, NODE_ENV=production, SEED_DEMO=0 (faqat admin/zonalar/kategoriyalar), ADMIN_PASSWORD, DEMO_PASSWORD, PAYMENT_PROVIDER (hozircha faqat mock), PAYMENT_WEBHOOK_SECRET, TRUST_PROXY=1.Read the full README ↗
Ulgurji va guruhli xarid web platformasi. Node.js 22.5+ (built-in node:sqlite), Express, vanilla-JS SPA (o‘zbek tilida, mobile-first).
npm install
npm start # http://localhost:3000 (birinchi ishga tushirishda demo ma'lumotlar yaratiladi)
npm test # end-to-end testlar (xotiradagi baza)
npm run seed # bazani o'chiradi; qayta `npm start` demo ma'lumotni qayta yaratadi
Demo hisoblar (parol: demo12345): admin +998900000001, sotuvchilar +998900000002, +998900000003, xaridor +998900000004.
PORT, DB_FILE, NODE_ENV=production, SEED_DEMO=0 (faqat admin/zonalar/kategoriyalar), ADMIN_PASSWORD, DEMO_PASSWORD,
PAYMENT_PROVIDER (hozircha faqat mock), PAYMENT_WEBHOOK_SECRET, TRUST_PROXY=1.
| PRD | Joyi |
|---|---|
| FR-01…03 katalog, narx bosqichlari, min/zaxira tekshiruvi | server/orders.js#quote, public/shop.js |
| FR-04…06 guruhlar, atomik limit, muddat | server/orders.js#createOrder/evalGroup (BEGIN IMMEDIATE + shartli UPDATE) |
| FR-07/08 checkout, order snapshot | /api/checkout/quote, orders.items/address_snapshot |
| FR-09 buyurtmalar | /profile/orders |
| FR-10 sotuvchi paneli | /seller (mahsulot, narx bosqichi, zaxira, guruh, buyurtma holati) |
| FR-11 admin | /admin (buyurtma, yetkazish, guruh, refund, moderatsiya, zona/sozlama, audit, KPI) |
| FR-12 to‘lov | server/payments.js — paid faqat imzolangan webhook orqali |
| FR-13 tejash | faqat admin tasdiqlagan bozor narxi bo‘lsa ko‘rsatiladi |
| FR-14 havola | guruh sahifasida “ulashish” |
| Guruh xonasi | /room/KOD — har guruhning qisqa kodi (6 belgi) va o‘z sahifasi: kod/havola bilan kirish, miqdor tanlash va buyurtma shu yerda. GET /api/rooms/:code |
| FR-15 manzillarni birlashtirish (P2) | qilinmagan |
successful. Limit to‘lgan, lekin to‘lanmagan joylar bo‘shasa — guruh yana open.refund_pending sifatida yoziladi.failed, to‘langanlar uchun refund_pending, band joylar bo‘shatiladi.mock sandbox (/mock-pay/:ref) — u ham haqiqiy provayderdek imzolangan webhook yuboradi. Real provayder payments.js#providers ga qo‘shiladi. Refund hozir qo‘lda (admin “Refund boshlash” → “Bajarildi”).scrypt parol xeshi, HttpOnly+SameSite sessiya cookie, rol/egalik tekshiruvi har endpointda, kiritishni validatsiya, rate limit, CSP va xavfsiz sarlavhalar, mutatsiyalar faqat JSON, pul — butun so‘m, vaqt — UTC, Idempotency-Key bilan takroriy so‘rovdan himoya, audit jurnali. Productionda PAYMENT_WEBHOOK_SECRET va HTTPS (NODE_ENV=production) majburiy.