Why Shipzo - Complete Querier Service
What makes it better
than the alternatives
- 01
Order Management
Order Management
- 02
Dispatch & Routing
Dispatch & Routing
- 03
Driver Mobile App (PWA)
Driver Mobile App (PWA)
- 04
COD & Finance
COD & Finance
- 05
Create shipment form (Makani address resolver, service selection, COD toggle)
Create shipment form (Makani address resolver, service selection, COD toggle)
Order Management
- Create orders via admin form or merchant portal (customer details
- service type
- COD amount
- Makani resolver)
- Pickup requests from merchants (status: Pending / Collected / Cancelled)
- Parcel lifecycle: Pending → Assigned → Out for Delivery → Delivered / Failed / Returned
- AWB label generation with QR code (PDF download)
- Bulk import and export (CSV)
- Order editing (before dispatch) and cancellation
Dispatch & Routing
- Live driver map (OpenStreetMap via Leaflet
- positions polled every 10s)
- Unassigned parcel pool with one-click or bulk assignment to drivers
- Driver workload view (current tasks
- COD holding
- status: Available / On Route / Break / Off Duty)
- Route planner: multi-stop map
- drag-to-reorder
- optimiser (nearest-neighbour heuristic)
- Manual unassign with reason logging
- Driver status control (admin can mark Available / Break / Off Duty)
Driver Mobile App (PWA)
- Installable PWA at /driver/ (manifest.json
- service worker for offline)
- Task list: pickups and deliveries sorted by sequence
- swipe actions
- Barcode/QR scanner for AWB lookup and proof-of-delivery
- Delivery actions: Delivered (photo + signature + notes)
- Failed (reason + photo)
- Handback (reason + condition + photo)
- Offline queue with idempotency (client-generated action IDs prevent replays)
- GPS position sync (background geolocation API)
- Driver status toggle (Available / Break / Off Duty)
- Debrief submission: scan returned parcels
- declare cash collected
- resolve exceptions
Merchant / Customer Portal (PWA)
- Installable PWA at /portal/ for merchants and individual customers
- Dashboard: active shipments
- pending pickups
- recent deliveries
- COD balance
- Create shipment form (Makani address resolver
- service selection
- COD toggle)
- Track parcels by AWB (timeline
- current status
- driver ETA
- proof-of-delivery images)
- Pickup request submission
- Billing: invoice list (Pending / Paid)
- PDF download
- COD ledger (expected / collected / invoiced / settled)
- Profile management (name
- phone
- password reset)
- Export shipment history (CSV)
COD & Finance
- Collection ledger: expected → collected → reconciled → settled (filterable by driver
- merchant
- date range)
- Driver cash holdings (real-time balance per driver)
- Reconciliation sessions: scan returned parcels
- count cash
- log discrepancies
- sign off
- Merchant billing: generate invoices for delivered parcels in a date range (PDF with line items
- COD collected
- service fees
- net payable)
- Invoice management (mark paid
- view statement)
- Daily/weekly/monthly COD analytics charts
Driver Debriefing
- Open debrief session for a driver (auto-loads expected parcels from route)
- Scan returned parcels (AWB barcode
- handback reason
- condition
- photo)
- Cash reconciliation: declare collected amount
- system calculates expected vs actual
- log difference
- Exception logging (missing parcels
- damaged goods
- customer disputes) with assignee and resolution tracking
- Sign-off with notes (locks session
- updates COD ledger)
- Session history (Open / Closed
- filterable)
Analytics & Reports
- KPI dashboard: today's deliveries
- success rate
- revenue
- active drivers
- pending pickups
- Delivery analytics: volume trend
- status distribution (pie chart)
- failure reasons
- emirate mix
- merchant performance
- Revenue analytics: daily/weekly/monthly charts
- breakdown by merchant and service type
- SLA metrics: on-time delivery %
- average delivery time
- trend over date range
- Driver performance: deliveries
- success rate
- COD collected
- average time per stop
- Pre-built reports: Daily Manifest
- Driver Performance
- COD Summary
- Merchant Activity
- Failed Deliveries (CSV export)
Notifications
- Event-driven templates: Parcel Created
- Out for Delivery
- Delivered
- Failed
- Pickup Requested
- Invoice Generated
- Channels: SMS
- Email (mocked in demo
- NotificationChannel interface for real integrations)
- Template editor (subject
- body with {{awb}}
- {{customerName}}
- {{status}} placeholders)
- Notification history log (recipient
- channel
- status
- timestamp)
- Retry failed notifications
Settings & Administration
- User management: create/edit users (Admin
- Super Admin
- Dispatcher
- Finance
- Warehouse
- Driver roles)
- assign to driver/merchant/customer
- Role-based permissions (route guards in web.php and middleware
- API endpoints gated by role)
- Branding: company name
- logo upload
- primary/secondary/accent colours (hex)
- tagline
- hub coordinates
- Service catalog: name
- base rate
- per-km rate
- active toggle
- Parcel statuses: customise labels and colours (Pending
- Assigned
- Out for Delivery
- Delivered
- Failed
- Returned
- Cancelled)
- Audit log: every mutating action (actor
- entity
- details
- IP
- timestamp)
- General settings: company address
- TRN
- contact details (used in invoices and emails)
Public Tracking
- Anonymous parcel lookup at /track (AWB input
- no login required)
- Timeline view: status history with timestamps
- driver name
- location updates
- Live ETA when out for delivery (calculated from driver GPS and next stop)
- Proof-of-delivery display (photo
- signature
- recipient name
- timestamp) once delivered
- Merchant/customer can track their own parcels in the portal (same data
- authenticated)
| Language | Version | Framework | Used for | Share of code |
|---|---|---|---|---|
| PHP | — | — | Web, API | 60% |
| CSS | — | — | Styling | 20.5% |
| SQL | — | — | Database | 12.7% |
| HTML | — | — | Front-end | 3.7% |
| JavaScript | — | — | Front-end | 3.1% |
| Shell | — | — | Scripts | 0.1% |
- Primary language
- PHP 8.3
- Framework
- Laravel 13
- Database
- MySQL 8
- Authentication
- Session cookie (Laravel Auth)
- Licence
- Single-site
- Screens
- 42
- Database tables
- 29
- Supported languages
- English only
- Browser support
- Modern browsers (Chrome, Firefox, Safari, Edge)
| Minimum | Recommended | |
|---|---|---|
| CPU | 1 vCPU | 2 vCPU |
| RAM | 2 GB RAM | 4 GB RAM |
| OS | Ubuntu 22.04+ / Debian 11+ with PHP 8.3-FPM, MySQL 8, Nginx or Apache | Ubuntu 22.04+ / Debian 11+ with PHP 8.3-FPM, MySQL 8, Nginx or Apache |
| Est. monthly hosting | $15 | $15 |
```bash cd /path/to/archive APP_KEY="base64:..." DB_PASSWORD="choose-one" docker compose up --build # -> http://localhost:8080 ```
```bash sudo apt update && sudo apt install -y nginx mysql-server php8.3-fpm php8.3-mysql php8.3-xml php8.3-mbstring php8.3-curl php8.3-gd php8.3-zip composer cd /var/www sudo tar -xzf /path/to/archive.tar.gz cd "Laravel Project" composer install --no-dev --optimize-autoloader cp .env.example .env php artisan key:generate # Edit .env: set APP_ENV=production, APP_DEBUG=false, DB_* credentials php artisan migrate --force php artisan db:seed --class=ReferenceDataSeeder --force php artisan config:cache && php artisan route:cache && php artisan view:cache sudo chown -R www-data:www-data storage bootstrap/cache sudo chmod -R 775 storage bootstrap/cache # Copy deploy/nginx.conf to /etc/nginx/sites-available/shipzo, edit domain and root path, then: sudo ln -s /etc/nginx/sites-available/shipzo /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx # Optional: sudo cp deploy/shipzo-scheduler.service /etc/systemd/system/ && sudo systemctl enable --now shipzo-scheduler ```
```bash # Upload archive via File Manager, extract to public_html/shipzo cd public_html/shipzo/Laravel\ Project php composer.phar install --no-dev --optimize-autoloader cp .env.example .env php artisan key:generate # Edit .env in cPanel File Manager: set DB_HOST, DB_DATABASE, DB_USERNAME, DB_PASSWORD from MySQL Databases php artisan migrate --force php artisan db:seed --class=ReferenceDataSeeder --force php artisan config:cache && php artisan route:cache && php artisan view:cache chmod -R 775 storage bootstrap/cache # Point domain document root to public_html/shipzo/Laravel Project/public in cPanel # Add cron: * * * * * php /home/user/public_html/shipzo/Laravel\ Project/artisan schedule:run >> /dev/null 2>&1 ```
```bash cd "Laravel Project" composer install cp .env.example .env php artisan key:generate # Edit .env: set DB_DATABASE=shipzo, DB_USERNAME=root, DB_PASSWORD= php artisan migrate --seed php artisan serve # Open http://localhost:8000 # Demo accounts: admin@shipzo.demo / Admin@123, driver@shipzo.demo / 1234, merchant@shipzo.demo / Admin@123 ```
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.
What to know before you buy
5 non-blocking findings shown publicly: composer dependencies are current; no known critical vulnerabilities detected; database access is mostly safe; minor schema gaps and a few unindexed foreign keys; weak demo defaults in .env.example; no real credentials found; good separation of concerns with minor duplication and some oversized service files; strong authentication and role guards; minor ownership gaps on read endpoints. The seller has been notified; fixes ship in the next version.
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.