Yogesh - 19001015071 - ENC - 2019-2023 - Final Report
Yogesh - 19001015071 - ENC - 2019-2023 - Final Report
By
Yogesh 19001015071
Under the supervision
of Mr. Kushal Sharma
( Sr Software Engineer )
PureSoftware
Submitted to the
J.C. Bose University of Science and Technology, YMCA, Faridabad
(erstwhile YMCA University of Science and Technology)
BACHELOR OF TECHNOLOGY
IN
(2019 - 2023)
TRAINING CERTIFICATE
CERTIFICATE
This is to certify that the work carried out in this project titled “Arttha - Unified Fintech
I hereby certify that the work which is being presented in this report titled “Arttha - Unified
Fintech Platform” in fulfillment of the requirement for the degree of Bachelor’s in Electronics
& Computer and submitted to the J.C. Bose University of Science and Technology, YMCA,
Faridabad, is an authentic record of my own work carried out under the supervision of Mr.
Kushal Sharma( Sr. Software Engineer ).
The work contained in this report has not been submitted to any other University or institute for
the award of any other degree or diploma by me.
Yogesh
19001015071
EXAMINER’S EVALUATION
The following examiners have accessed the project report and conducted the viva-voce ex-
amination:
Name :
Designation :
Signature :
Date :
Name :
Designation :
Signature :
Date :
ACKNOWLEDGEMENT
I take this opportunity to express our sincere thanks and deep gratitude to all those people who
extended their wholehearted co-operation and have helped me in completing my tasks
successfully. I would like to express my gratitude to my manager and mentor, Mr Kushal
Sharma for constantly motivating me and sharing their experience in this field.
I would also like to thank Arnav , Aman , Vipul and all the other team members who have been
working with me on the project.
Yogesh
19001015071
TABLE OF CONTENTS
Training Certificate ii
Certificate iii
Candidate’s Declaration iv
Examiner’s Evaluation Certificate v
Acknowledgement vi
Table of Contents vii
1 Company Profile 1
1.1 Introduction of the company 2
1.2 Quality policy 3
1.3 Resources 3
2 Introduction to Project 4
2.1 About the System 5
2.2.1 Definition of system 5
2.2.2 Purpose and objective 5
2.2 Project Profile 5
2.2.1 Project Title 5
2.2.2 Scope of project 6
2.2.3 Existing Features 7
2.2.4 Project Team 8
2.2.5 Hardware/Software environment in company 8
3 Requirement Analysis and Methodology Used 9
3.1 Requirement Analysis 10
3.2 Methodology Used 10
3.2.1 Requirement Phase 11
3.2.2 Design Phase 12
3.2.3 Development Phase 13
3.2.4 Implementation Phase 14
3.2.5 Testing Phase 15
4 System Design 16
4.1 Activity Diagram 17
4.2 Sequence Diagram 18
4.3 Data Flow Diagrams 20
5 Modules Implemented 22
5.1 Modules 23
5.1.1 Digital Assets 23
5.1.2 Registration and Authentication 23
5.1.3 Sample Responses 23
5.1.4 Calculate Approved Offers 24
5.1.5 UDP (User Defined Pages) 24
5.1.6 Eligibility Process 25
6 Technology Stack 26
6.1 Tool Used 27
6.1.1 Visual Studio Code 27
6.1.2 Zeplin 27
6.1.3 DBeaver 27
6.1.4 GIT 27
6.1.5 Redis Server 28
6.1.6 STS 28
6.2 Languages Used 28
6.2.1 Java : Backend Development 28
6.2.2 Frontend Development 29
6.2.3 SQL 30
7 Testing 31
7.1 Unit Testing 32
7.1.1 Unit Testing on Backend 32
7.1.2 Unit Testing on Frontend 32
7.2 Functional and Non - Functional Testing 32
7.3 Test Life Cycle 33
8 SnapShot of GUI 34
9 Future Enhancement 40
10 Conclusion 42
11 References 44
Brief Overview of Student 46
CHAPTER-1
COMPANY
PROFILE
1 COMPANY PROFILE
PureSoftware is one of the fastest growing software products and services companies that
delivers a differentiated customer experience, accelerates cycle times and helps customers
achieve business outcomes through the adoption of new - age digital technologies and integrating
them with their existing systems.
It stands to deliver digital excellence driven by next - gen solutions and strong partnerships
globally.
PureSoftware is proud to partner with leading global organizations that share our passion for
innovation and building a resilient, technologically - enabled world. It works together with
business leaders to build incredible things powered by the latest technology.
At PureSoftware we help Business Transform with Simplified Next - Gen Technology Solutions
that Address Complex Business Problems. Its domain expertise, strategic thinking, and a certified
talent pool combined with a Customer - Centric Approach and Flexible Processes help it to
deliver their promise of excellence It creates engagement models that drive cost and time
reduction in projects while maintaining the highest software engineering standards.
11.2 QUALITY POLICY
PureSoftware has various policies and procedures. It has company-wide, entity, business,
cross functional and business partner policies and procedures. It has department specific policies
and procedures for change management, capacity management, access control, information
security, project management, risk management. A plan is established for the software
management and is created for all projects. Document preparation to testing is done in the
predefined step manner. It maintains the quality of the project to ensure that the client's needs are
met by following the best practices. It appreciates and emphasizes to the staff that the proper
standards for coding are maintained which enhances the quality delivery to the customer .
11.3 RESOURCES
PureSoftware has direct presence in 35+ cities globally and has more than 900+
resources across 11+ Countries - providing services in various verticals like Banking and
Financial Services, Telecom and Semiconductor, Life Sciences and Health Care , Retail and
Logistics and Casinos and Gaming.
INTRODUCTION TO
PROJECT
2 INTRODUCTION TO PROJECT
Platforms loan lifecycle management system helps businesses digitize the complete loan
lifecycle end to end, from loan origination to loan processing, loan disbursement, repayments,
and closures. Arttha’s loan management platform is an API based offering with on - the - fly
product configuration, personalized loan offers, pre - approved loans, and promotion
configuration.
The agent banking solution enables banks to deploy agents who can extend services to the
unbanked in remote areas with no access to bank branches and triggers Financial Inclusion. The
solution offers the flexibility and agility necessary for servicing remotely working customers by
enabling last mile banking connectivity.
2.2.4 Project team
As an Intern at Company, I was assigned a project definition to work on. A mentor was
provided to me throughout the internship and helped me regarding any issue regarding the in-
frastructure. Sr. Software Engineer Mr Kushal Sharma was provided for helping regarding the
company infrastructure issue.
The company provided their own machine to work on which we require to raise software
requests to install new software. The software request sometimes takes a long time. The company
has their own app engine to deploy the application.
CHAPTER-3
REQUIREMENT
ANALYSIS
AND
METHODOLOGY
USED
3 REQUIREMENT ANALYSIS AND METHODOLOGY
USED
Requirements analysis involves frequent communication with system users to determine specific
feature expectations, resolution of conflict or ambiguity in requirements as demanded by the
various users or groups of users, avoidance of feature creep and documentation of all aspects of
the project development process from start to finish. Energy should be directed towards ensuring
that the final system or product conforms to client needs rather than attempting to mold user
expectations to fit the requirements.
We have used Agile methodology for development of this project. Agile SDLC model is
a combination of iterative and incremental process models with focus on process adaptability and
customer satisfaction by rapid delivery of working software products.
Agile Methods break the product into small incremental builds. These builds are provided in
iterations. Each iteration typically lasts from about one to three weeks. Every iteration involves
cross functional teams working simultaneously on various areas like planning, requirements
analysis, design, coding, unit testing, and acceptance testing.
At the end of the iteration a working product is displayed to the customer and important
stakeholders. The agile software development emphasizes on four core values:
During the Requirements Analysis Phase, the business (project in-scope) requirements
that were previously documented in an earlier phase are revalidated and further analyzed and
decomposed into high-level system (functional and non-functional) requirements that define the
automated system/application in more detail regarding inputs, processes, outputs, and interfaces.
If appropriate, a logical depiction of the data entities, relationships and attributes of the
system/application is also created. During the Requirements Analysis Phase, the initial strategy
for testing and implementation is also begun. In addition, the work planned for future phases is
redefined, if necessary, based on information acquired during the Requirements Analysis Phase.
The Requirements Analysis Phase ends with a review to determine readiness to proceed to the
Design Phase.
Detailed application requirements (both functional and non-functional) are required to permit
detailed project management planning, execution, and control. If detailed requirements and
subsequent planning identify a breach of the investment-level cost, schedule or performance
baselines established at the end of the planning phase, a formal change to the Investment
Baselines will be requested. The purpose of acquisition planning in the Requirements Analysis
Phase is to allocate the requirements among development segments, research and apply lessons
learned from previous projects, develop a schedule that lists activities for completion and work
products to be produced with appropriate estimated completion dates, identify potential product
and service providers, and award contracts.
The tasks described below are performed during the Requirements Analysis Phase:
The design phase attempts to uncover various entities involved in the system and their associated
behavior and the interfaces that would be provided by the system. Use cases were identified, ER
Diagram and Data Flow Diagrams for the system were developed. Database tables and the
relationship were also identified during this phase.
3.2.3 Development Phase:
● API Gateway: API gateway represents a single-entry point into the system, providing the
request routing, security, protocol translation, and composition of microservices in an
application. API gateway also enables to mark the failure in the backend services of the
application by returning the default data.
● Load Balancer: Load balancing is the process of sharing incoming network traffic in
concurrent or discrete time between servers called a server farm or server pool. This sharing
process can be evenly scaled or can be performed according to certain rules. Rules like Round
Robin, Least Connections etc.
● Eureka Server: Eureka Server is an application that holds the information about all
client-service applications. Every Micro service will register into the Eureka server and Eureka
server knows all the client applications running on each port and IP address. Eureka Server is
also known as Discovery Server.
● Configuration Server: With microservices, we create a central config server where all
configurable parameters of micro-services are written version controlled. The benefit of a central
config server is that if we change a property for a microservice, it can reflect that on the fly
without redeploying the microservice.
● REST APIs: REST API can provide this simple API-based synchronous messaging
solution to embed the connection between microservices in a distributed system with HTTP
request-response. REST uses various representations to represent a resource like text, JSON,
XML, etc.
The System was implemented on a web server . The Database was maintained under
Postgres 11.7. User Interacts via a web Browser which sends HTTP requests to the server which
replies after processing the requested page. Thus, the system is implemented as a client server
model. To access the data the system connects to the gateway which redirects it to the service
discovery (eureka server) that responds with requested Data Sets from the relevant
microservices.
3.2.5 Testing Phase:
Individual developers in their respective local environments will do unit testing. After
completion of unit testing and defect fixing, the code will be checked in the configuration
management system. After completion of unit testing, automation testing is done. Motive of
automation testing is to automate the Testing Procedure
CHAPTER-4
SYSTEM DESIGN
4 SYSTEM DESIGN
The Sequence diagram shows the interaction of objects in the system. It is used to display the
high-level interactions between the system and the user. It displays the behavior of the sys- tem. It
describes the interaction between the objects in the sequence order. It is also referred to as event
diagrams or event scenarios. It is used to understand the requirement for the new or ex- isting system
so used by software developers or business professionals. It is useful for generat- ing the basics flow
for every use case which helps in understanding the requirements.
As shown below Table 4.2 Symbols for Sequence Diagram shows symbol name with its symbol and
as shown in the Figure 4.2 Sequence diagram for Square Capital.
Table 4.2 Symbols for Sequence Diagram
21
CHAPTER-5
MODULES IMPLEMENTED
5 MODULES IMPLEMENTED
5.1 MODULES
Multiple API’s are implemented against these modules for generating the digital assets against
the loan product definition. Multiple Digital Assets created and altered depending upon the
requirements which provides flexibility to the process of the entire workflow.
The user will get the required username and password (access token) to authenticate the API
after the registration.
Visual Studio Code is a lightweight but powerful source code editor which runs on your
desktop and is available for Windows, macOS and Linux. It comes with built-in support for
JavaScript, TypeScript and Node.js and has a rich ecosystem of extensions for other languages
and runtimes (such as C++, C#, Java, Python, PHP, Go, .NET).
The syntax of Java is similar to C and C++, but has fewer low-level facilities than either of them.
The Java runtime provides dynamic capabilities (such as reflection and runtime code
modification) that are typically not available in traditional compiled languages. As of 2019, Java
was one of the most popular programming languages in use according to GitHub, particularly for
client–server web applications, with a reported 9 million developers.
6.2.2 JavaScript, TypeScript , CSS , HTML , Angular JS for FrontEnd Development
Cascading Style Sheets (CSS) controls the presentation aspect of the site and allows your
site to have its own unique look. It does this by maintaining style sheets that sit on top of other
style rules and are triggered based on other inputs, such as device screen size and resolution. The
CSS can be added externally, internally, or embedded in the HTML tags.
● JavaScript
7.1 UNIT TESTING – Unit testing is performed on frontend and backend both sides. The
details of which is as follows:
7.1.1 Unit Testing on Backend – Unit testing on backend is done using Junit and Mockito
where Junit is used for writing unit test cases for each functionality while Mockito is a frame-
work which helps in mocking the data if one module is dependent on other modules. Spring boot
follows MVC structure and hence while testing the service layer we need to mock data for the
repository layer and hence it is mocked using Mockito. It is required to have at least 80% line
coverage for the production environment. In my case it is 82% code coverage.
7.1.2 Unit Testing on Frontend – Unit Testing on frontend is done so that the tool evaluates
the web page and provides suggestions to minimize loading time. It makes web page retrieval
quicker when users access web pages using Google search engine. Creating a frontend unit
testing plan helps you to know the devices, browsers, and systems which your project needs to
cover.
● Requirement Analysis : The most important phases of the test life cycle are the
requirement analysis . This is done by collecting the SRS documents for the new
functionality to be executed and tested.
● Test Planning : On the basis of the requirements , functionality developed and the
required quality expectations a plan of action for execution is prepared.
● Test Case Development : Tests and creatively designed and documented using several
techniques like error guessing, heuristics, etc.
● Test Execution : For the test data the developed functionality is tested to check for both
business requirements and end - user expectations.
● Test Cases Closure : A test closure report is generated fully describing the testing
activities and the results obtained. On the basis of the matrix data generated against the
various testing parameters, further meetings are conducted to analyze the present state of
the application and the future course of action that would be taken.
CHAPTER-8
SNAPSHOT OF
GUI
8 SNAPSHOT OF GUI
Every day, Arttha is improving. In terms of infrastructure and protection problems, user
design, user interaction, and the technologies we use, the platform is always getting stronger.
Quality and better understanding may be used to expand its versatility.
The main scope of the project will be to expand the project market by making it available to all
sectors and to improve the design and requirements according to the customer's requirements.
Registration increases the consistency and accountability of knowledge businesses so that
consumers and other main actors can make more educated choices and have a wider reach.
CHAPTER - 10
CONCLUSIO
N
10 CONCLUSION
The project Arttha - Unified Fintech Platform is about improving the quality and empowering
banks to reduce operational costs and accelerate financial inclusion by delivering simplified
branchless banking services to the unbanked and the underbanked by its Agent Banking solutions.
A future - ready and flexible loan lifecycle management solution turning lending into a quick,
painless process and enables lenders to sustain customer - centric digital experiences at scale.
It was a great learning experience where I learned Spring Boot , DBeaver, JPA, Lombok, Gitlab.
It was a great wonderful opportunity provided by PureSoftware and JC Bose University, YMCA.
I was able to learn and do challenging stuff every day.
\
CHAPTER-11
REFERENCES
11 REFERENCES
Name: Yogesh
Internship Company: PureSoftware Private Limited , Green Blvd, Plot B9-A, 3rd Floor