This project was built to manage parking lot in a port of Spain. We put status sensors in each stall and flow sensors in the main access routes. A Mango Automation gateway to collect the data from all the sensors and then send this data to the platform which is built in Laravel.
The phases of this project were:
- Initial preparation
- Design
- Development
- Go Live
- Support
Initial preparation
In this phase we collected all the procedures and information from the client, and defined the structure of the project itself. At the end of this phase we delivered a SOW (Statements of Work), with all the details of the project.
Design
We started by designing all the functional processes and the UI and the database structure as well. In this phase we delivered a detailed document with the design of all the functional procedures, the first version of the UI design (it changed a little in development) and Infrastructure of the platform with the database design.
The database models are:
- User
- Company
- Vehicle
- VehicleType
- Zone
- Stall
- StallType
- Plan
- Service
- Reservation
- Payment
- Counter
- CounterRecord
- CounterReport
Development
We developed the platform in Laravel and the frontend in blade/VueJS with TailwindCSS, following TDD. At the middle of the development, I realized that the pages took too much time to load, and it was because the javascript file size was big, even with minification.
So, this is when I decided to test InertiaJS, and it changed my life. It started as a small test, but I ended migrating the whole frontend to InertiaJS, and it was a huge improvement in the performance.
A requirement that was a challenge was the ability to see in real time the stalls' status, and the flow of the vehicles in a custom map.
For this, I created custom VueJS component which takes a map in svg format, and draw the areas depending on the availability and add some popup widows to see statistics by the stall or zone.
For the realtime dashboards, we used Pusher with laravel-echo
Go Live
We used Laravel Forge to manage the servers, and codefresh as CI/CD platform.