Case Study
Project Case Study
Challenges, solutions, outcomes, technical highlights, architecture, and project scale.
⚡
Challenges
Managing both serialized items (phones with IMEI) and non-serialized items (chargers, cases), implementing inventory with auto-generated 6-digit dedicated codes, mixed payment system (cash + cheque), dynamic access control based on Role and Permission, automatic calculation of partner shares from profit/loss, and integration with multiple payment providers.
💡
Solutions
Using InventoryItem model with multiple identifiers (barcode, main_barcode, imei, serial_number), GenericForeignKey for connecting cheques to various sources, dynamic Role-Based Access Control system, Real-time partner share calculation based on current capital, AJAX for fast POS sales, and JWT for mobile app API.
📚
Outcomes
Reduced sales time per item to under 30 seconds with POS, accurate inventory with dedicated codes, automatic cheque tracking with near-due alerts, increased financial transparency among partners, support for 1000+ simultaneous products, and ready-to-use API for mobile app.
🔧
Technical Highlights
Django 6 and DRF, complex database design with 10+ models, GenericForeignKey for cheques, dynamic partner share calculation, real-time search with jQuery, AOS animations, Dark/Light mode, and Web Push Notification.
🏗️
Architecture
Django MVT architecture with 9 specialized apps: account (auth), site_profile (dashboard), locations (places), products, inventory, accounting, fixed_assets, expenses, other_incomes. Uses REST Framework for API, SimpleJWT for auth, and MySQL as the main database.
📐
Project Scale
Large project with 150+ files, 9 apps, 25+ database models, 100+ views, 80+ templates, and support for dynamic access levels via Role and Permission.