Why Darji - Tailor Shop Management System
What makes it better
than the alternatives
- 01
Versioned measurements
Every garment type has custom fields (set in Settings), and the system highlights what changed between measurement versions for the same customer.
- 02
QR + barcode receipts
A4, A5 and 80 mm thermal receipts with a QR code the customer scans to track the order, plus a Code128 barcode for quick lookup.
- 03
Kanban order board
Drag orders through Received → Cutting → Sewing → Ready → Delivered, filter by overdue/due/tailor, see the status timeline.
- 04
Daily cash profit
The Accounts dashboard shows collected minus expenses for today, this week, this month or any date range, with Excel and PDF export.
- 05
Languages built in
English, Bangla, Hindi, Urdu, Arabic, Spanish, French, Portuguese, Turkish, Indonesian, with right-to-left layout for Arabic and Urdu.
Orders
- Kanban board (Received → Cutting → Sewing → Ready → Delivered) and list view
- Multiple garments per order
- customer or shop fabric (shop stock deducted automatically)
- Tailor assignment
- status timeline
- overdue and due filters
- A4
- A5 and 80 mm thermal receipts with QR code (customer tracking) and Code128 barcode
- Garment tags
- PDF download
- WhatsApp share
- Excel export
Customers
- Customer profiles with lifetime value
- amount due
- order history
- Versioned measurements per garment type
- changes highlighted
- Inches or centimetres (shop setting)
- Customer lookup by name or phone
- Excel export
Accounts
- Any payment methods (cash
- bKash
- Nagad
- bank
- card — configured in Settings)
- Advances and dues tracked per order
- Expenses with categories
- paid-to field
- notes
- Daily cash profit (collected minus expenses)
- Ledger (all payments and expenses
- filterable by type and method)
- Outstanding dues list with age
Reports
- Sales and collections (total
- by method
- chart)
- Profit and loss (sales minus expenses)
- Staff work (orders completed
- garments sewn)
- Garments report (count by type)
- Payment methods breakdown
- Any date range (today
- this week
- this month
- last month
- custom)
- Excel and PDF export
Staff
- Staff records (name
- phone
- address
- piece rate
- active/inactive)
- Piece-rate work tracking (garments completed)
- Wage payments (recorded as expenses)
- User accounts linked to staff (optional)
- Roles with 19 fine-grained permissions (view/create/edit/delete orders
- customers
- payments
- expenses
- inventory
- staff
- settings
- backups
- activity log)
Inventory
- Fabrics and materials (name
- unit
- quantity
- low-stock threshold)
- Stock in and out (manual movements)
- Automatic deduction when an order uses shop fabric
- Movement history per item
- Low-stock alerts
- Excel export
Admin & Settings
- Shop profile (name
- logo
- address
- phone
- currency
- timezone
- units)
- Garment types and their measurement fields (fully configurable)
- Payment methods (add/remove/rename)
- Users and roles (editable permissions)
- Activity log (who did what
- when)
- One-click and scheduled database backups (local or S3-compatible storage)
- Backup restore from the UI
- Web installer (requirements check
- database setup
- shop and owner creation)
Public Pages
- Shop's public page (name
- logo
- address
- phone
- opening hours)
- Order tracking page (customer enters order number or scans QR code
- sees status and timeline)
- Optional product landing page (marketing site mode)
Authentication & Security
- Email or phone login (Laravel Fortify)
- Password reset via email
- Two-factor authentication (TOTP
- optional per user)
- Passkey support (WebAuthn
- optional per user)
- Session timeout (configurable)
- Active/inactive user flag
- Demo mode (read-only
- one-click logins for testing)
| Language | Version | Framework | Used for | Share of code |
|---|---|---|---|---|
| TypeScript (React) | — | — | Front-end | 47% |
| PHP | — | — | Web, API | 38.7% |
| SQL | — | — | Database | 9.7% |
| TypeScript | — | — | Front-end | 4.2% |
| CSS | — | — | Styling | 0.3% |
| Shell | — | — | Scripts | 0% |
- Primary language
- PHP 8.3
- Framework
- Laravel 13
- Database
- MySQL 5.7 / MariaDB 10.4 / SQLite 3
- Authentication
- Laravel Sanctum session cookies + Fortify (login, password reset, two-factor)
- Licence
- Single-site
- Screens
- 42
- Database tables
- 26
- Supported languages
- 10 languages (English, Bangla, Hindi, Urdu, Arabic, Spanish, French, Portuguese, Turkish, Indonesian) with RTL for Arabic and Urdu
- Browser support
- Modern browsers (Chrome, Firefox, Safari, Edge)
| Minimum | Recommended | |
|---|---|---|
| CPU | 1 vCPU | 2 vCPU |
| RAM | 2 GB RAM | 4 GB RAM |
| OS | PHP 8.3+, Node.js 22+ (build only), MySQL 5.7+ / MariaDB 10.4+ or SQLite 3 | PHP 8.3+, Node.js 22+ (build only), MySQL 5.7+ / MariaDB 10.4+ or SQLite 3 |
| Est. monthly hosting | $10 | $10 |
```bash docker compose up -d --build # Open http://localhost:8080 ```
```bash # Install dependencies sudo apt update && sudo apt install -y php8.3-fpm php8.3-cli php8.3-mysql php8.3-mbstring php8.3-xml php8.3-curl php8.3-zip php8.3-gd php8.3-bcmath nginx mariadb-server composer # Clone and build git clone <repo> /var/www/darji cd /var/www/darji composer install --no-dev --optimize-autoloader npm ci && npm run build # Configure cp .env.example .env php artisan key:generate # Edit .env: set APP_URL, database credentials php artisan migrate --force # Set permissions sudo chown -R www-data:www-data /var/www/darji/storage /var/www/darji/bootstrap/cache sudo chmod -R 775 /var/www/darji/storage /var/www/darji/bootstrap/cache # Nginx config (see docs/DEPLOYMENT.md for full example) sudo nano /etc/nginx/sites-available/darji sudo ln -s /etc/nginx/sites-available/darji /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx # Cron for scheduled backups crontab -e # Add: * * * * * cd /var/www/darji && php artisan schedule:run >> /dev/null 2>&1 ```
```bash # Upload files via FTP/SFTP to public_html/darji # In cPanel File Manager or SSH: cd public_html/darji composer install --no-dev --optimize-autoloader npm ci && npm run build cp .env.example .env php artisan key:generate # Edit .env: set APP_URL, database from cPanel MySQL # Point domain to public_html/darji/public in cPanel # Open https://yourdomain.com and follow installer # Cron job in cPanel: * * * * * cd /home/username/public_html/darji && php artisan schedule:run >> /dev/null 2>&1 ```
```bash composer install npm ci npm run build cp .env.example .env php artisan key:generate php artisan serve # Open http://127.0.0.1:8000 ```
Quality report
Manually reviewedHow to read the quality report
What this is. Every project on Vibe96 goes through an automated audit of its source code before a reviewer in Dubai checks it by hand. The score is out of 100; 75 is the minimum to be listed, and any single failing check blocks a listing regardless of the score.
- Security
- No real credentials in the code, every data-changing route protected, admin areas role-gated, no SQL built from user input.
- Code structure
- A developer can navigate and extend it: clear module boundaries, no giant files, little copy-paste.
- Docs & completeness
- The setup guide, example config, schema and required files the builder committed to are actually in the archive.
- Dependency health
- Packages pinned, no known critical vulnerabilities, no abandoned libraries in production paths.
- Build & deploy
- A clean machine can restore, build and start it by following the shipped instructions.
Warnings are problems that didn't block the listing; they stay visible here until a later version clears them. The audit reads the code — it does not run it — so always try the live demo before you buy. Lines of code are counted from the same audited archive.
87/ 100
Automated audit score
✓ Passed the auditReviewer notes (5 minor)
Weak default database passwords in docker compose and documentation; strong authentication on all mutating endpoints; minor ownership gaps on read-only routes; good module separation with some duplication and oversized utility files; dependencies mostly current; a few outdated packages but no known critical vulnerabilities; several missing foreign-key indexes and one unscoped delete; no injection found. None of these stop the software from working; the developer has been told and improvements come in a future update.
Versions & updates
No updates yet. New versions appear here with a changelog.
Buyers receive updates free for 1 year.
What you get
- </>Full source codeThe complete audited source, delivered as a download from your account. No obfuscation.
- ▤DocumentationSetup guide, architecture notes, CLAUDE.md and AGENTS.md.
- ↻One year of updatesEvery new version the builder publishes, free for 12 months.
- ♧30 days of supportInstallation and defect support through Vibe96 tickets.