0% found this document useful (0 votes)
105 views37 pages

Intern Report at Cognizant

Uploaded by

Harshita Tayal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
105 views37 pages

Intern Report at Cognizant

Uploaded by

Harshita Tayal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 37

TRAINING FINAL REPORT

ON
PROJECT

(SUBMITTED IN PARTIAL FULFILLMENT)


REQUIREMENT FOR THE AWARD OF DEGREE
BACHELOR OF TECHNOLOLOGY
IN
INFORMATION TECHNOLOGY
TO
PUNJAB TECHNICAL UNIVERSITY, JALANDHAR

SUBMITTED BY:
Name: Harshita
Roll no.: 1802578
Semester: 8th
Batch: 2018-2022

Under the guidance of


Mr. Mandeep Devgan

CHANDIGARH ENGINEERING COLLEGE,LANDRAN,MOHALI

1
CERTIFICATE

This is to certify that the report entitled “Retail Banking System” has been
completed by
Ms Harshita who is bonafide student of Information Technology Department at
CEC,Mohali.

She is pursuing training at “Cognizant Technology Solutions, Tikri


Building-1 SEZ, Gurgaon.”
She is now working on project under my guidance & supervision. The
training will be completed by 14 July ’2022.

This is to certify that the above statements are correct to the best of my
knowledge & belief.

Parag Soman
Mentor
Cognizant

2
ACKNOWLEDGEMENT

On every step there is need of proper guidance, support & motivation.


The encouragement enables the person to give his best performance &
thus to achieve his goal.

I would express my deep sense of regard to Cognizant, Gurgaon for


extending me the opportunity for project training and providing all the
necessary resources and expertise for this purpose.

I sincerely acknowledge, with thanks, the encouraging guidance and


critical supervision of Ms. Cinderella Cleatus for all his kind help,
valuable suggestions & erutide guidance whenever need. We are
grateful to Mr. Parag Soman employee of Cognizant to pursue this
project in a smooth and organized manner.

( HARSHITA )

3
DECLARATION

I hereby declare that the Project Report entitled ("Retail Banking System") is an authentic
record of my
own work as requirements of 8th sem academic during the period from Jan’22 to June’22 for the
award of degree
of B. Tech. (Information Technology) under the guidance of (Mr. Parag Soman).

Harshita
Harshita Tayal
1802578

Date: 14 June 2022

Certified that the above statement made by the student is correct to the best of our knowledge
and belief.

Signatures

Examined by:

1. 2. 3. 4.

Head of
department
(Signature and Seal)

4
Move beyond just running your business by turning it into one that sees the next best
action, and then acts as is an intuition- in the moments that matter.

INTRODUCTION TO COGNIZANT

Cognizant is an American multinational information technology services


and consulting company. It is headquartered in Teaneck, New Jersey, United
States. Cognizant is part of the NASDAQ-100 and trades under CTSH. It was
founded as an in-house technology unit of Dun & Bradstreet in 1994, and started
serving external clients in 1996.
After a series of corporate re-organizations there was an initial public offering in
1998.
Cognizant had a period of fast growth during the 2000s and became
a Fortune 500 company in 2011; as of 2021, it is ranked 185.
Cognizant Technology Solutions is a company that provides information
technology, consulting, and business process outsourcing services. It operates
through four segments: Financial Services; Healthcare; Products and Resources; as
well as Communications, Media, and Technology. Cognizant offers digital services
and solutions, consulting, application development, systems integration,
application testing, application maintenance, infrastructure services, and business
process services. The company also develops, licenses, implements, and supports
proprietary and third-party software products and platforms.
The Company operates through four segments: Financial Services, Healthcare,
Manufacturing/Retail/Logistics, and Other. The Company's services
include consulting and technology services and outsourcing services. The
Company develops, licenses, implements and supports third-party software
products for the healthcare industry, including solutions for health insurance plans,
third party benefit administrators (TPAs), and healthcare providers. It provides IT
Infrastructure management outsourcing services that include data center,
infrastructure security, network and convergence, end user computing services and
mobility.

Cognizant began as Dun & Bradstreet Satyam Software (DBSS),established as


Dun & Bradstreet's in-house technology unit focused on implementing large-scale

5
IT projects for Dun & Bradstreet businesses. In 1996, the company started
pursuing customers beyond Dun & Bradstreet.

