All engineering work

ENTERPRISE ENGINEERING / ODOO 16 · NUSATIV

ERISKA — Enterprise Risk & Construction Governance

Engineering complex Odoo workflows for enterprise construction risk management.

Odoo development: backend workflows, authentication, risk calculations and targeted web-client changes.

  • Odoo 16 Community
  • Python
  • PostgreSQL
  • Odoo ORM
  • OWL
  • Tier Validation
  • Regression Testing
ERISKA / PRODUCT INTERFACE
AI-edited ERISKA source interface showing approval summaries, risk status and the full risk matrix with synthetic data
AI-edited source interface · Synthetic dataOpen full-size ↗
Code evidence: 2025–2026 · not employment datesView Nusativ project work

PROJECT AT A GLANCE

The challenge

An Indonesian state-owned construction enterprise needed risk registers, assessments and project handover decisions to remain consistent with authorization and governance rules. The platform uses Odoo 16 Community with custom risk models and construction entities extending hr.department.

My contribution
Odoo development: backend workflows, authentication, risk calculations and targeted web-client changes.
Delivery context
Project collaboration through PT Nusa Teknologi Inovasi (Nusativ).
Client identity
Client identity withheld

PRODUCT CONTEXT / DISCLOSED VISUALS

ERISKA Risk Management Dashboard

Edited from the supplied application screenshot using AI-assisted sanitization. Approval summaries, the risk matrix and severity groups retain the source interface structure; identities and operational values are replaced with synthetic data. This edited view establishes product context, not sole authorship of every dashboard widget.

ERISKA / PRODUCT INTERFACE
AI-edited ERISKA source interface showing approval summaries, risk status and the full risk matrix with synthetic data
AI-edited source interface · Synthetic dataOpen full-size ↗

SYSTEM ARCHITECTURE

Connected rules. Clear boundaries.

A simplified view of the reviewed components
  1. Odoo web clientXML / OWL / FormController
  2. Custom Odoo backendRisk models · ORM · controllers
  3. Tier validationHandover requests & reviews
  4. PostgreSQLBusiness records & audit writes
Integration component · deployment not verified

Odoo BI → FastAPI / Pydantic → Vertex AI

Cloud Run deployment automation exists in code. This diagram does not assert a live cloud deployment.

The architecture is a conceptual explanation, not a production network map. Audit logging uses an independent cursor in the PostgreSQL database, not a separately verified audit server.

MY ENGINEERING CONTRIBUTIONS

The mechanisms behind the workflows.

Construction handover · conceptual workflow
  1. 01ActiveExecution stageTier approval
  2. 02PHOProvisional Hand OverTier approval
  3. 03FHOFinal Hand Over

Review actions: request → approve or reject → restart/resubmit. Returning PHO/FHO to Active requires the designated Super Admin role. The reviewed model extends hr.department, not project.project.

01

Workflow automation

I implemented guarded Active → PHO → FHO transitions with tier validation. The workflow checks requester roles, requires completed reviews and records reviewer information in chatter. Rejection and resubmission are review actions; they are not extra project stages. Returning a PHO/FHO project to Active is restricted to the designated Super Admin role.

02

Authentication & security

I implemented password complexity checks, expiry reminders and authentication hardening. Failed-login logging opens an independent PostgreSQL cursor with autocommit, so the audit write is separate from the authentication transaction that may roll back. Redirect validation and response headers address specific web-security concerns; these mechanisms are not a guarantee of complete vulnerability elimination or federated SAML/OAuth SSO.

03

Risk scoring & data integrity

I implemented a deterministic quantitative score selector: lower-inclusive, upper-exclusive intervals, with the greatest upper boundary included using floating-point tolerance. Matching is independent of record ordering; invalid limits, gaps and overlaps are rejected. Separate Odoo regression tests cover stored-versus-displayed exposure and protection of historical values.

04

Controlled record deletion

I worked on risk-register deletion controls that distinguish a deletion request from approval. Role checks govern requests and decisions rather than allowing unrestricted destructive actions. Reviewed code and regression tests establish implementation; they do not establish final client acceptance.

05

Targeted OWL customization

I patched Odoo’s FormController to check for a risk-strategy warning after a successful save, using the ORM service and a non-blocking sticky notification. The change preserves the normal save flow; it is a focused web-client customization, not a frontend rewrite.

06

AI integration component

I implemented a FastAPI gateway with Pydantic request models, a sliding-window in-memory rate limiter and a Vertex AI integration component. Cloud Run deployment automation and tests are present. This demonstrates integration and deployment code; a successful staging or production cloud deployment was not verified.

PRODUCT CONTEXT / DISCLOSED VISUALS

Risk Evaluation & Quantitative Scoring

The matrix makes likelihood and impact visible. The reviewed contribution concerns deterministic interval boundaries, exposure calculations and stored historical values. Illustrative marker positions do not demonstrate production outcomes.

ERISKA / PRODUCT INTERFACE
Illustrative five by five risk matrix with synthetic markers
Illustrative reconstruction · Synthetic dataOpen full-size ↗

PRODUCT CONTEXT / DISCLOSED VISUALS

Risk Analytics & Monitoring

The supplied interface shows impact series and monitoring charts. This AI-edited source view replaces operational values with synthetic demo units and anonymous categories. Dashboard context does not establish personal implementation of every chart; AI integration code does not establish a live deployment.

ERISKA / PRODUCT INTERFACE
AI-edited ERISKA monitoring source interface with synthetic impact charts and anonymous unit labels
AI-edited source interface · Synthetic dataOpen full-size ↗

ENGINEERING DEEP DIVE

Correctness at the boundaries.

01 / PostgreSQL

A failed login should not erase its audit attempt.

A separate cursor and autocommit decouple audit writes from the login transaction. This protects the intended audit path from the parent rollback; it does not make logging infallible or records immutable.

Login transaction → may roll back

Independent audit cursor → separate write

02 / Quantitative scoring

Deterministic intervals, consistent exposure.

Interval selection rejects ambiguous configurations. Separate display and stored-value checks help protect historical records when calculation logic changes.

Exposure = impact scale × probability midpoint × 0.01 × risk limit

Quality & verification

Attributable Odoo TransactionCase sources cover permissions, scoring and workflow transitions; Playwright browser-test sources are also present. Six isolated checks of the dependency-free impact selector passed during this review. The full Odoo, database and cloud integration suites were not run. Development and testing/QC evidence must not be read as final production acceptance.

QUALITY & EVIDENCE

What the evidence establishes.

IMPLEMENTATION

Code & attribution reviewed

Attributable workflow, authentication, scoring and web-client changes were checked against private source and Git history.

VALIDATION BOUNDARY

Testing is a separate milestone

October 2026 development reported complete for stated scope, promoted to testing, followed by QC feedback. Final production acceptance is not established.

Private source and communications were reviewed for this case. No proprietary code, client records or raw messages are published. Review date: 29 October 2026.