Apteka CRM — dorixonalar uchun kassa va ombor
Full-stack · backend va frontend
Ko‘p dorixonali SaaS: kassa, ombor, hisobotlar va super-admin konsoli (obuna tugasa dorixona avtomatik bloklanadi).
- NestJS
- Prisma
- PostgreSQL
- React 19
- Vite
- TanStack Query
- Tailwind
Muammo
Kichik dorixonalar ko‘pincha daftar yoki eski dasturda ishlaydi: qoldiq noaniq, muddati o‘tgan dori vaqtida ko‘rinmaydi, yangi partiyani kiritish soatlab vaqt oladi. Kerak bo‘lgani — tez kassa, aniq ombor va hisobotlar, va bir nechta dorixonaga xizmat qiladigan bitta tizim.
Mening rolim
Backend va frontendni to‘liq qildim: multi-tenant ma’lumotlar modeli, kassa, ombor, importlar, hisobotlar va super-admin konsoli.
Imkoniyatlar
Kassa
- USB shtrix-kod skaneri: tugmalar orasidagi vaqtga qarab skanerni odam yozishidan ajratish
- Qadoq yoki dona bo‘yicha sotish, foiz yoki summa chegirma
- Savat brauzerda saqlanadi — sahifa yangilansa sotuv yo‘qolmaydi
Ombor
- Qoldiq donalarda hisoblanadi, partiyalar va yaroqlilik muddati bilan
- Muddati yaqin va kam qolgan tovarlar ogohlantirishi
- Yetkazib beruvchi nakladnoylari va boshlang‘ich katalogni Excel’dan import
Boshqaruv
- Smenalar, xarajatlar, mijozlar, yetkazib beruvchilar
- Sotuvlar tahlili: kunlik dinamika, eng ko‘p sotilganlar
- Super-admin: dorixonalar, obunalar, bloklash
- Uch til: o‘zbek, rus, tojik
Arxitektura
Muhim muhandislik qarorlari
Hisob-kitob ikki tomonda bir xil
Chegirma va jami summa formulasi mijozda ham, serverda ham aynan bir xil. Kassir ekranda ko‘rgan summa server hisoblagan summaga har doim teng.
Qoldiq — donada
Tovar qadoqda ham, donada ham sotiladi. Qoldiq faqat donada saqlanadi, qadoq esa hisoblanadi — shunda “yarim qadoq” xatolari bo‘lmaydi.
Og‘ir kutubxona — faqat kerak joyda
Excel o‘qish kutubxonasi katta, shuning uchun import sahifalari alohida yuklanadi (lazy). Kassa sahifasi tez ochiladi.