In 1996, Dun & Bradstreet splits off few of it's auxiliaries including Eriscon, IMS
International, Nielsen Media Research, Pilot Software, Strategic Technologies and
DBSS, to form a new company called Cognizant Corporation, headquartered in
New Jersey, U.S. Three months later, in 1997, DBSS renamed itself to Cognizant
Technology Solutions.

VISION OF COGNIZANT

The vision statement for Cognizant is its strategic plan for the future – it defines
what and where Cognizant Company wants to be in the future. The vision statement
for Cognizant is a document identifying the goals of Cognizant to facilitate its
strategic, managerial, as well as general decision making processes.

MISSION OF COGNIZANT

Cognizant's single-minded mission is to dedicate their business process and


technology innovation know-how, deep industry expertise and worldwide resources
to working together with clients to make their businesses stronger. Their aim is to be
the number one solutions provider in each sector they provide service in, through
integrity, competence, innovation and execution. Commitment to their customers,
employees, licensees and shareholders is the foundation of their mission. They
commit to being, “Open, Honest and Direct.”

COGNIZANT BUSINESS MODEL

Like many other IT services firms, Cognizant follows a global


delivery model based on offshore software R&D and offshore outsourcing. The
company has a number of offshore development centers outside the United States and
near-shore centers in the U.S., Europe and South America. In its early years,
Cognizant gained business from a number of American and European companies with
the help of the Dun & Bradstreet brand. The company's senior executives foresaw the
firm as a provider of high-end customer services at lower prices than it's
competitors Accenture, BearingPoint, Capgemini, E&Y, Deloitte and IBM.

6
COGNIZANT ACHIEVEMENTS

 Cognizant recognized as a Top Provider in the Outsourcing and Consulting categories


besides being named as a Customer Satisfaction Leader by CGT.
 Ovum Decision Matrix recognized Cognizant as "Market Leader" in Outsourcing
Testing Service Providers.
 Consumer Goods Technology (CGT) awarded Readers’ Choice Award for the ninth
consecutive year.
 Forrester Research, Inc. named Cognizant a Leader in Business Intelligence Services.
 Cognizant placed in IDC MarketScape as a Leader in IT and BPO Services.

ABOUT IT DEPARTMENT

IT Department of Cognizant is outsourced to IBM. Department handles


the information interchange between the users and connecting other
regional offices. IT SECTION of Airtel employs a secure network design
including Wide Area Network (WAN) and Local Area Network (LAN).
Hence the IT DEPARTMENT has the following tasks:

 To provide user a secure network.


 To provide secure and restricted internet access.
 Maintenance and troubleshooting on the user end.
 Providing users critical data on demand.
 Maintaining and handling of the call databases.
 Providing users the mail facility.
 Keeping the traffic regular and in limits.
 Intruder detection.
 Definition and application of security policies.
 Providing connections to the Remote Regional Offices.

INTEGRITY

 Be honest, fair and impartial in all your dealings.


 Treat all those with whom you have dealings in open and respectful
manner.
 Be truthful, equally important don’t allow people to be misled and
misinformed.
 Keep the company’s trade secret safe.

7
 Other than for the above don’t hide information, especially from
colleagues and superiors.

CONSUMER ORIENTATION

 All our products and services are meant for the satisfaction of the
consumer. This is the reason for the existence of the company.
 Treat customers and users of cognizant product and services with
courtesy, sincerity and patience.
 Be helpful and polite in all the dealings. Avoid rudeness, anger and
confrontation.
 Employees and suppliers are also “internal consumers” when they have
interactions with us and whenever the work has any effect on their working,
efficiency and profitability.

8
What is already done

So far we have made the abstract of the project and product backlog,
prepared the dfd and hld. We are still learning about the software and
hardware to be used in the project and the technology we are going to
use. The project is based on advanced java. We are still to do many
things. We are still on our learning stages and that is to be completed
upto 20th of june.

What is planning

Ahead we are working on wireframe of the project. We have


recently submitted our hld. The project start date is scheduled on 27th of
June. The project is assigned to complete on 15th of July.

9
LIST OF CONTENTS

Introduction To Project 2
➔ Objective 2
➔ Outline of project 2
➔ Project overview 4
➔ Scope 5
➔ Product Definition 6

Micro Service Architecture 8


➔ What is MSA 8
➔ Need for an MSA based solution 8

Moduled to be developed

Software Requirement Specification 13


