Wise Hustlers โ€” Digital Product & App Development Studio Logo
Get Consultation
Client Partner: Enerxia โ€” a Wise Hustlers product

Enerxia: Oil & Gas ERP Built for Angola

Oil & Gas ยท Enterprise ERP ยท Angola

Enerxia is the ERP Wise Hustlers built, runs and maintains for the Angolan oil and gas sector. Thirty-three business domains share one approvals engine, one numbering service, one unit-of-measure conversion and one audit log โ€” and every Angolan regulatory rule is dated configuration, never code.

Enerxia โ€” the oil & gas ERP built in Angola, for Angola
THE CHALLENGE

Operators and oilfield service companies in Angola run production, procurement and compliance on spreadsheets stitched together by email. That holds until an auditor asks who approved a supplier's bank-detail change, which version of the VAT rule was in force when an invoice was issued, or how a barrel measured in a tank became a line in the production report filed with the ANPG. Imported ERPs answer none of this: the rules that matter in Angola โ€” IVA and AGT withholding, ANPG local-content scoring, SAF-T export, production-sharing cost recovery โ€” are not the rules of Lisbon or Houston, and they change on an effective date.

Core Pain Points Addressed:

  • โŒ No provenance โ€” nobody could say who approved a change, or under which version of a rule a document was computed.
  • โŒ Imported ERPs speak Lisbon and Houston โ€” IVA/AGT withholding, ANPG local-content scoring and PSC cost recovery had to be bolted on in spreadsheets.
  • โŒ Rules hardcoded in software โ€” a tax change meant a release, and reissuing an old invoice silently recalculated it under today's law.
  • โŒ Deletable history โ€” transactional rows could be edited or removed, so an audit trail was only as good as the last person's intentions.
  • โŒ Floating-point money in a Kwanza and multi-currency world โ€” rates, rate sources and rate dates were lost between the transaction and the ledger.
CLIENT PARTNER

In-house product (Wise Hustlers)

INDUSTRY SECTOR

Oil & Gas ยท Energy Operations

SYSTEM ARCHITECTURE

33 Domains ยท 258 Models ยท 134 Screens

DELIVERED STACK

Next.js 15, React 19, Node.js & PostgreSQL 16

EXECUTIVE SUMMARY

From the Well to the Tax Return, One Data Model

Most operators and service providers in Angola run production, procurement and compliance on spreadsheets joined together by email. That works until somebody asks: who approved this change to the supplier's bank details? Which version of the VAT rule was in force when this invoice was issued? How does this barrel, measured in the tank, become a line in the production report filed with the ANPG?

A spreadsheet cannot answer any of those. Enerxia can โ€” every mutation is audited, every rule is effective-dated, and transactional records are cancelled, voided or reversed rather than deleted. The system was built from that requirement rather than from a set of screens: a business rule lives in the domain layer and nowhere else, and a rule duplicated in a component is treated as a defect.

Enerxia is in production, in pilot, with two companies and thirty-six users, and its audit log has passed sixty-six thousand events. We do not present it as a product the Angolan sector has adopted, because it has not. What is true is more useful: the system exists, it runs, we maintain it, and it can be opened and walked through module by module.

THE SOLUTION

Six Business Blocks, One Engine

01

Corporate

Finance, tax, HR, expenses, documents, training and time โ€” the company-wide records everything else posts into.

02

Supply Chain

Procurement, suppliers, contracts, inventory, MRO, logistics and sales, sharing one approvals engine with dated thresholds.

03

Assets & Operations

Assets, maintenance, quality and fleet โ€” what keeps the equipment turning, tied to the projects and contracts that pay for it.

04

Oil & Gas

Upstream, well cost, production and hydrocarbon accounting, including production-sharing cost recovery and profit oil.

05

Safety & Environment

HSE, incidents, permits to work, the Angolan local-content regime and regulatory reporting as first-class domains.

06

Platform

Identity, RBAC, workflow, notifications, master data, reporting and the append-only audit log that every other block writes to.

HOW IT WORKS

The Traceability Spine

Every module must preserve this chain. A feature that breaks a link is incomplete, however well its screens work โ€” it is what lets you answer, months later, how a barrel in a tank became a line on a tax filing.

01

Business โ†’ asset, project or contract

Every record is scoped to a company and branch by the repository layer; there is no query path that skips the scope.

02

Operation โ†’ material, service or people

Wells, runs, jobs and shifts consume materials and services and involve people โ€” each linked, never free-text.

03

Transaction โ†’ approval

Purchase orders, invoices and adjustments pass through one approvals engine whose thresholds are effective-dated configuration.

04

Accounting โ†’ compliance

Journals carry decimal amounts with transaction currency, base currency, rate, rate source and rate date; IVA/AGT, local content and SAF-T read from the same entries.

05

Reporting โ†’ audit

Internal reports, ANPG filings and the SAF-T file come from one source, and every mutation behind them sits in an append-only log with a correlation id.

ENGINEERING NOTES

Angolan Regulatory Engineering

01. Rules are dated configuration, not code

IVA, withholding, local-content thresholds and approval limits carry effective_from and effective_to. An invoice issued in March is calculated with March's rule even after the rule changes in June, and reissuing an old document does not recalculate it under today's law.

