Introduction
Salari is a web application designed to provide insights into the latest salary trends across Africa.
Problem Statement
The challenge was to create an application that could:
- Collect salary data from users in an intuitive and frictionless way.
- Display aggregated data in a simple and accessible format.
- Avoid requiring user sign-ups, as they would reduce participation.
- Deliver weekly salary reports to subscribers.
To meet the reporting requirement, a system was implemented to generate a CSV file containing all salary submissions from the week. A CRON job automatically emails this file to subscribers.
Objectives
The project aimed to build a simple but high-performance application that would:
- Collect and store salary data from global users.
- Allow advanced filtering and search of data.
- Send weekly reports in both summary and detailed formats to subscribers.

Process
The application was divided into three main components:
1. Backend
- Business logic exposed via API endpoints.
- Background jobs mechanism to handle time-consuming tasks such as weekly report generation.
- Built with Node.js, Express, Docker, and Redis, with PostgreSQL as the database.
2. Frontend
- Developed as a single-page application (SPA) with Vue.js.
- Design system implemented with Tailwind CSS for modern styling and consistency.
3. Admin Panel
- Built on Vue.js with customized Bootstrap for fast development.
- Provides data visualization and access to platform analytics.
Approach
Given the clarity of requirements, a waterfall development model was adopted. The workflow was structured as follows:
- Design & Server Setup
- Frontend Development
- Backend Development
- Production Deployment
Research
Performance and usability were the key drivers of research and implementation decisions.
- Frontend Framework: Vue.js was chosen to ensure fast rendering and a responsive interface.
- Weekly Reports: Initially, the idea was to embed all submitted salary data in an email template. However, due to potentially high data volume, this approach risked being overwhelming.
- Final Solution: Reports were sent as a CSV file for advanced users who wanted in-depth analysis, accompanied by a weekly summary for casual users.
Design
The design was intentionally simple and sleek, focusing on readability and ease of processing large sets of salary data.



Testimonials
Roshan is the best freelancer I have worked with. Top top. He is responsive, understood the brief, and worked with me to clarify some things I wasn’t sure about. He went above and beyond to make sure the goals of the project were delivered on time. I can’t recommend him enough. And I’d be sending him future projects for sure.
Abraham Iyiola Co-Founder/CEO at Saalari
Conclusion
The project was successfully completed, meeting all deadlines and objectives. The client was extremely satisfied with the results, praising the dedication and ownership demonstrated throughout the process.
Following the successful launch, a second phase was completed, introducing additional features and improvements.