➔ Hardware Requirements 13
➔ Software Requirements 13

Introduction & Detail of Technologies used 14


➔ Introduction to Java 14
➢ What is Java ? 14
➢ Features of Java 15
➢ What can you do with Java? 16

➔ Introduction to SpringMVC 17
➢ Introduction 17
➢ Spring wed model view controller 18
➢ Understanding the flow of Spring web mvc
➢ Directory structure of spring web mvc 20

System Design (DFD, ER, Database Diagram , etc.) 26


➔ Flowchart 26
➔ DFD
Individual Components of the System 30
➔ Customer Microservice 30

10
➔ Account Microservice 30
➔ Transactions Microservice 31
➔ Rules Microservice 35
➔ Bank Portal 37

Transactions history data model

Cloud deployement requirements

Design Considerations

Reference Learning

11
RETAIL BANKING SYSTEM

TITLE OF PROJECT: Retail Banking System

Team: Project Leader: Mr. Parag Soman


Trainees involved: - 5

Objective:

The purpose of the software requirement document is to systematically capture


requirements for the project and the system “Retail Banking System” that has to be
developed. Both functional and non-functional requirements are captured in this
document. It also serves as the input for the project scoping.

Outline of the work:

The project is developed as a stand alone application by


March End and is being converted to work with the server.

Project Overview
One of the largest and leading Retail Bank within the US, serving millions of
customers across the country offering a range of financial products from Credit
Cards, Savings & Checking accounts, Auto loans, small business & commercial
accounts. The retail bank has historically been served by a large monolith system.
This system has Customer information, Transaction information, Account
information – Pretty much a ledger generating taxes & statements. The bank is

12
looking for a solution that will provide resilience & scalability for future growth.
Following are the required features:
 Highly available
 Highly scalable
 Highly Performant
 Easily built and maintained
 Developed and deployed quickly

Scope

The retail banking system needs to expose the following resources:

 Customers: Handles creation of Customers within the bank and processing Loan
requests
 Accounts: Handles creation, management & retrieval of a customer’s Banking
Account
 Transactions : Handles creation and retrieval of transactions made against user’s bank
account.
 Rules: Banking rules for different entities eg MinAccBalance, ServiceCharges,
OverdraftLimits

Product Definition

 Retail banking provides financial services to individual consumers rather than large
institutions.
 Services offered include savings and checking accounts, mortgages, personal loans, debit
or credit cards, and certificates of deposit (CDs).
 Retail banks can be local community banks or the divisions of large commercial banks.
 In the digital age, many fintech companies can provide all of the same services as retail
banks through internet platforms and smartphone apps.
 While retail banking services are provided to individuals in the general public, corporate
banking services are only provided to small or large companies and corporate bodies.

Microservice Architechture

13
Microservice Architecture is a special design pattern of Service-oriented Architecture. It is
an open source methodology. In this type of service architecture, all the processes will
communicate with each other with the smallest granularity to implement a big system or
service. This tutorial discusses the basic functionalities of Microservice Architecture
along with relevant examples for easy understanding.

Typically, microservices are used to speed up application development. Microservices


architectures built using Java are common, especially Spring Boot ones. It’s also
common to compare microservices versus service-oriented architecture. Both have the
same objective, which is to break up monolithic applications into smaller components,
but they have different approaches. Here are some microservices architecture examples:

Website migration

A complex website that’s hosted on a monolithic platform can be migrated to a cloud-based


and container-based microservices platform.

Media content

Using microservices architecture, images and video assets can be stored in a scalable object
storage system and served directly to web or mobile.

Transactions and invoices

Payment processing and ordering can be separated as independent units of services so


payments continue to be accepted if invoicing is not working.

Data processing

A microservices platform can extend cloud support for existing modular data processing
services.

Need for an MSA based solution


 The Retail bank requires High Availability for their operations to be available to their
clients & bank employees without disruption.
 The Retail bank requires dynamic scaling. The bank periodically launches offers to its
customers. On a given day, week, month of the year, the bank may experience heavy
traffic. They would like to leverage the elastic features of cloud for saving costs.
 The Retail bank is currently constrained by the legacy system for depicting
transaction data which is 80% of the customer traffic to the site & is extremely slow
with an increasing customer base. The new system should be extremely performant
for this use case
The bank requires rapid development & deployment. It is also desired to use separate
development teams to work in parallel on the core services supporting Account
management, Transaction management, Customer Management services and their
supporting applications simultaneously. This should accelerate development and delivery
times.
14
Modules to be developed
Below are the modules that needs to be developed part of the Project:

