Software design doc
AICS SDD
last modified by Grace Odah
on 2020/11/27 15:58
SDD - AICS SDD
Table of Contents
Overview .................................................................................................................................................................................. 3
Deployment Architecture ........................................................................................................................................................ 3
Diagram ................................................................................................................................................................................. 5
Description ............................................................................................................................................................................ 5
Software Architecture ............................................................................................................................................................. 7
Diagram ................................................................................................................................................................................. 8
Description ............................................................................................................................................................................ 8
Domain Concepts ................................................................................................................................................................. 10
How to Modify ....................................................................................................................................................................... 11
Product Roadmap ................................................................................................................................................................. 11
FAQ ........................................................................................................................................................................................ 12
Page 2 / 12 - last modified by Grace Odah on 2020/11/27 15:58
SDD - AICS SDD
Contents
• Overview
• Deployment Architecture
• Diagram
• Description
• Software Architecture
• Diagram
• Description
• Domain Concepts
• How to Modify
• Product Roadmap
• FAQ
Overview
About
The Abia State Internally Generated Revenue Central System (AICS) is an enterprise solution for the Abia State
Internal Revenue Service that was implemented to boost internally generated revenue and collection.
Problem definition
Abia State Internal Revenue Service is one of the major funding arms of the Government has taken on the
challenge of increasing the IGR of the State through the adoption and implementation of various strategies which
have impacted positively on revenue generation and collection.
With the intelligent combination of technology and process, the Abia State Internally Generated Revenue Central
System (AICS) solution was implemented to boost internally generated revenue and collection.
Objectives of AICS
The objective of the AICS is to carry out the following functions and services:-.
Effective tracking, monitoring, and accounting of IGR collections.
Helps Identify who pays what in real-time and allows for reconciliation.
Reduces revenue loss.
Effective tracking of assessments and compliance.
Eases taxpayer registrations ATIN issuance process.
Eliminates double taxation
Eliminates illegal collections and extortion
Identifies and blocks revenue loopholes.
Helps the state identify needs area of the state and act according
Taxpayers can register or do a lookup for their TIN from a mobile application.
Enhances data gathering and storing for policy and decisions making
Confirmation of taxpayers Abia Tax Identification Number (ATIN), Assessments / Demand Notices(APRR),
Payment Receipts, Tax Clearance Certificate (TCC)
13. Provide a location for revenue collection banks and tax offices.
Deployment Architecture
The AICS production URL is http://abiairs.gov.ng/
The AICS staging URL is https://ics3staging.byteworks.com.ng/
The Abia PLUC URL is https://pluc.abiairs.gov.ng/
The Abia IDMS URL is https://atinidms.abiairs.gov.ng/
Page 3 / 12 - last modified by Grace Odah on 2020/11/27 15:58
SDD - AICS SDD
Repositories
The table below describes the repository information for AICS
NOTE: Development branch is the branch a developer is to check out from. This is the default branch that a
developer will need to create a feature branch from for updates to the repository.
REPOSITORY
REPOSITORY URL
DESCRIPT
ics-taxpayer-api
https://bitbucket.org/byteworksng/ics-taxpayer-api
This repos
and docum
Language:
Supporting
ics-frontend-abia
https://bitbucket.org/byteworksng/ics-frontend-abia
This is the
application
users to int
Language:
Supporting
ics-assessment-api
https://bitbucket.org/byteworksng/ics-assessment-api
This repos
payment fu
Language:
Supporting
ics-frontend-shared-modul
https://bitbucket.org/byteworksng/ics-frontend-shared-module
This house
Language:
Supporting
bw-ticketing-api
https://bitbucket.org/byteworksng/bw-ticketing-api
This is the
ticketing fu
disbursem
manageme
Language:
Supporting
business-enumeration-android
https://bitbucket.org/byteworksng/business-enumeration-android
This is the
business e
Language:
Supporting
biometric-enumeration-api-v2
https://bitbucket.org/byteworksng/biometric-enumeration-api-v2
This is the
deduplicati
Language:
Supporting
biometric-enumeration-backend
https://bitbucket.org/byteworksng/biometric-enumeration-backend
This is the
received fr
desktop ap
Language:
Supporting
epluc-web
https://bitbucket.org/byteworksng/epluc-web
This is the
charge.
Language:
Supporting
epluc-mobile
https://bitbucket.org/byteworksng/epluc-mobile
This is the
land use ch
Language:
Supporting
bw-payment-api
https://bitbucket.org/byteworksng/bw-payment-api
This repos
handles no
Language:
Supporting
ics-enforcement-android
https://bitbucket.org/byteworksng/ics-enforcement-android
This repos
Language:
Supporting
bw-accounts
https://bitbucket.org/byteworksng/bw-accounts
This repos
Page 4 / 12 - last modified by Grace Odah on 2020/11/27 15:58
SDD - AICS SDD
Language:
Supporting
enumeration-api
https://bitbucket.org/byteworksng/enumeration-api
This repos
and taggin
Language:
Supporting
Database in Use
Name: Postgresql; Version: 9.5
SSL Providers
SYSTEM
URL
SSL PROVIDER
AICS
http://abiairs.gov.ng/
RapidSSL TLS DV RSA Mixed SH
Abia PLUC
https://pluc.abiairs.gov.ng/
Let’s Encrypt Authority X3
Abia IDMS
https://atinidms.abiairs.gov.ng/
Let’s Encrypt Authority X3
Diagram
Description
The AICS deployment architecture has 4 different servers:
Server 1 is made of 3 tomcats:
•
AUTH: this contains the BW accounts service that takes care of all authentication.
Page 5 / 12 - last modified by Grace Odah on 2020/11/27 15:58
SDD - AICS SDD
•
ICS: this is made up of the following services:
• Taxpayer: This service manages the ICS taxpayer's records and documents.
• Assessment: This service handles all ICS assessments and payment functions
• Report: This service takes care of all reports. It handles all downloads and email sending
that involve sending attachments.
• Enumeration API: This service handles property enumerations and tagging.
• PAYMENT: this contains the BW payment service that service processes payments and handles
notifications.
Server 2 holds the database and exchanges information with server 1.
Server 3 contains PLUC service (this has its separate database), this service handles property and land
use charges. This server communicates and exchanges information with server 1.
Server 4 contains IDMS tomcat (this has its separate database) which is made up of V1 and v2 services,
these services handle all deduplication, adjudication, and data received from the biometric enumeration.
How the eTax Application works with AICS
The eTax application includes 2 major processes:
• Registration
• Lookup
This application will allow a taxpayer to register or do a lookup for their ATIN from a mobile application.
Registration: A taxpayer enters registration details, a deduplication search process is performed on existing
taxpayers' records.
If there is a match that the taxpayer exists, the ecard details (name and ATIN) are returned. If no match, an ATIN is
generated for the taxpayer, and the ecard details are returned.
The eCard with taxpayer details is displayed.
Lookup: taxpayer enters last name and date of birth, the details are matched against existing taxpayer records.
If there is a match that the taxpayer exists, the ecard details (name and ATIN) is returned,
if no match, an error code and message is returned. the taxpayer can now perform registration, the eCard with
taxpayer details including their ATIN is displayed after completion of registration.
How IDMS works with AICS
A user's biometric (Face and fingerprint) is captured with the IDMS application, this is sent to the IDMS backend
which processes and forwards the captured biometric to ABIS.
If a match is found, this is flagged as a duplicate and the admin user has to validate and resolve deduplication.
If no match is found, this is sent to ICS to generate a TIN for the user.
How PLUC works with AICS
Epluc service handles all property and land use charges. Taxpayer property details are captured using the
enumeration app. Property details gotten from the app are sent to PLUC when details are saved. This is now
automatically synced to ICS and captured details can be viewed and seen on ICS.
Configuration
IP ADDRESS
SERVICE
VERSION
VM OS
-
Abia ICS Tomcat
8.5
CentOS 7
-
BW authentication Tomcat
(Application server)
8.5
CentOS 7
-
Payment Tomcat
8.5
CentOS 7
-
PostgreSQL database server
9.5
CentOS 7
Page 6 / 12 - last modified by Grace Odah on 2020/11/27 15:58
SDD - AICS SDD-
Nginx webserver
8.5
CentOS 7
-
EPLUC Tomcat
8.5
CentOS 7
-
PLUC PostgreSQL database
server
9.5
CentOS 7
-
IDMS Tomcat
8.5
CentOS 7
-
IDMS PostgreSQL database
server
9.5
CentOS 7
-
File server Tomcat
8.5
CentOS 7
-
File PostgreSQL database
server
9.5
CentOS 7
Software Architecture
Page 7 / 12 - last modified by Grace Odah on 2020/11/27 15:58
SDD - AICS SDD
Diagram
Description
ICS TAXPAYER API: This service manages taxpayers' records and documents.
ICS ASSESSMENT API: This service handles the assessment and payment functions.
ENUMERATION API: This service handles all property enumerations and tagging.
BW PAYMENT: This service processes payments and handles notifications.
IDMS: This service handles all deduplication, adjudication, and data received from the biometric enumeration.
BW ACCOUNTS: This service takes care of all authentication.
PLUC: This service handles property and land use charge.
Page 8 / 12 - last modified by Grace Odah on 2020/11/27 15:58
SDD - AICS SDD
How to Set up and access AICS and its components
As a new developer, to access the AICS components and set up the codebase, the steps below will serve as a
guide:
For Backend (Api)
Language: JAVA 1.8
Framework: springboot
Database: Postgres (9.5 preferably)
Dependency manager: Gradle (5.2.1 preferably)
IDE: IntelliJ (preferably)
Steps:
• Download IntelliJ IDEA (preferable IDE) (see link here) or any IDE of your choice. Set it up on your machine (if
you don't already have it set up)
• Download Postgres 9.5 (pgadmin 3) - (https://www.enterprisedb.com/downloads/postgres-postgresqldownloads) and set it up on your machine (if you don't already have it set up)
• Download Gradle 6.x (https://gradle.org/install/) and set it up on your machine (if you don't already have it set
up)
• Download JDK 1.8 (Java) (https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html)
and set it up on your machine (if you don't already have it set up)
• Request for repo access by sending a mail to the CTO copying the team lead requesting access to the
following repositories:
• https://bitbucket.org/byteworksng/ics-taxpayer-api
• https://bitbucket.org/byteworksng/ics-frontend-abia
• https://bitbucket.org/byteworksng/ics-assessment-api
• https://bitbucket.org/byteworksng/ics-frontend-shared-module
• Once access is provided, you can now clone the repositories and set up the codebases.
• Import project as a gradle project.
• Install dependencies and build project { Enter this command on the IDE or on the project root directory: gradle
clean build}
• Create a database with the default configurations shown below or any config of your choice.*
Database name
Database user
Database password
IntelliJ environment variables [values or screenshot]
•
you can set the variables to suit your choice
NB: make sure the database user can log in and owns the database created.
• Run the application (with intelliJ preferably)
For bw-accounts Api
Language: JAVA 1.8
Framework: Ninja
Database: Postgres (9.5 preferably)
Dependency manager: Maven (maven 3)
IDE: IntelliJ (preferably)
Steps:
• Download IntelliJ IDEA (preferable IDE) (see link here) or any IDE of your choice. Set it up on your machine (if
you don't already have it set up)
• Download Postgres 9.5 (pgadmin 3) - (https://www.enterprisedb.com/downloads/postgres-postgresqldownloads) and set it up on your machine (if you don't already have it set up)
• Download maven 3 and set it up on your machine (if you don't already have it set up)
Page 9 / 12 - last modified by Grace Odah on 2020/11/27 15:58
SDD - AICS SDD
• Download JDK 1.8 (Java) (https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html)
and set it up on your machine (if you don't already have it set up)
• Request for repo access by sending a mail to the CTO copying the team lead requesting access to the
following repositories:
• https://bitbucket.org/byteworksng/bw-accounts-api
• Once access is provided, you can now clone the repositories and set up the codebases.
• Import project as a maven project.
• Install dependencies and build project { Enter this command on the IDE or on the project root directory: maven
clean install}
• Create a database with the default configurations shown below or any config of your choice.
Database name
Database user
Database password
you can set the variable to suit your choice
NB: make sure the database user can log in and owns the database created.
• Run the application (with intelliJ preferably)
For ics-frontend
Language: Javascript / Typescript
Framework: Angular 10
Dependency Manager: NPM (Node Package Manager)
IDE: Vs code or IntelliJ or webstorm
Steps:
• Download npm on your machine (latest version) (if you don't already have it set up)
• Download and install angular (latest version) using npm [enter this command on the terminal: npm install
angular]
• Download and install any IDE of your choice.
• Clone project
• Open project in your preferred IDE
• Install dependencies with [npm install]
• run [npm run staging] to start the project while proxying api requests to staging server. or run any start
command of your choice from package.json file.
Domain Emails
Email was provided as a value-added service for Abia IRS employees on the domain @abiairs.gov.ng using Gmail
google workspace as its email provider.
Domain Concepts
ICS: Internally Generated Revenue Central System
AICS: Abia State Internally Generated Revenue Central System
APLUC: Abia Property and Land use charge - this is a charge imposed on property owners.
ATIN: ATIN stands for Abia Tax Identity Number - It is an electronic number that uniquely identifies a taxpayer
(Individual/Corporate/Informal) to the Abia State Government and the Abia State Internal Revenue Service.
APRR: APRR stands for Abia State Payment Retrieval Reference (EPRR). It is a unique ID generated from the
Abia ITMS for making payments. It is used to track payments and ensure that your payments are properly recorded.
Page 10 / 12 - last modified by Grace Odah on 2020/11/27 15:58
SDD - AICS SDD
PAYE: PAYE stands for Pay As You Earn (PAYE) - this is a method of paying income tax and national insurance
contributions. An employer deducts tax and national insurance contributions from employee wages or occupational
pension before paying their wages or pension.
ETCC: ETCC stands for Electronic Tax Clearance Certificate - this certificate is generated for Taxpayers after
they have been able to prove that they have cleared all taxes due for the year.
COLLECTION: Collection is the payment of generated bills on ICS made through the integrated payment
provider.
DEDUPLICATION: This is the process of eliminating duplicate or redundant data.
ASSESSMENT: This is the act of deciding an amount that should be paid by an individual.
ADJUDICATION: This is the process of resolving deduplication.
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 ics-taxpayer-api codebase
• Look out for the README 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.
Note that every codebase has a README file that applies to the specific codebase.
Product Roadmap
Page 11 / 12 - last modified by Grace Odah on 2020/11/27 15:58
SDD - AICS SDD
FAQ
What is the AICS project about?
The Abia State Internally Generated Revenue Central System (AICS) is an enterprise solution for the Abia State
Internal Revenue Service that was implemented to boost internally generated revenue and collection.
What codebases do I need to run the AICS project?
•
•
•
•
ics-taxpayer-api
ics-frontend-abia
ics-assessment-api
ics-frontend-shared-module
What database does the AICS project run?
It runs on Postgresql version 9.5
How do I access the AICS codebase?
As a new developer, to access the AICS components:
Send a mail to the CTO copying the team lead requesting access to the following repositories:
1.
2.
3.
4.
https://bitbucket.org/byteworksng/ics-taxpayer-api
https://bitbucket.org/byteworksng/ics-frontend-abia
https://bitbucket.org/byteworksng/ics-assessment-api
https://bitbucket.org/byteworksng/ics-frontend-shared-module
Once access is provided, you can now clone the repositories and set up the codebases.
Key Contact information
To get more clarification and information, kindly send a mail to any of the following contacts:
Joseph Gibah:-Nathaniel Edeki:-Ngozi Ofoefule:-Neme Iloeje :-Ezeukwu Osuagwu:-
Page 12 / 12 - last modified by Grace Odah on 2020/11/27 15:58