prime-1

byOluwaseun Rotimi

1 BackendEngineeringAssignment–DigitalBankingSystemYouhaverecentlybeenemployedasaBackendEngineeratastart-upbank(thenamewillbeassignedbyNibssByPhoenix).Asthesolebackendengineer,youareresponsiblefordesigningandbuildingthecorebackendsystemofthebank.ObjectiveDevelopafunctionalbackendsystemthatsupportscustomeronboarding,accountmanagement,andcorebankingoperationsbyintegratingwiththeAPIsprovidedbyNibssByPhoenix.Requirements1.CustomerOnboardingSystemDesignandimplementacompleteonboardingworkflowforbankcustomers.●IntegratewiththeBVN/NIN(norealbvn/ninisallowed)onboardingendpointsprovidedbyNibssByPhoenix.●Ensurethat:oAcustomermustsuccessfullycreateseitherBVNorNINbeforecallingaccountcreationendpoint.oAccountcreationisonlyallowedaftersuccessfulonboardingandverification.2.AccountCreationCreatebankaccountsforeachsuccessfullyonboardedcustomer.●Eachcustomermusthaveamiximumofone1account.●Uponaccountcreation:oEachaccountispre-fundedwith₦15,000toenabletestingandtransactions.3.CoreBankingOperations Ensurethatcustomerscanperformthefollowingoperations:●NameEnquiryVerifyrecipientdetailsbeforeinitiatingatransfer.●FundsTransferoIntra-banktransfers(withinyourbank)oInter-banktransfers(tootherbanks)●AccountBalanceCheck●TransactionStatusCheckTestingNote:Youmayperformtransfers:●Betweenaccountsyouhavecreated,or●Toaccountscreatedbyyourcolleagues.4.TransactionHistory&DataPrivacyImplementtransactiontrackingandenforcestrictdataprivacy.●Eachcustomermustbeableto:oViewonlytheirowntransactionhistory.●Ensureproperdataisolation:oNocustomershouldhaveaccesstoanothercustomerʼsdata.5.NibssByPhoenixAPIIntegrationUsetheprovidedAPIdocumentationfromNibssByPhoenix.Togetstarted:●Calltheonboardingendpointandprovide:oYouremailaddressoYourcompany(bank)name●YouwillreceiveAPIcredentialsviaemail.●Usethesecredentialstoauthenticateandaccessotherendpoints.Documentation:https://drive.google.com/drive/folders/1Mqw1ZWXtiOXaF9rplB_SYPM98vsWmQtSwagger:https://nibssbyphoenix.onrender.com/api/docs/#/ SubmissionLink:https://docs.google.com/forms/d/e/1FAIpQLSenPGTvB334QpzDVSuO97bItRsfEYg3NHCDuIAPlnW464Vng/viewform?usp=headerSubmission:onorbefore5thSeptember2026

No preview

Comments (0)

No comments yet. Be the first!

System Requirements

System Requirement Document
Page 1 of 7

System Requirements Document for prime-1

1. Introduction

The prime-1 project is a backend system for a startup bank, designed to support customer onboarding, account management, and core banking operations. The system integrates with APIs provided by Nibss By Phoenix to ensure seamless and secure banking services. The primary audience includes bank customers and the backend engineer responsible for system implementation.

2. System Overview

The system will deliver a functional backend that supports customer onboarding, account creation, and core banking operations. It will integrate with Nibss By Phoenix APIs for BVN/NIN verification, account management, and transaction processing. The system ensures data privacy and security, allowing customers to view only their transaction history. The backend engineer will implement and maintain the system, ensuring compliance with all requirements.

2a. Product Interpretation and Delivery Boundary

The system is designed to operate within the constraints of the Nibss By Phoenix API, using test data for BVN/NIN verification. It supports a single account per customer, pre-funded with ₦15,000 for testing. The system enforces strict data privacy, ensuring customers can only access their data. The backend engineer is responsible for integrating the APIs and ensuring the system meets all specified requirements. The system will be submitted by the deadline of 5th September 2026.

Page 2 of 7

2b. Source Content Inventory

  • Nibss By Phoenix API documentation: Includes onboarding and integration processes for BVN/NIN, account creation, and banking operations.
  • Core Banking Guide: Provides in-depth explanations for system integration, endpoint requirements, security, and data flows.

2c. Page Content and Component Coverage

Landing

  • Information: Overview of the banking system and its capabilities.
  • Actions: Navigate to Login or Onboarding.
  • Components: Introduction to core banking features.

Login

  • Information: Access for returning customers.
  • Actions: Authenticate user identity.
  • Components: Username and password fields, login button.

Onboarding

  • Information: BVN/NIN choice and onboarding flow.
  • Actions: Initiate BVN/NIN creation, proceed to account creation.
  • Components: BVN/NIN selection, onboarding status.

Accounts

  • Information: Overview of customer account and lifecycle state.
  • Actions: View account details.
  • Components: Account balance, transaction history link.
Page 3 of 7