Req. No. Req. Name Req. Description

REQ_01 Account Account management Module is a Microservice


Management that performs following operations:
Module
 Get Customer Account(s)

 Create Account

 Get Account Statement

 Withdraw

 Deposit

REQ_02 Customer Customer Module is a Microservice that performs


Module the following operations:

 Create Customer

 Get Customer Details

REQ_03 Transactions Transactions Module is a Microservice that


Module performs the following operations:

 Deposit

 Withdraw

 Transfer

 Get Transactions

REQ_04 UI Portal Loads the UI and takes care of user sessions.


Relies on all other microservices for core
functionality.

REQ_05 Authentication Authentication Module is a Microservice that


Module

15
performs the following operations:

 Login

 Logout

REQ_06 Rules Module The rules module is a microservce that will be


responsible for evaluating rules while performing
transactions like withdrawals, deposits. It will also
return values based on the rules eg MinAccBal,
ServiceCharges for non-maintenance of min
balance. The following operations are performed:

 Evaluate Min Balance

 Get Service Charges

Hardware to be used:

1. Hardware Requirement:

a. Developer Desktop PC with 8GB RAM

2. Software Requirement (Java)

a. Spring Tool Suite (STS) Or any Latest Eclipse

i. Have PMD Plugin, EclEmma Code Coverage Plugin and AWS


Code Commit Enabled

ii. Configure Maven in Eclipse

b. Maven

c. Docker (Optional)

16
d. Postman Client in Chrome

e. AWS Cloud Account

3. Software Requirement (Dotnet)

a. Visual studio 2017 enterprise edition

b. SQL Server 2014

c. Postman Client in Chrome

Azure cloud access

17
INTRODUCTION OF THE TECHNOLOGIES USED

Introduction to Java:

It is an object-oriented language similar to C++, but with advanced and simplified features.This
language is free to access and can run on all platforms.

Java is: –

 Concurrent where you can execute many statements instead of sequentially executing it.
 Class-based and an object-oriented programming language.
 Independent programming language that follows the logic of “Write once, Run
anywhere” i.e. the compiled code can run on all platforms which supports java.

In simple words, it is a computing platform where you can develop applications.

What is Java used for?

Before I go ahead with this, let me brief you about why you should choose Java. It is highly
popular and has dominated this field from early 2000’s till the present 2018.

Some of the applications are listed below:

 Banking: To deal with transaction management.

18
 Retail: Billing applications that you see in a store/restaurant are completely written in
Java.
 Information Technology: Java is designed to solve implementation dependencies.
 Android: Applications are either written in Java or use Java API.
 Financial services: It is used in server-side applications.
 Stock market: To write algorithms as to which company they should invest in.
 Big Data: Hadoop MapReduce framework is written using Java.
 Scientific and Research Community: To deal with huge amount of data.

Features

Simple - edurekaSimple: Java has made life easier by removing all the complexities such
as pointers, operator overloading as you see in C++ or any other programming language.

Portable: This is platform independent which means that any application written on one
platform can be easily ported to another platform.

Object-Oriented feature of java - edurekaObject-oriented: Everything is considered to be


an “object” which possess some state, behavior and all the operations are performed
using these objects.

Secured - edurekaSecured: All the code is converted in bytecode after compilation, which
is not readable by a human. and java does not use an explicit pointer and run the
programs inside the sandbox to prevent any activities from untrusted sources. It enables
to develop virus-free, tamper-free systems/applications.

Dynamic state - edurekaDynamic: It has the ability to adapt to an evolving environment


which supports dynamic memory allocation due to which memory wastage is reduced
and performance of the application is increased.

Distributed state feature - edurekaDistributed: This language provides a feature which


helps to create distributed applications. Using Remote Method Invocation (RMI), a
program can invoke a method of another program across a network and get the output.
You can access files by calling the methods from any machine on the internet.

Introduction to SpringMVC:

The Spring Web MVC framework provides Model-View-Controller (MVC) architecture and
ready components that can be used to develop flexible and loosely coupled web applications.
The MVC pattern results in separating the different aspects of the application (input logic,
business logic, and UI logic), while providing a loose coupling between these elements.
 The Model encapsulates the application data and in general they will consist of POJO.

