CNG360 – Cylinder Testing & Certification Platform
HOME - case studies - cng360 cylinder testing certification
CNG360 – Cylinder Testing & Certification Platform

Industry
CNG / Alternative Fuel & Automotive
Region
West Africa (Nigeria)
Project Type
IoT + Compliance Platform
Timeline
10 Months
Team Size
4 Engineers
Platforms
Web (Angular + ASP.NET Core)
Client Overview
The client is an Authorised CNG Cylinder Testing Center operating in Lagos, Nigeria — responsible for inspecting, testing, and certifying compressed gas cylinders fitted across a wide range of vehicle types in the region. As an authorized testing facility, the center is legally mandated to conduct rigorous physical inspections and issue compliance certificates for cylinders carrying CNG, LPG, Hydrogen, Nitrogen, and Oxygen — across Auto, Car, Bus, Tempo, LCV, and HCV vehicle categories.
The center serves a network of dealers (testing agents) who bring in customer vehicles for inspection, a growing base of vehicle-owning customers tracking their own certification status, and government regulators who require read-only visibility into compliance records. With cylinder certificates carrying fixed expiry periods and real safety consequences for non-compliance — expired cylinders risk pressure failure and casualties — proactive renewal management and accurate digital records are not optional. They are safety-critical.
Challenges & Problem Statement
As the testing center's vehicle and dealer network grew, managing cylinder inspections and certifications through paper-based records and manual communication became operationally unsustainable:
- Paper certificate records with no traceability: Test certificates were issued as physical documents with no central registry. There was no reliable way to look up a vehicle's certificate history, verify authenticity, or track which dealer had conducted the test.
- No proactive expiry management: Vehicles approaching certificate expiry were identified only when the owner remembered — or when they arrived for a new test already expired. There was no systematic way to alert customers and dealers before the deadline.
- Fragmented dealer and customer management: Dealers managed their customer portfolios manually. When a customer moved their vehicle to a different dealer or testing center, there was no controlled handover — records were duplicated or lost entirely.
- No government visibility: Regulatory authorities had no direct view into the center's compliance records without requesting physical documentation — a slow and error-prone process.
- Manual inspection data capture: Inspectors recorded 40+ precise measurements — pressure readings, wall thickness, weight analysis, expansion values — by hand. Errors in transcription directly affected the integrity of issued certificates.
- No cascade certificate support: Vehicles with cascade (multi-cylinder) setups required separate documentation that the existing process handled inconsistently, creating compliance gaps.
Project Overview
TTPL designed and delivered CNG360 — a full-stack digital platform that manages the complete lifecycle of compressed gas cylinder testing and certification for vehicles. Built on Angular with an ASP.NET Core 8 Clean Architecture API, SQL Server, and deployed on Azure, the platform connects six distinct user roles — SuperAdmin, Admin, Dealer, Feeder, Customer, and Government — through a unified, role-aware system.
The platform covers the end-to-end testing workflow: dealer and customer registration, vehicle and cylinder onboarding, physical inspection data capture across 40+ technical fields, on-demand PDF certificate generation for both standard vehicles and cascade assemblies, OTP-secured vehicle transfers between dealers, and a 4-stage automated expiry reminder system via email and SMS. Government users have read-only compliance visibility across all records. The system is live in production, deployed on Azure with dedicated CI/CD pipelines for both frontend and backend services.
Approach
TTPL treated CNG360 as a safety-critical compliance system from day one — not a standard business application. The inspection data model was designed with the physical certificate as the source of truth: every field on the digital form maps directly to a field on the issued PDF certificate, ensuring no gap between what was inspected and what was certified.
The architecture follows Clean Architecture across seven discrete layers — Domain, Application, Infrastructure, API, and three BuildingBlocks libraries — with CQRS separation between read and write operations. This structure made it straightforward to iterate through multiple client demo cycles (14+ demos) while keeping the domain model stable and the business rules independently testable.
Role boundaries were modelled explicitly at the domain level rather than as UI-layer conditions. Each role's data scope — which vehicles, customers, dealers, and certificates they can see and act on — is enforced at the API authorization layer before any data reaches the frontend. The Angular route guard layer provides a consistent UX enforcement layer on top.
The expiry management system was built as a configurable notification engine: reminder intervals (30 days, 15 days, 7 days, and same-day expiry) are configurable, and each stage triggers both an email and SMS alert to the customer and their assigned dealer — with the expiry email including the testing center's full contact information to make it easy to act immediately.
Azure DevOps pipelines were set up independently for the API (Azure App Service, Canada Central) and the Angular frontend (Azure Static Web Apps), enabling the two services to be built, tested, and deployed on separate release cadences without coupling.
Solution Delivered
Six-Role RBAC with Scoped Data Access
A six-tier role model (SuperAdmin, Admin, Dealer, Feeder, Customer, Government) governs every screen and action in the platform. SuperAdmin manages the full network including Admins and Dealers. Admin manages Dealers and Customers but cannot delete records. Dealers manage their own customer portfolio and vehicle records. Feeders — testing center operators created by Dealers — can add customers and capture test data but operate only within their assigned dealer scope. Customers see only their own vehicles and certificates. Government users have read-only visibility across all compliance records. Every role boundary is enforced at both the Angular route guard level and the ASP.NET Core 8 API authorization middleware — no role can access data or actions outside their defined scope.
Structured 40+ Field Cylinder Inspection Workflow
The cylinder testing workflow captures the complete physical inspection dataset required for a valid compliance certificate: vehicle identification and cylinder specification; inspection results for valve condition, visual integrity, cylinder threading, and internal inspection; dimensional measurements including cylinder diameter and wall thickness at shell and bottom (both calculated minimum and observed values); weight analysis covering original tare weight, actual weight, and loss-of-weight in both kg and percentage; pressure test data including working pressure, test pressure, total expansion, and permanent expansion in ml and percentage; manufacturing date, last testing date, test date, and next test due date; and a final Pass/Fail result with remarks and reference photographs. Field-level validation ensures data integrity before any certificate is issued.
On-Demand PDF Certificate Generation — Vehicle and Cascade
The platform generates two types of compliance certificates on demand as professionally formatted PDFs. Standard vehicle certificates carry the full cylinder inspection dataset, test results, photographs, and compliance dates for a single-cylinder vehicle setup. Cascade certificates cover multi-cylinder assemblies — each with a unique cascade number — tracked and certified independently. Both certificate types are generated using DinkToPdf with precise formatting that matches the testing center's physical certificate layout, and are downloadable directly from the platform by authorized users.
4-Stage Automated Expiry Reminder System
Certificate expiry management is fully automated. The platform sends proactive reminder notifications at four configurable stages: 30 days before expiry, 15 days before expiry, 7 days before expiry, and on the expiry date itself. Each reminder is delivered by both email and SMS to the vehicle owner and their assigned dealer, including the testing center's full contact details in the email body to make immediate rebooking easy. This system replaces reactive, manual follow-up and directly reduces the number of vehicles operating on expired certificates — which carry real safety risks.
OTP-Secured Vehicle Transfer Between Dealers
When a vehicle owner switches to a different testing dealer, the transfer is handled through a secure, auditable OTP flow. The new dealer initiates the transfer by entering the vehicle number and the customer's registered email address. An OTP is dispatched to the customer for identity verification. On successful OTP validation, the vehicle record — along with its full certificate history — moves under the new dealer's scope, and the previous dealer loses access. This prevents unauthorized vehicle record access while maintaining a continuous, unbroken compliance history for every vehicle regardless of dealer changes.
Feeder Role for Testing Center Operators
The Feeder role was introduced to support the operational reality of testing centers where specific staff members handle customer intake and data entry independently of the dealer's administrative functions. Feeders are created and managed by Dealers, can add new customers and capture vehicle details and cylinder test data, and see only customers and vehicles within their assigned dealer's scope. This separation allows testing centers to delegate data entry to inspection staff without granting them dealer-level administrative access.
Real-Time Renewal Dashboard with Clickable Drill-Down
Every role's dashboard surfaces live renewal intelligence: total customers, total dealers, and certificates expiring this week, this month, and next month — each as a clickable summary that drills directly into the filtered list of vehicles approaching or past their due date. Admins and SuperAdmins can additionally export dealer and customer data as Excel files for offline reporting. This gives the testing center's management team a continuous, action-ready view of their compliance workload without manual reporting.
Azure Deployment with Dual CI/CD Pipelines and Serilog
The Angular frontend is hosted on Azure Static Web Apps and the ASP.NET Core 8 API on Azure App Service (Canada Central), each with its own Azure DevOps CI/CD pipeline for independent build and release cycles. Serilog structured logging writes to a dedicated log database (cng360logs) isolated from the operational database (cng360), preventing logging volume from affecting application performance. Vehicle and cylinder reference photographs are stored in Azure Blob Storage, linked to certificate records and accessible on demand from any authorized device.
Result
CNG360 replaced a paper-based, manually managed cylinder testing process with a unified digital compliance platform serving the full dealer and customer network of an authorized testing center in Lagos, Nigeria. Cylinder test certificates are now issued as digitally generated, formatted PDFs with complete inspection data — eliminating handwritten records and their associated transcription errors.
The 4-stage automated expiry reminder system proactively notifies vehicle owners and dealers before certificates lapse, directly reducing the number of vehicles operating out of compliance. The OTP-secured vehicle transfer system gives the testing center a controlled, auditable mechanism for managing dealer changes without losing certificate history. Government regulators now have live read-only access to compliance records without requiring manual documentation requests. The platform is live in production on Azure, serving all six user roles through a single unified system.
Client Benefits
Digital Compliance Records with Full Traceability
Every cylinder test is recorded digitally with the full inspection dataset, reference photographs, test dates, and Pass/Fail result — creating a complete, searchable compliance history for every vehicle and cylinder in the network.
Proactive Expiry Management — 4 Reminder Stages
Automated email and SMS alerts at 30, 15, and 7 days before expiry — plus a same-day notification — ensure customers and dealers act before certificates lapse, reducing compliance gaps and safety risk.
On-Demand PDF Certificates for Vehicles and Cascades
Both standard vehicle certificates and cascade assembly certificates are generated on demand as formatted PDFs, downloadable from any authorized device — eliminating paper certificate filing and manual distribution.
Secure, Auditable Dealer Handovers
OTP-secured vehicle transfers give the testing center a controlled mechanism for moving vehicles between dealers — maintaining continuous certificate history and preventing unauthorized record access.
Government Compliance Visibility
Regulatory authorities have real-time read-only access to all certificate and vehicle records, eliminating the need for manual documentation requests and accelerating compliance verification.
Operational Scalability Across Dealers and Feeders
The Dealer and Feeder role structure allows the testing center to scale its network of agents and inspection staff without administrative overhead — each operating within their own precisely scoped access environment.
Client Feedback
"Before CNG360, we were chasing customers manually for renewals and issuing paper certificates that had no backup. Now every test is recorded, every certificate is generated automatically, and our dealers know exactly which vehicles are coming due. The expiry reminder system alone has made a visible difference in how many vehicles come in on time."
- Adebayo O. Fashola, Operations Manager, Authorised CNG Cylinder Testing Center, Lagos
Technologies Used


