2024–2025 · Web application

Raahguzar

Admin application for Raahguzar. Citizens report on the mobile app. Admins and complaint handlers work those complaints here.

Role
Full-Stack Developer
Timeline
2024 – 2025
Domain
Fuel retail operations
Status
Completed
Client
OCAC (Oil Companies Advisory Council), via MT Pixels
Raahguzar dashboard with fuel rates and complaint counts
Dashboard for petrol and diesel rates and complaint volume.

02 / Overview

Overview

Raahguzar is a completed product for OCAC, the Oil Companies Advisory Council. Citizens use the mobile app. I built the admin application only. Admins and complaint handlers use it to manage petrol pumps, prices, areas, users, and complaints. A citizen files a complaint in the mobile app. A handler assigned to that district updates the status. Before this, citizens had no way to report. Complaints include a standard queue and an OGRA queue. OGRA is the Oil and Gas Regulatory Authority, Pakistan's fuel regulator.

03 / Context

Context

Built at MT Pixels for OCAC and completed in 2024–2025. I built the admin application. The citizen mobile app is separate. Handlers are assigned districts and manage complaints in those districts. Staff sign in with email and password. Later requests carry a JWT.

04 / Problem

Problem

Citizens had no way to report a problem at a petrol pump. The mobile app is where they file a complaint. The admin application is where an admin and the complaint handlers work it, and a handler only works the districts they are assigned.

Constraints

  • Admin application only. The citizen mobile app is separate.
  • Roles include Admin, Standard Complaint Handler, and OGRA Complaint Handler.
  • Handlers are assigned districts and work complaints in those districts.
  • Account deletion exists because the Play Store requires it for the mobile app. Deleting an account anonymizes the complaint.

05 / My role

My role

I built the Raahguzar admin application: pumps, prices, areas, users, complaint review, and the public pages the mobile app's Play Store listing needs, including account deletion.

What I built

  • Sign-in, dashboard, profile, and password change
  • Users, including role, status, districts, and locked accounts
  • Petrol pumps and storage tanks, companies, banners, and areas
  • Configuration values
  • Standard and OGRA complaint review: feedback, status, and district assignment
  • Public FAQ, privacy policy, contact, and account deletion

How it is structured

  • Complaint review kept separate from pump, price, and area records
  • Service contracts for pumps, complaints, users, companies, and banners
  • Public pages shipped in the same application as the operation

06 / Approach

Approach

Citizens report in the mobile app. This admin application is where the complaint is handled. A handler is assigned districts and sees the complaints for those districts. Pump, price, and area records are a different job from that review.

07 / Key decisions

Key decisions

01 / Decision

Complaint handlers are scoped to the districts they are assigned.

Reason
A handler should manage complaints for their district, not every complaint in the country. Admin, Standard Complaint Handler, and OGRA Complaint Handler are different roles on that review.
Trade-off
A handler without that district does not work the complaint. Pump and price maintenance stays a separate part of the admin application.
Result
A handler opens a complaint in their district, records feedback, and updates status.

02 / Decision

Account deletion anonymizes the complaint, because the Play Store requires a deletion path for the mobile app.

Reason
Google Play requires a way to delete an account. The citizen-facing app is the mobile app, so that path has to exist for the listing.
Trade-off
The complaint has to remain for the handler after the account is gone, without the citizen's identity.
Result
Deleting the account anonymizes the complaint. FAQ, privacy policy, and contact ship as the public routes beside that.

08 / Solution

Solution

The dashboard shows petrol and diesel prices, complaint volume, and a short complaint list. Admins maintain pumps and storage tanks, companies, banners, areas, users, and configuration. A handler assigned to a district reviews that district's complaints: status and feedback. Public routes cover the FAQ, privacy policy, contact, and account deletion for the mobile app's Play Store listing.

Raahguzar role list for staff access
Role list for Admin, Standard Complaint Handler, and OGRA Complaint Handler.

09 / Stack

Methods and technology

Methods

  • 01Complaint review separate from pump and price records
  • 02Standard and OGRA complaint queues
  • 03Handlers assigned to districts
  • 04Account deletion anonymizes the complaint, for the Play Store rule

Technology

  • 01Angular
  • 02TypeScript
  • 03RxJS
  • 04PrimeNG
  • 05PrimeFlex
  • 06Chart.js
  • 07JWT

10 / Scope

Scope

What I built
The admin application. Citizens report in the mobile app, which is separate.
Roles
Admin, Standard Complaint Handler, and OGRA Complaint Handler. Handlers are assigned districts.
Account deletion
Required for the Play Store listing. Deleting an account anonymizes the complaint.

11 / Learnings

Learnings

  • Account deletion anonymizes the complaint instead of removing it, so a handler can still close the record after the citizen is gone.