19
 The View is responsible for rendering the model data and in general it generates HTML
output that the client's browser can interpret.
 The Controller is responsible for processing user requests and building an appropriate
model and passes it to the view for rendering.

Spring Web Model-View-Controller

o Model - A model contains the data of the application. A data can be a single object or a
collection of objects.
o Controller - A controller contains the business logic of an application. Here, the
@Controller annotation is used to mark the class as the controller.
o View - A view represents the provided information in a particular format. Generally,
JSP+JSTL is used to create a view page. Although spring also supports other view
technologies such as Apache Velocity, Thymeleaf and FreeMarker.
o Front Controller - In Spring Web MVC, the DispatcherServlet class works as the front
controller. It is responsible to manage the flow of the Spring MVC application.

Understanding the flow of Spring Web MVC

20
o As displayed in the figure, all the incoming request is intercepted by the
DispatcherServlet that works as the front controller.
o The DispatcherServlet gets an entry of handler mapping from the XML file and forwards
the request to the controller.
o The controller returns an object of ModelAndView.
o The DispatcherServlet checks the entry of view resolver in the XML file and invokes the
specified view component.

Directory Structure of Spring MVC

21
1.0 Functional Requirements and High Level Design
1.1 Use Case Diagram

A use case diagram is a dynamic or behavior diagram in UML. Use case diagrams
model the functionality of a system using actors and use cases. Use cases are a set of
actions, services, and functions that the system needs to perform. In this context, a
"system" is something being developed or operated, such as a web site. The "actors" are
people or entities operating under defined roles within the system

Why Make Use Case Diagrams?

Use case diagrams are valuable for visualizing the functional requirements of a
system that will translate into design choices and development priorities.

They also help identify any internal or external factors that may influence the
system and should be taken into consideration.

They provide a good high level analysis from outside the system. Use case
diagrams specify how the system interacts with actors without worrying about the
details of how that functionality is implemented.

Basic Use Case Diagram Symbols and Notations

System
Draw your system's boundaries using a rectangle that contains use cases. Place
actors outside the system's boundaries.

Use Case
Draw use cases using ovals. Label the ovals with verbs that represent the system's
functions.

Actors
Actors are the users of a system. When one system is the actor of another system,
label the actor system with the actor stereotype.

22
Relationships
Illustrate relationships between an actor and a use case with a simple line. For
relationships among use cases, use arrows labeled either "uses" or "extends." A
"uses" relationship indicates that one use case is needed by another in order to
perform a task. An "extends" relationship indicates alternative options under a
certain use case.

Use case diagram

1.2 High Level Design (HLD) is a general system design and includes the
description of the System architecture and design. Brief explanation on
components like platforms, systems, services and processes is also considered part
of HLD. Data flows, flowcharts, data structures are included in HLD documents so
that developers/implementers can understand how the system is expected to work
with regards to the features and the design. It describes the relation between

23
various components and functions of the system. It defines the actual logic for
each and every module of the system, design Architecture to understand the flow
of the system with function and database design. As part of consultancy work or
Architecture design, customer business requirement is converted into High Level
Solution – In network and security setups, it may include security Zones, Traffic
flows and high level connectivity across various entities.

Purpose of High Level Design (HLD)

The purpose of this High Level Design (HLD) Document is to add the necessary
detail description to represent a suitable model. This document is designed to help
in operational requirement and can be used as a reference manual for how the
modules interact. Basically, HLD is a technical representation of functional
requirements and flow of information across assets or components.

During the preliminary stages of a development, the need of the project is to


identify those parts of the project that might be at risk or time consuming. HLD
provides a brief description of how the various sub-systems and components of the
system fit together.

Scope of HLD

The High-Level Design documentation presents the structure of the system as the
application/database architecture, application flow and technology architecture.
High-Level Design documentation may use some non-technical terms unlike Low
Level design which should be strictly technical jargon.

Characteristics of HLD

 HLD presents all of the design aspects (taken from business requirements and
expected outcome) and defines them in form of a diagram.

 It describe the user interface being implemented and description of hardware


and software interfaces.

 It describe the performance requirements and flow of user’s daily process.

 HLD includes design features and the architecture of the project.

 Port numbering, VLAN, physical specifications etc are not part of High Level
Design.

Requirement of/from HLD

HLD briefly describes about the platforms/products/services/processes, flow of


traffic that it depends on and includes any important changes that need to be made

