← Back to Projects
Web2024Proprietary
InfoByte ERP Suite logo

InfoByte ERP Suite

Full Enterprise Resource Planning System for Nigeria's Airspace Authority

Lead Developer & UI Engineer·NAMA - Nigerian Airspace Management Agency (via InfoByteSolution)·4 months (contract engagement)

Source code is proprietary to NAMA. Architecture and outcomes shared with permission.

The Challenge

NAMA needed a unified ERP system to replace fragmented spreadsheets and paper processes across multiple departments. The system required five integrated modules - personnel management with biometric attendance, asset tracking, payroll processing, business analytics, and pension management - all while maintaining strict data security for a federal aviation agency. The budget didn't allow for a large team, so the entire system had to be architected, built, tested, and deployed primarily by a single engineer within a 4-month timeline.

The IBPersonnel dashboard showing employee records and HR operations across NAMA departments
The IBPersonnel dashboard showing employee records and HR operations across NAMA departments

The Approach

I designed the complete entity-relationship diagram, implemented the full-stack application across all modules, and handled the entire deployment pipeline. The team included a project manager for stakeholder communication, a graphic designer for branding, and a QA tester. I architected a modular Next.js app with Prisma ORM for the data layer, BullMQ for background job processing (email notifications, payroll runs, report generation), and a custom biometric integration for attendance tracking. Each business domain (personnel, assets, payroll, analytics) is a self-contained module with its own routes, services, and database tables. The system uses SSH tunnels for secure database access in production.

System Architecture

Monorepo with five integrated modules: IBPersonnel (6k+ staff records, biometric attendance, leave workflows), IBAsset (purchase-to-disposal lifecycle, QR tagging, depreciation), IBPayroll (payslip generation, tax computation, salary distribution across banks), IBAnalytics (custom report builder, departmental KPIs, interactive dashboards), and IBPension (contribution tracking, benefit calculation, actuarial projections). All modules share a single PostgreSQL database via Prisma with BullMQ handling background jobs (email notifications, report generation, payroll batch processing). The system runs on a self-managed Linux VPS with PM2 process management, SSH tunnel access to the database, and automated deployment via shell scripts.

System architecture overview

Module listing - the five integrated ERP modules: IBPersonnel, IBAsset, IBPayroll, IBAnalytics, IBPension
Module listing - the five integrated ERP modules: IBPersonnel, IBAsset, IBPayroll, IBAnalytics, IBPension

Built For

HR administrators, department heads, and payroll officers at a Nigerian federal aviation agency (NAMA) - non-technical government employees who previously managed everything through paper forms, Excel spreadsheets, and manual filing systems. The system needed to be intuitive enough for users with minimal computer literacy while handling complex workflows like biometric attendance, HMO enrollment, and multi-department leave approvals.

Design Decisions

How do you architect a 5-module ERP as a solo engineer?

Ruthless modularization. Each business domain (IBPersonnel, IBAsset, IBPayroll, IBAnalytics) is a self-contained module with its own routes, services, and database tables. This means you can build and test one module at a time, and modules don't break each other. Shared infrastructure (auth, notifications, reporting) lives in a common layer.

Alternatives considered:Monolithic single-moduleMicroservicesOff-the-shelf ERP (Odoo/SAP)

Why Next.js over a traditional SPA?

The system needed server-side data fetching for security (no exposed API endpoints for sensitive federal employee data), server actions for form mutations, and the App Router's layout system for a complex dashboard hierarchy with nested routes across 5 modules.

Alternatives considered:React SPA + ExpressAngularDjango + HTMX

Why build custom instead of using Odoo/SAP?

Off-the-shelf ERP systems come with enormous complexity for general cases. A custom build, tailored to NAMA's specific workflows and Nigerian regulatory requirements, delivered a leaner system that staff could actually use without weeks of training.

Alternatives considered:OdooERPNextSAP Business One

Why BullMQ instead of simple cron jobs?

Email notifications, payroll processing, report generation, and biometric sync are long-running tasks that can't block the request cycle. BullMQ gives us reliable job queues with retry logic, dead letter queues, and real-time monitoring - critical for a system where missed payroll notifications have real consequences.

Alternatives considered:node-cronAgenda.jsAWS SQS

Why a custom biometric integration?

The biometric hardware vendor provided a .NET SDK. I built a bridge service that communicates between the Next.js app and the fingerprint scanner via a local proxy, enabling web-based biometric attendance without browser plugins.

Alternatives considered:Third-party SaaS biometricManual attendance
Custom report builder with data export and filtering capabilities
Custom report builder with data export and filtering capabilities

The Team

Lead Developer & UI Engineer

All coding, architecture, UI/UX design, and deployment (Akande Simpa) - developed all modules except IBPension

Project Manager

Stakeholder communication, requirements gathering, sprint planning

Graphic Designer

Branding, iconography, print materials

QA Tester

Manual testing, bug reporting, user acceptance testing

Tech Stack

Next.jsReactTypeScriptPrismaPostgreSQLBullMQRedisTailwind CSSBiometric SDKResendZeptoMailPM2SSH TunnelingREST APIServer Administration

Outcomes & Impact

  • Delivered a 5-module ERP suite: IBPersonnel, IBAsset, IBPayroll, IBAnalytics, IBPension
  • Replaced 5+ fragmented spreadsheet systems with a single unified platform
  • Combined biometric attendance + IBPayroll controls reduced payroll/time fraud exposure by an estimated 40%
  • Automated HMO enrollment and leave workflows saved ~20 hours/week of HR time
  • Complete ERD design with proper normalization and referential integrity across all modules
  • Deployed to a self-managed VPS with PM2 process management, SSH tunnels, and zero-downtime updates
IBAnalytics dashboard with real-time business intelligence and data visualization
IBAnalytics dashboard with real-time business intelligence and data visualization
Sample analytics report output - professional PDF export for departmental review
Sample analytics report output - professional PDF export for departmental review

💬 Behind the Scenes

Building software for a federal agency means navigating bureaucracy that would make Kafka blush. Being the "principal engineer" sounds prestigious until you realize it also means being the principal debugger, principal DevOps engineer, and principal person-who-gets-called-at-2am. But the best part? Seeing department heads - who'd been doing everything on paper for decades - light up when they realized they could approve leave requests from their phone.