Journey
The Ajackus team took end-to-end ownership of the OpexGenie platform — from architecture design through to cloud deployment — operating as the core engineering function for the full product build. The Ajackus team deliberately prioritised the multi-operator parsing architecture first, recognising that the platform’s commercial value depended on supporting DU, Etisalat, and STC simultaneously from day one.
Cloud Infrastructure Architecture on AWS
The Ajackus team designed the platform on Amazon AWS with Docker containerisation, selecting this architecture specifically for its ability to scale horizontally as invoice volumes grow. Rather than building for OpexGenie’s current invoice volume, the architecture was scoped for the client’s projected growth, ensuring that processing a multiple of the current invoice count would not require infrastructure rearchitecting. Spring Boot was chosen for the backend services for its proven performance characteristics under concurrent data processing workloads — critical when processing hundreds of pages of invoice data per enterprise client per month.
Multi-Operator Invoice Ingestion and Dissection Engine
The core engineering challenge of the platform was building an invoice ingestion layer that could accept invoices from multiple operators — each with distinct billing formats, data structures, and field conventions — and normalise them into a unified data model. The Ajackus team built operator-specific parsing modules for DU, Etisalat, and STC, each handling the nuances of that operator’s invoice format before passing normalised data to the shared validation and analytics layer. PostgreSQL was selected as the data store for its reliability with structured tabular data at scale, and for the query performance characteristics needed when comparing thousands of line items against contract rate-card entries in real time.
Contract Validation Logic
The commercial engine of the platform is the contract validation layer, which compares each extracted invoice line item against the applicable contracted rate for that service, circuit, or SIM. The Ajackus team built this as a configurable rules engine, allowing OpexGenie to upload client-specific rate cards and define the comparison logic appropriate to each contract structure. When a discrepancy is identified — a charge above contracted rate, an unauthorised service, or a billing code not present in the contract — the system flags it with the information needed to initiate a dispute or recovery claim. This design, deliberately separating the contract configuration from the validation engine, allows new clients to be onboarded without changes to the underlying code.
Analytics and Reporting Dashboard
The Ajackus team built the client-facing analytics interface using Angular and ChartJS, giving enterprise finance teams and procurement managers a consolidated view of their telecom spend. The dashboard surfaces operator-level cost breakdowns, month-on-month trend analysis, discrepancy summaries by category and severity, and total recoverable-cost calculations. The choice of ChartJS within the Angular framework was driven by the requirement to render complex, multi-series financial data clearly within the same session as invoice review.
Testing and Quality Assurance with JUnit
Given the financial consequences of incorrect validation — a false positive discrepancy triggers a commercial dispute; a false negative means a missed recovery — the Ajackus team invested heavily in automated testing using JUnit. The validation logic was built with comprehensive unit and integration test coverage, ensuring that the comparison engine produces consistent, accurate results across the full range of invoice formats, contract structures, and edge cases encountered in real enterprise billing data.