24
to them. HLD is the input for creating the LLD (Low Level Design) since the key
communication items are displayed in HLD which are then converted to detailed
communication in LLD, showing connectivity and physical level. HLD requires
contribution from a number of experts, representing many distinct professional
disciplines like SME, Design Architectures. Every type of end-user should be
classified and identified in the HLD and each contributing design should give due
consideration to the customer experience. Another important aspect is that HLD
and LLD are source of reference in Operations stage also, after the project has
been successfully implemented and now in BAU stage. Hence, design phase is of
utmost importance.

During which phase of project is HLD created?

After the requirements of project have been understood and an overview of overall
solution/system components communication needs to be carved out, this is where
High Level Design is created. HLD will be the input for LLD or detailed design
creation. The information available in HLD is the guiding principle which Low
Level design needs to demonstrate in detail. HLD is required during –

Preliminary design—In the preliminary stages, the need is to size the project and
to identify those parts of the project that might be risky or time consuming.

Design overview—As the project proceeds, the need is to provide an overview of


how the various sub-systems and components of the system combines together in a
frame.

25
High Level Design

1.3 Introduction to System Design

The process of defining a system’s entire requirements, such as the architecture,


modules, interface, and design, is called system design. We can say that system
design ranges from discussing about the system requirements to product
development. System development creates or alters the system so that the
processes, practices and methodologies are changed to develop the system.
Therefore, a systematic approach is needed to manage the system requirements
and design methodology. It can be classified as logical design and physical design.
The logical design represents the abstract dataflow, while the physical design
represents the system’s input and output processes.

Understanding System Design

This approach took before the 2nd world war when the engineers required a system
to solve complex issues and communication problems. The required platform
standardizes their work into a framework with accurate and precise methods and
information.

Basically, this is the term that connects the void between the issues of the subject
and the existing system in a practical and logical way. Some of the elements are as
followed –

26
1. Design and redesign of business processes.

2. Defining Data Models.

3. Defining the events and their procedure.

4. Designing of Applications.

5. Designing how the different services, processes, events, and data will work
together.

6. Defining how the system will be secured

7. Defining the technologies that will be used, such as applications, components,


toolsets, APIs, and libraries.

The various subsets of System Design


1. Logical Design

It is the abstract representation of the data flow, inputs, and outputs of the system. It

explains the sources, destinations, data stores, and data flows all in a process that

satisfies the user needs. The logical design of a system is prepared while keeping the

level of detail that virtually tells the information flow and out of the system in mind. The

data flow and E-R diagrams are used, respectively.

2. Physical Design

The process of actual input and output of the system is related to physical design. The
main criteria of physical design are to manage how the data is verified, processed, and
displayed as a result. It basically revolves around the interface design, process design,
and data design of the user.

3. Architectural Design

It is also called the high level of design that emphasizes the design of system
architecture. It explains the nature and root of the system.

27
4. Detailed Design

It follows the Architectural Design and emphasizes the development of every subject.

System architecture diagram

28
1.0 Individual Components of the System
1.1.1 Customer Microservice

Retail Banking Customer Microservice


System

Functional Requirements
The Customer microservice will perform the following tasks

1. Creating a customer profile based on the details provided by the customer


2. Displaying customer’s profile

Entities
1. Customer
<Details of Customer: Name, Address, DOB, PAN no …>
2. CustomerCreationStatus
<Details of Customer Creation: Message, CustomerId>

REST End Points


Customer Microservice
o POST: /createCustomer (Input: Customer | Output: CustomerCreationStatus)
o GET: /getCustomerDetails (Input: Customer_Id | Output: Customer)

Trigger – Customer creation, Approve or Reject the Loan will be done by the Bank employee from
the Banking Portal after inputting in his details. Customer can apply for Loan from Banking portal.

Steps and Actions


1. The Bank employee logs in to the Portal
2. The Bank employee inputs Customer information within the Portal
3. createCustomer on the Customer Microservice will be called by passing the customer
information.
4. After successful creation of customer, the Customer service will interact with the Account
Service to create the customer’s account. Account types of Savings & Current will be created
by default. AccId will be generated by the Account Service
5. Bank employee may query on the customer to get information about the customer
o Customer Details
o Summary of all the accounts he holds. CustomerService will interact with the
AccountService for fetching these details
Non-Functional Requirement:
 Only Authorized Members can access these REST End Points

29
1.1.2 Account Microservice

