IT Asset Management System
ODOO · Python · Fernet AES Encryption · Enterprise Module

Laptops were assigned informally. Credentials lived in a WhatsApp group. Nobody knew what to reclaim.
IT infrastructure across a multi-branch holding company is invisible by default. No system tracked what was assigned, to whom, or when licenses expired. Security audits were manual exercises. Offboarding was incomplete because there was no record to work from.
THE STANDARD APPROACH FAILS BECAUSE:
Storing passwords in plain fields is a security failure. The module required field-level encryption using a key that never touches the database. Second challenge: dynamic custom field framework for evolving asset schemas.
"Fernet AES encryption with the key stored separately from credential records — database access never equals credential access."
— KEY ARCHITECTURAL DECISION
TECHNICAL DECISIONS // 5 MADE
Fernet AES encryption — credentials encrypted before database write
Field-level masking in UI with authenticated reveal
Dynamic custom field framework for evolving asset schemas
Automated offboarding checklist and execution wizard
SOC 2 and ISO 27001 aligned design patterns

Full lifecycle tracking with chain-of-custody
Asset Lifecycle
FULL CHAIN OF CUSTODY- Asset registry with category hierarchy and dynamic custom fields
- Lifecycle state machine: procurement → assignment → maintenance → retirement
- Barcode generation and printing for physical asset labeling
- Purchase order linking — asset created automatically from PO line
- Assignment and transfer workflows with complete audit trail
Credential Vault
FERNET AES / FIPS 140-2- Fernet encryption — credentials encrypted before database write
- Encryption key stored as Odoo system parameter, never in credential records
- Field-level masking in UI — password visible only on authenticated reveal
- Every access logged with timestamp, user, and IP
- Granular access control — grant and revoke per credential
License Management
SEAT TRACKING- License registry with seat capacity tracking
- Per-employee assignment with over-allocation prevention
- Expiration monitoring with automated alerts
- License-to-service and license-to-credential linking