A full-stack security services, workforce, incident, fleet, and content management platform built with Laravel.
Stalwart Security Operations Platform is a portfolio-ready Laravel application for security companies that need one system for their public website and day-to-day operations. It combines service marketing, quote acquisition, client and guard records, deployments, incident reporting, fleet tracking, staff workflows, notifications, and role-aware administration.
The application is server-rendered with Blade and enhanced with Tailwind CSS and Vite. Its seeded SQLite setup makes the complete workflow easy to evaluate locally without external infrastructure.
- Responsive service catalogue with category and detail pages
- Quote request and contact enquiry workflows
- Published security articles, testimonials, and vacancies
- Database-managed site settings and public content
- Operational dashboard with security-focused activity summaries
- Client, location, guard, deployment, vehicle, and alert management
- Incident intake, assignment, evidence tracking, and status workflows
- Quote-to-client conversion for a smoother sales handoff
- Blog, services, testimonials, careers, and site-settings CMS
- User administration with super-admin, admin, and staff roles
- Module-level permissions for administrative users
- Audit trail for important administrative and staff actions
- Soft-delete archive with restore and permanent-delete controls
- Role-aware dashboard for assigned deployments
- Guard-linked access to relevant clients and sites
- Deployment updates and handover notes
- Incident reporting with optional evidence uploads
- In-app notifications and read-state tracking
- Laravel authentication, validation, CSRF protection, and password hashing
- Database-backed sessions, cache, queues, and notifications
- Eloquent relationships, JSON attributes, and soft deletion
- SQLite by default, with Laravel-supported database drivers available through configuration
- Automated feature and unit testing with PHPUnit
| Layer | Technology |
|---|---|
| Backend | PHP 8.3, Laravel 13 |
| Frontend | Blade, Tailwind CSS 4, Vite 8 |
| Database | SQLite (default) |
| Authentication | Laravel session authentication with custom roles and permissions |
| Async and state | Database queue, cache, and sessions |
| Testing | PHPUnit 12 |
| Code quality | Laravel Pint |
The current build does not depend on Livewire, Vue, React, Bootstrap, a payment gateway, or an AI service.
- PHP 8.3 or newer
- Composer 2.7 or newer
- Node.js 20 or newer with npm
- PHP extensions required by Laravel, including PDO SQLite
- Git
git clone https://github.com/seunoseya44-tech/stalwart-security-operations-platform.git
cd stalwart-security-operations-platformcomposer installcp .env.example .env
php artisan key:generateOn Windows PowerShell, use Copy-Item .env.example .env instead of cp if needed.
The default configuration uses SQLite. Create the local database file before migrating:
php -r "file_exists('database/database.sqlite') || touch('database/database.sqlite');"
php artisan migrate --seedTo use MySQL or PostgreSQL, update the DB_* variables in .env before running migrations.
npm install
npm run buildphp artisan storage:linkphp artisan serveOpen http://127.0.0.1:8000 in your browser. For the application server, queue listener, log viewer, and Vite development server in one command, run:
composer run devRunning php artisan migrate --seed creates these local demonstration accounts:
| Role | Password | |
|---|---|---|
| Super Admin | superadmin@stalwartsecurity.ng |
password |
| Operations Admin | admin@stalwartsecurity.ng |
password |
| Field Staff | staff@stalwartsecurity.ng |
password |
These credentials are for local demonstration only. Replace them before deploying to any shared or production environment.
composer test
vendor/bin/pint --test
npm run buildapp/
|-- Http/Controllers/ Public, admin, authentication, and staff workflows
|-- Models/ Security operations and CMS domain models
config/ Application and service configuration
database/
|-- migrations/ Database schema and operational workflows
|-- seeders/ Portfolio demonstration data
resources/
|-- css/ Tailwind CSS entry point
|-- js/ Frontend JavaScript entry point
|-- views/ Blade layouts and public/admin/staff screens
routes/ Web and console routes
storage/ Local runtime files and uploaded evidence
tests/ Feature and unit tests
For the strongest portfolio presentation, add current screenshots to docs/screenshots/ and showcase:
| Screen | What it demonstrates |
|---|---|
| Public homepage | Brand, responsive design, service discovery, and conversion paths |
| Admin dashboard | Operational visibility and information architecture |
| Guard deployments | Workforce assignment and site coverage workflow |
| Incident management | Reporting, assignment, status, and evidence handling |
| Staff dashboard | Role-aware access and field reporting |
A short GIF showing a quote becoming a client record and deployment is especially effective for recruiters and clients.
.env, local SQLite databases, logs, caches, uploaded files, and dependency directories are excluded from Git.- Never commit production credentials or uploaded incident evidence.
- Set
APP_DEBUG=false, use unique administrator passwords, and configure HTTPS in production. - Run queues with a supervised worker and schedule Laravel's task runner in production.
- Review permissions and storage visibility before deploying with real client or guard data.
- Add REST API endpoints and token authentication for mobile staff clients
- Introduce granular policies and automated authorization coverage
- Add deployment scheduling, attendance, and shift conflict detection
- Generate downloadable incident, risk-assessment, and client reports
- Integrate maps and live telemetry for fleet operations
- Add email/SMS escalation channels and queued notification delivery
- Add CI checks for tests, formatting, dependency audits, and frontend builds
- Add Docker-based development and deployment profiles
This project is open-source software licensed under the MIT License.
Developed by seunoseya44-tech.
For project enquiries, add your preferred professional email address or LinkedIn profile here.