Retail Banking Account Microservice


System

Functional Requirements
The Account Microservice will perform the following tasks:

1. Creating an Account for a Customer


2. Fetching Accounts related to a Customer as a summary information
3. Fetching account statement for a particular customer based on a date range
4. Depositing to a customer’s account
5. Withdrawing from a customer’s account

Entities
1. Account
<Account details like AccoutId.>

2. AccountCreationStatus
<Message, AccountId.>

3. Statement
<date, Narration, Chq/refno, ValueDate, Withdrawal, Deposit, ClosingBalance>

4. TransactionStatus
<message, source_balance, destination_balance>

REST End Points


Account Microservice
o POST: /createAccount (Input: CustomerId) | Output: AccountCreationStatus
o GET: /getCustomerAccounts (Input:CustomerId | Output: Array of Account(id,
Balance)
o GET: /getAccount(Input:AccountId | Output: Account(id, balance)
o GET:/getAccountStatement(Input: AccountId, from_date, to_date | Output: Statement
o POST:/deposit(Input: AccountId, amount | Output: TransactionStatus)
o POST:/withdraw(Input: AccountId, amount | Output: TransactionStatus)

Trigger – Invoked when a customer is created, customer logs in to the Portal, Bank employee queries
customer details, customer views statements

30
Steps and Actions
1. Creation of an account will be triggered while creating a customer.
2. Two types of accounts will be created for a customer Savings, Current
3. Fetching Customer accounts will display a summary of all the accounts held by the customer
a. Total account holdings value
b. Individual account balance value
4. Account statement will display Statement details based on the date range. If no date range is
provided, it will display Statement for a single month
5. Deposit & withdraw URI’s can be invoked only by the transaction service. It cannot be directly
invoked on the AccountService. So the AccountService needs to check for a token parameter
prior to executing the service. This token will be attached by the transaction service
6. Transaction Status will show source & destination balances for Transfer only. For withdraw &
deposit it will show only the current account’s balance

Assumptions: Minimum balance to be maintained in the account will be derived from a


business rule. The minimum balance will be assumed to have come from another transaction.
It will be just added to the account balance while creating an account after querying the
business rule service
Non-Functional Requirement:
 Only Authorized Members can access these REST End Points

1.1.3 Transactions Microservice

Retail Banking Transaction Microservice


System

Functional Requirements
The Transactions microservice will be responsible for performing all transactions within
the Retal bank like Deposits, Withdrawal, Transfers. The service is responsible for
checking business rules & propagating transaction contexts to Entities participating in the
transaction. This service in turn will invoke behavior on the Account service
Entities

TransactionsHistory
<< Refer to Section 4 for the Transaction History Data model >>

REST End Points


Transaction Microservice
o POST: /deposit (Input: AccountId, amount) | Output (TransactionStatus )

31
o POST: /withdraw (Input: AccountId, amount | Output: TransactionStatus)
o POST: /transfer (Input: Source_AccountId, Targer_AccountId, amount | Output:
TransactionStatus)
o GET: /getTransactions (Input: CustomerId | Output:TransactionsHistory)

Trigger – Invoked whenever an user attempts to perform any transactions like deposit, withdraw,
transfer amounts, get the transaction history on his accounts

Steps and Actions


1. Transactions microservice will be invoked whenever a user performs any
transactions within the system like deposit, withdrawal, transfers or sees his
transcation history
2. Transactions microservice will interact with Account microservice to actually
complete the request.
3. For withdrawals, the service will initially check whether the withdrawal will result
in non maintainence of min balance. If so the transaction will be declined. The
rules microservices will be used for evaluating the business rules.
4. For transfers, the source account should maintain min withdrawal balance after the
transfer. Else the transcation is declined. Rules microservice will be used for
evalusting rules
5. All transactions need to be logged into a Transaction history DB and updated to the
cache (Shown in figure 4.0).
6. Transaction history will retrieve transaction details of all accounts the customer has
NOTES:

 Transactions history information needs to be cached for good performance

Assumptions:

 Assume that the customer holds multiple accounts withn the same bank during Transfer

1.1.4 Rules Microservice

Retail Banking Rules Microservice


System

Functional Requirements
The Rules microservice will be responsible for interacting with a rules engine to evaluate
certain rules that is applicable prior to performing transactions

Entities
RuleStatus

32
<status: denied, allowed, NA>
REST End Points
Rules Microservice
o GET: /evaluateMinBal (Input: balance, AccountId) | Output (RuleStatus )
o GET: /getServiceCharges (Input: | Output: float(indicating the service charge
applicable )

Trigger – Invoked from Transaction service while performing a withdrawal or transfer, System
generated event for applying service charges on accounts that do not comply with the min bal
criteria. Invoked from a monthly running batch job
Steps and Actions
 Whenever a transaction for Withdrawal or transfer happens, the transaction service will
interact with the Rules service to check whether the account has a min balance criteria &
whether the account maintains the criteria after the withdrawal or transfer has been
performed. It will do so by checking against a business rules engine.
 It will then return the evaluation status for the Transaction service which will help it to
proceed with the transaction
 The system will run a monthly batch job checking accounts that belong to the min
balance criteria. When they don’t meet the criteria, it will apply a service charge defined
by the business rules. getServiceCharge will return the current service charge applicable
to min balance accounts

1.1.5 Bank Portal (MVC)

Retail Banking Bank Portal


System

Client Portal Requirements


o Bank Portal must allow a customer to Login. Once successfully logged in, the customer
can perform the following operations:
o View his accounts and balances
o Transact (Withdraw(Online transaction), Transfer)
o View statements
o View Transactions
o Bank portal must allow bank employees to login. On successful login the bank employee
can perform the following operations:
o View customers account details
o Create customers
o For the first two steps, two roles ‘Customer’ & ‘Employee’ should exist & their screens
should be customized according to the roles

33
2.0 Transactions history data model

34
3.0 Cloud Deployment requirements

 All the Microservices must be deployed in Cloud


 All the Microservices must be independently deployable. They have to use In-memory
database or user sessions wherever applicable
 The Microservices has to be dockerized and these containers must be hosted in Cloud
using CI/CD pipelines
 The containers have to be orchestrated using Azure Kubernetes or AWS ECS Services.
 These services must be consumed from an MVC app running in a local environment.

4.0 Design Considerations

Java and Dotnet specific design considerations are attached here. These design specifications,
technology features have to be strictly adhered to.

5.0 Reference learning

Please go through all of these k-point videos for Microservices deployment into AWS.

https://cognizant.kpoint.com/app/video/gcc-6e36500f-c1af-42c1-a6c7-
ed8aac53ab22
https://cognizant.kpoint.com/app/video/gcc-92f246c9-024a-40b7-8bfc-
96b3ce7c1a39
https://cognizant.kpoint.com/app/video/gcc-cfedd9c1-e29e-4e3e-b3e2-
1960277f72a3
https://cognizant.kpoint.com/app/video/gcc-900a7172-43b7-42f3-a6cc-
e301bd9cc9b3

Microservices deployment into Azure Kubernetes Service.

AzureWithCICD-1

35
AzureWithCICD-2

AzureWithCICD-3

AzureWithCICD-4

Other References:

Java 8 Parallel https://dzone.com/articles/parallel-and-asynchronous-programming-in-java-8


Programming

Feign client https://dzone.com/articles/Microservices-communication-feign-as-rest-client

Swagger https://dzone.com/articles/centralized-documentation-in-Microservice-spring-b
(Optional)

ECL Emma https://www.eclipse.org/community/eclipse_newsletter/2015/august/article1.php


Code Coverage

Lombok https://javabydeveloper.com/lombok-slf4j-examples/
Logging

Spring Security https://dzone.com/articles/spring-boot-security-json-web-tokenjwt-hello-world

H2 In-memory https://dzone.com/articles/spring-data-jpa-with-an-embedded-database-and-
Database spring-boot
https://www.baeldung.com/spring-boot-h2-database

AppInsights https://www.codeproject.com/Tips/1044948/Logging-with-ApplicationInsights
logging

Error response https://stackoverflow.com/questions/10732644/best-practice-to-return-errors-in-


in WebApi asp-net-web-api

Read content https://stackoverflow.com/questions/26790477/read-csv-to-list-of-objects


from CSV

Access app https://www.c-sharpcorner.com/article/reading-values-from-appsettings-json-in-


settings key asp-net-core/
from

36
appSettings.json https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?
in .Netcore view=aspnetcore-3.1
application

6.0 Change Log

Changes Made
V1.0.0 Initial baseline created on <12-April-2022>

Section Changed Effective Changes Effected


No. By Date

37

You might also like