02. Nothing transactional is deleted

Cancel, void, reverse or version it โ€” delete is not an available operation. The audit table is append-only, and the application's database role holds no UPDATE or DELETE permission on it, so the separation is enforced by Postgres rather than by good intentions.

03. ANPG local content as a domain

The local-content regime and supplier scoring live in their own domain, so a supplier's qualification is calculated and auditable instead of argued in a meeting.

04. SAF-T from the same ledger

The standard accounting file is exported from the entries that feed internal reporting โ€” one source, not two โ€” so the tax authority and the board see the same numbers.

05. Production sharing modelled, not approximated

Cost recovery and profit oil sit in the upstream domain, tied to production accounting and well cost rather than reconstructed in a spreadsheet at quarter end.

06. Unknown regulatory facts stay blocked

A rule the team does not know is left configurable, empty and blocked โ€” never guessed. It is an explicit project rule, and it is why the system can be defended in an audit.

07. Technical equivalence is an engineer's call

The MRO domain never infers automatically that two parts are interchangeable; a human decides, and that decision is recorded.

UNDER THE HOOD

Technology Stack

Deliberately boring, because an industrial ERP is read for ten years and written for two.

โš›๏ธ

Next.js 15 + React 19

134 Production Screens

Portuguese-first UI with an English second version. Screens validate for usability only; every business rule is enforced below the UI.

๐ŸŸข

Node.js API

/api/v1/* Boundary

Authentication, RBAC authorisation, validation, idempotency keys, audit and rate limiting on every request before it reaches a domain service.

๐Ÿง 

Domain Layer

33 Domains ยท 167 Test Suites

Unit, integration, permission, negative and end-to-end suites โ€” nothing is complete without test evidence.

๐Ÿ˜

PostgreSQL 16

258 Models ยท 61 Migrations

Constraints, transactions and an append-only audit table are part of the design. Decimal money everywhere โ€” never floating point.

WHERE IT STANDS

Production, in Pilot

Real figures from the running system โ€” no projections.

33
Business Domains
258
Data Models
2 / 36
Pilot Companies / Users
66,000+
Audit Events Recorded

Enerxia runs at enerxia.wise-hustlers.com behind a login. Walkthroughs are given module by module on real data, by an engineer who built it.

Database Entity Schema

// Enerxia โ€” the traceability spine, simplified (PostgreSQL 16, 258 models across 33 domains)

company / branch            -- every row is scoped; the repository injects it, no bypass
  โ”œโ”€ asset | project | contract
  โ”‚    โ””โ”€ operation           -- well, run, job, shift
  โ”‚         โ””โ”€ material | service | people
  โ”‚              โ””โ”€ transaction
  โ”‚                   โ”œโ”€ approval        -- one approvals engine, thresholds are dated config
  โ”‚                   โ”œโ”€ accounting      -- journal, tax lines, multi-currency (decimal, never float)
  โ”‚                   โ”œโ”€ compliance      -- IVA/AGT, local content, SAF-T, PSC cost recovery
  โ”‚                   โ””โ”€ reporting
  โ””โ”€ audit_log                -- append-only; app role has no UPDATE/DELETE

regulatory_rule {
  id             uuid
  domain         text        -- tax | localcontent | approval | psc
  key            text
  value          jsonb
  effective_from date
  effective_to   date        -- a March invoice is computed with March's rule
}

money {
  amount            numeric
  currency          char(3)   -- transaction currency
  base_amount       numeric
  base_currency     char(3)   -- AOA
  rate              numeric
  rate_source       text
  rate_date         date
}

Infrastructure Network Topology

+-----------------------------------------------------------------------+
|                    UI โ€” Next.js 15 ยท React 19                         |
|             134 screens ยท Portuguese-first, English second            |
+-----------------------------------------------------------------------+
                                   |
                                   v
+-----------------------------------------------------------------------+
|                          API โ€” /api/v1/*                              |
|  authn ยท authz (RBAC) ยท validation ยท idempotency ยท audit ยท rate limit  |
+-----------------------------------------------------------------------+
                                   |
                                   v
+-----------------------------------------------------------------------+
|                      Domain โ€” src/domain/** (33)                      |
|   every business rule lives here; a rule duplicated in UI is a defect |
+-----------------------------------------------------------------------+
                                   |
                                   v
+-----------------------------------------------------------------------+
|                 Repository โ€” company & branch scope injected          |
+-----------------------------------------------------------------------+
                                   |
                                   v
+-----------------------------------------------------------------------+
|     PostgreSQL 16 โ€” constraints ยท transactions ยท append-only audit    |
+-----------------------------------------------------------------------+
GOT AN IDEA?

Let's Pressure-Test It

Book a free call and tell us what you're building. Worst case, you leave with honest feedback and a clearer plan. Best case, you leave with a team that ships.

How Fast We Reply
Within 2 business hours, not "sometime next week."
Talk to Us Directly
info@wise-hustlers.com | +91-98778-18607
How Fast We Start
A dedicated team ready to begin within 48 hours.
Your idea stays confidential โ€” NDA available on requestYou own the code, always

Send Us a Message

Tell us what you're building and we'll get back to you with real answers, not a sales script.