Introduction
Saalari is a web application to view the latest salary trends across the globe.
Problem Statement
The application needed to collect salary data from the users in an easy intuitive way. The data also had to be shown in a simple convenient way. Signing up users was not necessary and would be counterproductive.
Sending weekly submitted salary data to the users was also a project requirement.
We generated a CSV file with all of the week’s submitted salary data. Created a CORN job that sends the generated CSV to the user’s email.
Objectives
Build a simple but lightning-fast web application to
➡️ Collect salary data
➡️ Allow users to search data with advanced filtering options
➡️ Send weekly salary report to subscribers
Process
The overall app is separated into 3 parts: Frontend, Backend, and Admin panel.
The backend has all the business logic exposed via API endpoints. Frontend & Admin panels render API responses in a suitable way. The backend has a dedicated background jobs mechanism to handle time-consuming tasks.
The front end is built as a single-page application on VueJs. The design system was built using Tailwind CSS.
The admin panel to visualize data and stats is also built on VueJs. Customized Bootstrap is used for admin as it allows for faster development.
The backend is based on Nodejs, Express, Docker, and Redis. Postgres is used as a database.
Approach
Due to the simplicity and clearness of the requirements. We went with the tried and tested waterfall model.
Our developers and designers followed a basic workflow to achieve the goal.
➡️ Design & Server setup
➡️ Frontend
➡️ Backend
➡️ Production deployment
Research
The client needed a fast web app, with a modern look and feel. We decided to use a frontend framework, Vue.js to be specific.
For sending weekly salary data. We first thought about sending the data by creating an email template. But the volume of the submitted data in the week can be high and sending them all exposed, can be a bit overwhelming to read.
So we decided to send the elaborate data in a CSV file. Appeasing to the power viewers who want to further analyze the data. For casual viewers, we included a summary of the week’s salary data.
Designs
The client needed a simple & sleek design that would be easy for human eyes to process.
Conclusion
We successfully finished the project meeting the deadline and all the objectives. The client was extremely pleased with our effort, dedication, and ownership. Plans for the second phase are being made.
We also worked on Phase 2, where people can add organization and see trends through graphs