Keys
Chakana savdo uchun POS platforma — ikkinchi versiyaga qayta yozilgan
Shtrix-kodli kassa tizimi: haqiqiy do‘konda Django monoliti sifatida boshlangan va yangi arxitekturada ikkinchi versiyaga qayta yozilgan — FastAPI + React, yengilroq va tezroq interfeys, smenalar, inventarizatsiya, qaytarishlar, sodiqlik dasturi va egasi uchun Telegram-bot.
- Mijoz
- Chakana do‘konlar
- Rol
- Yagona dasturchi — talablar, arxitektura, ikkala versiya
- Muddat
- v1 — 2024 · v2 (qayta yozish) — 2026
- Stek
- PythonFastAPIPostgreSQLRedisCeleryReactTypeScriptWebSocketTelegram Bot APIDjango (v1)
Muammo
Birinchi versiya kichik do‘konda daftarlarni almashtirdi: sotuv, tovar qabul qilish, xaridorlar qarzi va haftalik hisobot. U ishlardi, lekin server tomonida render qilinadigan monolit har bir skanerlash va sahifa almashishini sekinlashtirardi, biznes qoidalari ko‘rinishlar bo‘ylab tarqalib ketgan edi, bitta do‘kondan tashqariga chiqish esa real emasdi.
Ikkinchi versiya do‘kon tayangan hamma narsani saqlab qolishi, tezlik va tuzilma cheklovlarini olib tashlashi va boshqa do‘konlar ham foydalana oladigan mahsulotga aylanishi kerak edi.
Yondashuv va arxitektura
- Avval mavjud tizimni hujjatlashtirdim — biznes va funksional talablar, ma’lumotlar modellari, API va migratsiya qo‘llanmasi — so‘ng kodni ko‘chirmasdan, shu spetsifikatsiya asosida v2 ni loyihaladim.
- Yangi arxitektura: administrator, menejer va sotuvchi rollari uchun ruxsatlarga asoslangan qatlamli FastAPI backend (endpointlar → servislar → CRUD → modellar), PostgreSQL, Redis kesh va import, hisobotlar hamda eslatmalar uchun Celery.
- Yengilroq va tezroq interfeys: skanerlashlar orasida sahifa qayta yuklanmaydigan React bir sahifali ilovasi, savatning bir zumda yangilanishi, ikki marta o‘qishdan himoyalangan, vaqt bo‘yicha shtrix-kod skanerini aniqlash va WebSocket orqali real vaqtdagi yangilanishlar.
- Pul — buxgalteriya jurnali kabi: qarzlar faqat yozuv qo‘shiladigan o‘zgarmas jurnalda; X/Z hisobotlar va kassani «ko‘r» solishtirish bilan smenalar; ko‘r sanash va farqlar hisoboti bilan inventarizatsiya; har bir pozitsiya bo‘yicha omborga qaytarish bilan qaytarishlar.
- Arxitektura ikki bosqichli sxemaga tayyor — internetga bog‘liq bo‘lmasdan ishlash uchun do‘kondagi server va ma’lumotlar sinxronlanadigan bulut server — hamda egasiga ogohlantirishlar va qarz eslatmalari yuboradigan Telegram-bot.
Natija
- v1 2024-yildan beri do‘konda foydalanilmoqda; v2 spetsifikatsiyaning taxminan 85–90 foizini qamraydi, POS yadrosi bitta do‘konda ishlashga tayyor.
- To‘rt turdagi savat, beshta to‘lov usuli, sodiqlik va keshbek, 15+ ko‘rsatkichli tahlil, olti bosqichli sozlash ustasi, rus va o‘zbek tilidagi interfeys.
Uni nima mustahkam qildi
- Backend uchun 280+ test; CI linter, formatlash tekshiruvi, qamrov bilan testlar, migratsiyalar va unutilgan migratsiyalar tekshiruvini ishga tushiradi, Docker obrazini yig‘adi.
- v2 ning mustaqil tahlili 60+ muammoni topdi — jumladan qoldiqni hisobdan chiqarishdagi poyga holati va chegirmalarni tekshirish — ular foydalanuvchilarga qolmasdan, tuzatish rejasiga kiritildi.
- Idempotent operatsiyalar, birinchi kirishda parolni majburiy almashtirish bilan kuchaytirilgan avtorizatsiya, taymautlar, zaxira nusxa va tiklash skriptlari.
Shunga o‘xshash vazifa bormi?
Menga yozing — ko‘lam, yondashuv va birinchi bosqich qanday bo‘lishi haqida ochiq fikrimni aytaman.