Surveyor POS — Documentation
Welcome to the Surveyor POS documentation. This application is a full-featured Point of Sale and management platform built for equipment rental businesses (survey equipment, instruments, field gear, etc.) with support for multi-branch operations, project management, and a dedicated customer portal.
Table of Contents
| Guide | Description |
|---|---|
| Setup & Installation | Server requirements, environment config, first-run steps |
| Features Overview | Every feature explained in one place |
| Admin Guide | Complete guide for system administrators |
| Worker Guide | Day-to-day operations guide for staff |
| Customer Guide | Self-service portal guide for customers |
| FAQ | Frequently asked questions and troubleshooting |
System Overview
Surveyor POS is a Laravel 10 application with three distinct user roles, each with their own authentication guard and portal:
/admin/dashboard → Administrators
/worker/dashboard → Workers (staff)
/user/dashboard → Customers
Core Modules
Rental Management Two parallel rental systems run side by side:
- Day Rentals — equipment is rented by the day at a daily rate (
price_per_day) - Point Rentals — equipment is rented using a point-based pricing system (
price_per_point)
Booking Requests Customers submit equipment booking requests from their portal. Admins and workers review, approve (which auto-creates a rental), or reject with a reason. SMS notifications are sent to the customer at every stage, and to all branch workers immediately when a request is submitted.
Project & Task Management Projects can be created and assigned to customers, with tasks delegated to workers. File uploads and comment threads keep everyone in sync.
Financial Tracking Every rental tracks total price, payments made, late fees, damage fees, discounts, and deposits. Outstanding balances are surfaced in reports and the customer dashboard.
Audit Trail Every significant action (rental created, booking approved/rejected, deposit returned, etc.) is recorded in the audit log with the actor and timestamp.
Tech Stack
| Component | Version |
|---|---|
| PHP | 8.2 |
| Laravel | 10 |
| Database | MySQL |
| Frontend | Tailwind CSS v3, Alpine.js v3, Bootstrap (admin theme) |
| PDF Generation | barryvdh/laravel-dompdf 3.x |
| SMS | Wigal SMS API (frogapi.wigal.com.gh) |
| Auth | Laravel Breeze + Sanctum, multi-guard |
| Testing | PHPUnit 10 |