Intern Report at Cognizant
Intern Report at Cognizant
ON
PROJECT
SUBMITTED BY:
Name: Harshita
Roll no.: 1802578
Semester: 8th
Batch: 2018-2022
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.
This is to certify that the above statements are correct to the best of my
knowledge & belief.
Parag Soman
Mentor
Cognizant
2
ACKNOWLEDGEMENT
( 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
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
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
6
COGNIZANT ACHIEVEMENTS
ABOUT IT DEPARTMENT
INTEGRITY
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
9
LIST OF CONTENTS
Introduction To Project 2
➔ Objective 2
➔ Outline of project 2
➔ Project overview 4
➔ Scope 5
➔ Product Definition 6
Moduled to be developed
➔ 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
10
➔ Account Microservice 30
➔ Transactions Microservice 31
➔ Rules Microservice 35
➔ Bank Portal 37
Design Considerations
Reference Learning
11
RETAIL BANKING SYSTEM
Objective:
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
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.
Website migration
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.
Data processing
A microservices platform can extend cloud support for existing modular data processing
services.
Create Account
Withdraw
Deposit
Create Customer
Deposit
Withdraw
Transfer
Get Transactions
15
performs the following operations:
Login
Logout
Hardware to be used:
1. Hardware Requirement:
b. Maven
c. Docker (Optional)
16
d. Postman Client in Chrome
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
Port numbering, VLAN, physical specifications etc are not part of High Level
Design.
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.
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.
25
High Level 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.
4. Designing of Applications.
5. Designing how the different services, processes, events, and data will work
together.
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
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.
28
1.0 Individual Components of the System
1.1.1 Customer Microservice
Functional Requirements
The Customer microservice will perform the following tasks
Entities
1. Customer
<Details of Customer: Name, Address, DOB, PAN no …>
2. CustomerCreationStatus
<Details of Customer Creation: Message, CustomerId>
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.
29
1.1.2 Account Microservice
Functional Requirements
The Account Microservice will perform the following tasks:
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>
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
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 >>
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
Assumptions:
Assume that the customer holds multiple accounts withn the same bank during Transfer
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
33
2.0 Transactions history data model
34
3.0 Cloud Deployment requirements
Java and Dotnet specific design considerations are attached here. These design specifications,
technology features have to be strictly adhered to.
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
AzureWithCICD-1
35
AzureWithCICD-2
AzureWithCICD-3
AzureWithCICD-4
Other References:
Swagger https://dzone.com/articles/centralized-documentation-in-Microservice-spring-b
(Optional)
Lombok https://javabydeveloper.com/lombok-slf4j-examples/
Logging
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
36
appSettings.json https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?
in .Netcore view=aspnetcore-3.1
application
Changes Made
V1.0.0 Initial baseline created on <12-April-2022>
37