⚠️ Portfolio Notice: This repository serves as a technical case study for RadarPro, a proprietary compliance software developed for Adroit Consulting. The source code is confidential. This document details the system architecture and my role in automating regulatory reporting for Nigerian Financial Institutions.
RadarPro is a specialized "RegTech" (Regulatory Technology) solution designed to bridge the gap between Financial Institutions and Regulatory Bodies (specifically the NFIU - Nigerian Financial Intelligence Unit).
In the banking sector, failing to report specific transactions within a set timeframe results in massive sanctions. RadarPro automates this entire lifecycle, converting raw banking data into the strict XML/JSON formats required by government portals (goAML), eliminating manual error and ensuring 100% compliance.
The system is divided into four critical reporting engines, powered by robust Python scripts:
- Function: Automatically detects and reports cash transactions exceeding the statutory limit (e.g., ₦5M for individuals, ₦10M for corporates).
- Automation: Daily cron jobs scan the core banking database, aggregate cash lodgments/withdrawals, and generate the report file.
- Function: Tracks all cross-border inflows and outflows.
- Compliance: Ensures every forex transaction is captured with necessary metadata (Sender, Receiver, Purpose of Payment) before submission.
- Function: An intelligent detection module that flags transactions that do not fit a customer's standard profile (e.g., a student account suddenly receiving ₦50M).
- Function: A behavioral monitoring tool used to report suspicious activities (not just transactions), such as potential staff collusion or attempted bypass of internal controls.
The most technically challenging aspect of this project was adhering to the strict goXML / goAML schema requirements enforced by the NFIU.
- The Challenge: The NFIU portal rejects submissions if a single XML tag is out of order or if a date format is incorrect. Manual file creation was impossible at scale.
- My Solution: I engineered a custom Python Automation Engine that handles the generation pipeline:
- Extraction: Python scripts query the Oracle/MSSQL Banking Database to pull transaction rows.
- Validation: A pre-processing layer checks for data integrity (e.g., ensuring every transaction has a valid BVN and Address) before generation.
- Serialization: Using Python's
lxmland string formatting to map the banking data into the complex, nested XML tree structure required by goAML. - Encryption: The final XML files are hashed and encrypted for secure transmission.
Key Tech:
Python,Celery(Background Tasks),Pandas(Data Aggregation),XML/XSD Validation.
As the Lead Developer, I was responsible for:
- Logic Implementation: Coding the rulesets for CTR/FTR detection based on current CBN circulars.
- Schema Mapping: Mapping internal banking database fields to external regulatory schemas.
- Performance: Reducing report generation time from hours to minutes using efficient SQL queries.
Tunde Oluwamo Senior Full Stack Developer & RegTech Specialist [ linkedin.com/in/oluwamo-shadrach-740242185 ]
