Selected work
Khanya
From an operational map to the records and evidence behind each activity.

Project overview
A business management SaaS for Inmotus Inc. bringing together field operations, human resources and inventory. I design and develop workflows connecting operational records, evidence, locations, teams and reports, so users can move from an overview to the detail of an activity. Configurable forms adapt to each company's processes, while maps with layers and filters help explore operational information. The work also covers consistent tables, indicators and detail views, with company-scoped permissions and data isolation. Khanya remains in development, with modules at different stages of completion.
My contribution
- Connecting the operational overview with activity details through layered maps, filters, records and evidence.
- Representing each company's processes with configurable forms and workflows for field operations, people and inventory.
- Maintaining shared table, indicator and detail-view patterns across modules.
- Implementing interfaces and business logic together, with company-scoped permissions and tenant isolation.
Screenshots
Technical notes
Architecture
PHP and Laravel with Blade views, JavaScript ES modules, Tailwind CSS and Vite. PostgreSQL supports tenant isolation through tenant identifiers, Eloquent scopes and row-level security.
Interfaces and access
Laravel Sanctum handles API authentication, with capability-based permissions and company context. Filament is used for platform administration; customer workflows have their own interfaces.
Operational visualization
Chart.js, FullCalendar and Konva support charts, scheduling and visual functions. Leaflet is used in location views. Document tooling includes mPDF, jsPDF and PhpSpreadsheet.
Infrastructure and scope
Private S3-compatible storage and queues with Redis/Valkey or database storage support the application; Docker is used in development. Operational modules coexist with partial areas such as CRM and Customers as the product continues to evolve.
Have something in mind?
Let’s talk