New Account

  • Information: Account creation process.
  • Actions: Create account, verify onboarding.
  • Components: Account creation form, pre-funding confirmation.

Name Enquiry

  • Information: Recipient verification.
  • Actions: Verify recipient details.
  • Components: Recipient name input, verification status.

Transfers

  • Information: Intra-bank and inter-bank transfer options.
  • Actions: Initiate transfer, confirm details.
  • Components: Transfer form, transaction confirmation.

Balance

  • Information: Current account balance.
  • Actions: View balance.
  • Components: Balance display.

Transaction Status

  • Information: Status of submitted transactions.
  • Actions: Check transaction status.
  • Components: Transaction ID input, status display.
Page 4 of 7

Transactions

  • Information: Customer's transaction history.
  • Actions: View transaction details.
  • Components: Transaction list, filters.

3. Functional Requirements

  • As a Bank Customer, I should be able to complete onboarding using BVN/NIN endpoints to create an account. (explicit)
  • As a Bank Customer, I should be able to create a bank account after successful onboarding and verification. (explicit)
  • As a Bank Customer, I should be able to perform intra-bank and inter-bank transfers. (explicit)
  • As a Bank Customer, I should be able to check my account balance. (explicit)
  • As a Bank Customer, I should be able to view the status of my transactions. (explicit)
  • As a Bank Customer, I should be able to view only my transaction history. (explicit)
  • As a Backend Engineer, I should integrate the Nibss By Phoenix APIs using provided documentation and credentials. (explicit)

4. User Personas

  • Bank Customer: Responsible for onboarding, account creation, performing banking operations, and viewing transaction history.
  • Backend Engineer: Responsible for designing and building the backend system, integrating APIs, and ensuring system compliance.

5. Core User Flows

Page 5 of 7

Bank Customer

  1. Onboarding:

    • Access the Onboarding page.
    • Select BVN or NIN for verification.
    • Complete the onboarding process.
    • Proceed to account creation.
  2. Account Creation:

    • Access the New Account page.
    • Verify successful onboarding.
    • Create a new account, pre-funded with ₦15,000.
  3. Banking Operations:

    • Access the Transfers page.
    • Perform intra-bank or inter-bank transfers.
    • Check account balance on the Balance page.
    • View transaction status on the Transaction Status page.
    • Access the Transactions page to view transaction history.

Backend Engineer

  1. API Integration:
    • Access Nibss By Phoenix API documentation.
    • Implement API integration for onboarding, account creation, and banking operations.
    • Ensure compliance with data privacy and security requirements.
Page 6 of 7

6. Visuals Colors and Theme

  • Muse: Dieter Rams
  • Palette: Background #F7F7F7, Surface #FFFFFF, Text #000000, Primary #FF6600, Accent #A0A0A0, Muted #E0E0E0
  • Typography: Headings Work Sans, Body Roboto Mono
  • Shape Language: Rounded-rectangle controls
  • Layout: Modular grid
  • Motion: Instant, mechanical feedback
  • Imagery: Diagrammatic line art

7. Signature Design Concept

A full-width onboarding flow diagram with orange accents on a light gray background, emphasizing the process steps. Rounded-rectangle controls for input fields and buttons, with orange accents for critical actions.

8. Interaction Model & Motion Direction

  • Interaction Model: Static
  • Motion Tempo: Restrained
  • Hero Dimensionality: Flat
  • Landing Hero Motion Brief: A composed onboarding flow diagram with instant feedback on user actions, emphasizing clarity and process steps.

9. Non-Functional Requirements

  • Security: Ensure data privacy and secure API integration.
  • Performance: The system should handle multiple concurrent users efficiently.
  • Scalability: The system should be scalable to accommodate future growth.
Page 7 of 7

10. Tech Stack

  • Backend: Python/FastAPI
  • Database: PostgreSQL
  • Containerization: Docker
  • Deployment: Kubernetes (if required)

11. Assumptions and Constraints

  • The bank name is assigned by Nibss By Phoenix.
  • No real BVN or NIN data is used.
  • Each customer may have a maximum of one account.
  • The system must be submitted by 5th September 2026.

12. Glossary

  • BVN: Bank Verification Number
  • NIN: National Identification Number
  • API: Application Programming Interface
  • Nibss By Phoenix: API provider for the banking system
  • Onboarding: The process of registering a new customer in the banking system

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Landing: Review system overview
Login: Test authentication flow
Onboarding: Integrate BVN/NIN verification
New Account: Integrate account creation
Accounts: Verify account lifecycle data
Name Enquiry: Integrate recipient verification
Transfers: Integrate transfer processing
Balance: Verify balance endpoint
Transaction Status: Verify status endpoint
Transactions: Verify transaction history access

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Landing: Review system overview
Login: Test authentication flow
Onboarding: Integrate BVN/NIN verification
New Account: Integrate account creation
Accounts: Verify account lifecycle data
Name Enquiry: Integrate recipient verification
Transfers: Integrate transfer processing
Balance: Verify balance endpoint
Transaction Status: Verify status endpoint
Transactions: Verify transaction history access