Software Design Docume
NCBS SDD
last modified by Grace Odah
on 2020/10/26 09:28
SDD - NCBS SDD
Table of Contents
Overview .................................................................................................................................................................................. 3
Deployment Architecture ........................................................................................................................................................ 4
Diagrams ............................................................................................................................................................................... 5
Description ............................................................................................................................................................................ 6
Software Architecture ............................................................................................................................................................. 7
Diagrams ............................................................................................................................................................................... 8
Description ............................................................................................................................................................................ 8
Domain Concepts ................................................................................................................................................................... 9
How to Modify ....................................................................................................................................................................... 10
Product Roadmap ................................................................................................................................................................. 12
FAQ ........................................................................................................................................................................................ 12
Page 2 / 18 - last modified by Grace Odah on 2020/10/26 09:28
SDD - NCBS SDD
Contents
• Overview
• Deployment Architecture
• Diagrams
• Description
• Software Architecture
• Diagrams
• Description
• Domain Concepts
• How to Modify
• Product Roadmap
• FAQ
Overview
About
The Convergent Billing System (CBS) is an independent web based software solution for the National Identity
Management System (NIMS), which will be used to monitor and manage the internal and external commercial and
financial transactions of the National Identity Management Commission (NIMC).
The solution will serve the following purposes for NIMC:
1.
2.
3.
4.
5.
Enhance monetization of NIMC services
Enable the ease of administering commercial activities in NIMC within the ID Ecosystem
Automate accounts receivables and reconciliation with services provided for greater financial transparency.
Improve transparent revenue generation streams for NIMC
Provide a platform for the generation of reports on various categories of requests and services.
Problem definition
The NIMC is in the process of implementing the Digital Identity Ecosystem Project as a component of the NIMS,
where any of the data collecting government agencies and/or licensed private organizations will capture data from
citizens and legal residents on behalf of the NIMC, and be paid for services rendered. In addition, the NIMC will
license other service providers for the provision of other value added services of the NIMC.
The Convergent Billing System (CBS) was developed as the project to help achieve the stated needs. This billing
system serves the following functions:
•
•
•
•
•
•
Provisioning
Accounting
Invoicing
Core Billing
Reconciliation
Reporting
The Convergent Billing System (CBS) bills for the NIMC services which are divided into NIN verification , NIN
enrollment/modification services. These are all electronic services that occur in real time across the following
channels:
•
•
•
•
Web
USSD
Physically (In designated enrollment stations)
Web services
Objectives of CBS
The objective of CBS is to carry out the following functions:
Page 3 / 18 - last modified by Grace Odah on 2020/10/26 09:28
SDD - NCBS SDD
• Provisioning: Roles to be assigned to user departments on the system to enable account creation and
reporting. Approved Users must be able to manage the clientele's profile details.
• Accounting: The system should allow for notifications to clients on account creation, billing, downtime, and
payment via email or SMS. The Billing System must trigger notifications into itself (logs) if a payment is
made for a bill.
• Invoicing: The Billing system should have the capacity to generate all types of reports and invoices for all
transactions logged on the System including e-payments, e-collections, and payroll reports.
• Core Billing: The system should be able to monitor and manage internal and external commercial and financial
transactions.
• Reconciliation: The Billing system must allow for a full audit of every transaction, report and activity carried out
on the system as well as the time they were carried out.
• Reporting: The system should allow for effective reporting of business activities of all predefined services.
Deployment Architecture
The convergent billing system is deployed on the Production server in the URL https://
nimccbs.gov.ng/ and on the staging server using the URL http://staging.ncbs.ng/
Repositories
The table below describes the repository information for the CBS
NOTE: Development branch is the branch a developer is to check out from.
PROJECT NAME
S/
N
REPOSITORY URL
DESCRIPTION
ncbs-core-api
1
https://bitbucket.org/byteworksng/ncbs-core-api
This is the reposi
Language: JAV
Supporting fram
ncbs-frontend
2
https://bitbucket.org/byteworksng/ncbs-frontend-v2
This is the reposi
Language: HTM
Supporting fram
ncbs-dsl
3
https://bitbucket.org/byteworksng/ncbs-dsl
This is the model
nimc-envs-middleware-api
4
https://bitbucket.org/byteworksng/nimc-envs-middleware-api
This is the reposi
Supporting fram
Language: JAV
Supporting fram
nims-res-client
5
https://bitbucket.org/byteworksng/nims-res-client
This is the reposi
Language: JAV
Supporting fram
nims-res-client-manager-frontend
6
https://bitbucket.org/byteworksng/nims-res-client-manager-frontend
This is the reposi
Language: Typ
Supporting fram
nims-res-client-manager-api
7
https://bitbucket.org/byteworksng/nims-res-client-manager-api
This is the reposi
Language: JAV
Supporting fram
nims-res-client-manager-dsl
8.
https://bitbucket.org/byteworksng/nims-res-client-manager-dsl
Page 4 / 18 - last modified by Grace Odah on 2020/10/26 09:28
This is the model
SDD - NCBS SDD
Supporting fram
ncbs-blockchain-api
9
https://bitbucket.org/byteworksng/ncbs-blockchain-api
This is the reposi
bw-payment-api
10
https://bitbucket.org/byteworksng/bw-payment-api
This is the reposi
CBS.
Language: JAV
Supporting fram
Database in use: Postgresql, version 9.5
Diagrams
Page 5 / 18 - last modified by Grace Odah on 2020/10/26 09:28
SDD - NCBS SDD
Description
CBS TOMCAT: This is a service that handles payments, it receives payment from the payment
provider (Remita) and sends a response back to the core service which is the CBS app.
REPORT APP: This is a report generation engine that handles all downloads, pdf, and handles mail
sending especially when the mail has attachments.
CBS ACCOUNT: This is a service that handles user management and user registration, it handles
user permissions.
REPORT APP: This is a report generation engine that handles all downloads, pdf, and handles mail sending
especially when the mail has attachments.
CBS ACCOUNT: This is a service that handles user management and user registration, it handles user
permissions.
FILE SERVER DB: This is where all databases are stored.
BLOCKCHAIN: This serves as non-repudiation whenever verification is done on a NIN.
FILE SERVER: This is a service that handles all data and files.
RCM: This is a service that manages enrolment clients.
QUEUE: This handles asynchronous authentication service agents service consumption, whenever an ASA
makes a request and there is a delay in response, it gets queued on the queue service for later processing.
MIDDLEWARE: This serves as an interface and adapter between core (CBS) and the eNVS which is the NIMC
backend, it is needed to help the core communicate with NIMC backend.
Page 6 / 18 - last modified by Grace Odah on 2020/10/26 09:28
SDD - NCBS SDD
Configuration
Address
Application
-
Operating
system
Number of
vCPUs
Memory Size
(GB)
System disk size Number of NICs
(GB)
CBS Application CentOS 7
server
2
8
200
1
-
CBS Database
Server
CentOS 7
2
8
200
1
-
Queue Server
CentOS 7
2
8
200
1
-
Blockchain
Server
CentOS 7
2
8
200
1
-
Middleware
Server
CentOS 7
2
8
200
1
-
File Server
CentOS 7
2
8
200
1
-
Registration
CentOS 7
Enrollment Client
Manager Server
2
8
200
1
-
CBS Web
Server
2
8
200
1
CentOS 7
To access any of the servers e.g. blockchain, users need to access via VPN by installing Cisco anyconnect client.
NOTE: At the moment we have not been provided credentials to access any of the servers on the data centre but
we are required to be physically present. But in the event that VPN access is granted, users need to access via VPN
by installing Cisco anyconnect client.
Hosting Information: CBS is hosted on the NIMC Data Centre. Data centres are centralized locations where
computing and networking equipment is concentrated for the purpose of collecting, storing, processing, distributing
or allowing access to large amounts of data.
URL to Staging server: sandbox.nimccbs.gov.ng
Software Architecture
The Convergent Billing System (CBS) is a billing system. This billing system serves the following functions:
•
•
•
•
•
•
Provisioning
Accounting
Invoicing
Core Billing
Reconciliation
Reporting
Page 7 / 18 - last modified by Grace Odah on 2020/10/26 09:28
SDD - NCBS SDD
Diagrams
Description
WEB SERVER: This is the frontend which interfaces with the client. When a request comes in, it
goes through an authorization process which is handled by the authorization server.
AUTHORIZATION SERVER: This server handles all the necessary checks to validate that the
request is made and is from an authorized user. It confirms user access rights and level and ensures
that the user can access the request placed. This makes all necessary validations and forward requests
to the core
CORE: This is the major part of the application that handles all processes. This takes care of backend
requests that involves billing, it handles billing functions and checks whether a caller’s account has
sufficient funds to be granted service. After performing the function, sends the request back to the
frontend web server which sends the response back to the client.
REPORTS: This takes care of backend requests that involve reports. After performing the function,
sends the request back to the frontend web server which sends the response back to the client as a
downloadable artifact, this could be as a pdf or excel.
PAYMENTS GATEWAY: This takes care of backend requests that involve payments. Payment
comes in through the payment gateway ( this could be Remita), the web server is notified and the
Page 8 / 18 - last modified by Grace Odah on 2020/10/26 09:28
SDD - NCBS SDD
payment engine processes payment and sends to the core to update billing functions and requests to
validate the type of service the user can access based on what is paid for.
Components of the CBS-.
Web server
RCM
CORE
Database
Middleware
Blockchain service
Payments gateways
NVS
Authorization
File system
Queue service
Reports
ASA
How to access CBS and its components
As a new developer, to access the CBS components:
1. Send a mail to the CTO copying the team lead requesting for access to the following repositories:
• https://bitbucket.org/byteworksng/ncbs-core-api
• https://bitbucket.org/byteworksng/ncbs-frontend-v2
• https://bitbucket.org/byteworksng/ncbs-dsl
• https://bitbucket.org/byteworksng/nimc-envs-middleware-api
• https://bitbucket.org/byteworksng/nims-res-client
• https://bitbucket.org/byteworksng/nims-res-client-manager-frontend
• https://bitbucket.org/byteworksng/nims-res-client-manager-api
• https://bitbucket.org/byteworksng/nims-res-client-manager-dsl
• https://bitbucket.org/byteworksng/ncbs-blockchain-api
• https://bitbucket.org/byteworksng/bw-payment-api
2. Once access is provided, you can now clone the repositories and set up the codebases.
Domain Concepts
NIN: National Identification Number - is the unique number which identifies you for life and is issued to you by
NIMC after your enrolment.
NIMC: National Identity Management Commission - is a statutory Nigerian organization that operates the
country's National identity management systems.
CBS: Convergent Billing System - The Convergent Billing System (CBS) is a web based software solution which
will replicate and integrate all commercial, operational and financial activities/services and processes (internal and
external) of the NIMC.
ASA: Authentication Service Agent - An ASA is a Licensed NIMC Partner, who can carry out Verification on
behalf of NIMC.
ESA: Enrollment Service Agent - An ESA is a Licensed NIMC Partner, who can carry out Enrolment on behalf of
NIMC.
BlockChain: Serves as a non-repudiation whenever a verification is done on a NIN
VRS: Verification Reference Slip: This indicates evidence of a verification. It contains details of a verification,
including a verification transaction reference, which can be verified.
Invoice: This is a document that records a transaction between a buyer and a seller.
Page 9 / 18 - last modified by Grace Odah on 2020/10/26 09:28
SDD - NCBS SDD
RRR: Remita Retrieval Reference - This is a 12-digit code that is generated electronically, and it is used for
making financial payments on the Remita platform
Remita: This is an online payment solution for integrating all their financial transactions on one single platform.
USSD: Unstructured Supplementary Service Data - This is simply a code that you enter on your phone to enable
you enjoy certain banking services
NVS: NIMC Verification Service (NVS) - This is a platform developed to enable verification of identities of
persons enrolled in the National Identity Database. This is an online real-time service that allows entities requiring
verification to have access to the NIMC database. It is equipped with the capacity of tracking usage, using global
best practices. It connects the client to the NIMC core verification backend.
How to Modify
To modify a codebase, the steps below should be followed and this should be applied based on the codebase.
• Checkout the codebase to be modified. E.g checkout ncbs-core-api codebase
• Look out for the README.MD file. This file details instructions on how to set up the codebase. Follow the
instructions in the README
• Make the required change.
• Send a Pull Request, as described in the README file.
See below a README file for the Middleware codebase.
Note that every codebase has a README file that applies to the specific codebase.
Page 10 / 18 - last modified by Grace Odah on 2020/10/26 09:28
SDD - NCBS SDD
Page 11 / 18 - last modified by Grace Odah on 2020/10/26 09:28
SDD - NCBS SDD
Product Roadmap
FAQ
What is CBS?
CBS stands for the Convergent Billing System of the National Verification Service (NVS). It is a Mandatory
Interface that all ASA (Authentication Service Agents) and ESA (Enrollment Service Agents) would connect to for
enjoying the Verification services of the NVS.
What codebases do I need to run the CBS project?-.
ncbs-dsl.git
ncbs-core-api.git
ncbs-frontend-v2.git
nimc-envs-middleware-api.git
nims-res-client.git
ncbs-blockchain-api
nims-res-client-manager-frontend.git
nims-res-client-manager-api.git
nims-res-client-manager-dsl.git
bw-payment-api
Who is an ASA?
ASA stands for Authentication Service Agent. An ASA is a Licensed NIMC Partner, who can carry out Verification
on behalf of NIMC.
Who is an ESA?
An ESA is a Licensed NIMC Partner, who can carry out Enrolment on behalf of NIMC.
What is a VRS?
Page 12 / 18 - last modified by Grace Odah on 2020/10/26 09:28
SDD - NCBS SDD
VRS stands for Verification Reference Slip: This indicates evidence of a verification. It contains details of a
verification, including a verification transaction reference, which can be verified.
What is the OSIA Standard?
OSIA is the body responsible for the specification of the interfaces for person identity.
Key Contact information
To get more clarification and information, kindly send a mail to the following contact:
Joseph Gibah:-Nathaniel Edeki:-Ngozi Ofoefule:-Neme Iloeje :-Ezeukwu Osuagwu:-
Page 13 / 18 - last modified by Grace Odah on 2020/10/26 09:28
SDD - NCBS SDD
Page 14 / 18 - last modified by Grace Odah on 2020/10/26 09:28
SDD - NCBS SDD
Page 15 / 18 - last modified by Grace Odah on 2020/10/26 09:28
SDD - NCBS SDD
Page 16 / 18 - last modified by Grace Odah on 2020/10/26 09:28
SDD - NCBS SDD
Page 17 / 18 - last modified by Grace Odah on 2020/10/26 09:28
SDD - NCBS SDD
Page 18 / 18 - last modified by Grace Odah on 2020/10/26 09:28