You are on page 1of 36

EIPP CONFIGURATION FRAMEWORK DEVELOPMENT

Internship Project

Submitted by
Name: Rashmi Rekha Kar Regd. no.: 1841016081

B. Tech. 8th Semester, ECE (Sec:C),

Supervised by:

Ms. Neha Srivastava

DEPT. OF ELECTRONICS & COMMUNICATION ENGINEERING


Institute of Technical Education and Research
SIKSHA ‘O’ ANUSANDHAN DEEMED TO BE UNIVERSITY
Bhubaneswar, Odisha, India.
(June, 2022)

1
DECLARATION

We certify that

a. The work contained in this report is original and has been done by us under the guidance
of our supervisor(s).

b. The work has not been submitted to any other Institute for any degree or diploma.

c. We have followed the guidelines provided by the Department in preparing the report.

d. Whenever we have used materials (data, theoretical analysis, figures, and text) from other
sources, we have given due credit to them by citing them in the text of the report and
giving their details in the reference.

Name of the Student Registration Number Signature


Rashmi Rekha Kar 1841016081

1
REPORT APPROVAL

The report entitled


EIPP CONFIGURATION FRAMEWORK DEVELOPMENT

by
Rashmi Rekha Kar 1841016081
is approved for the degree of
Bachelor of Technology
in
Electronics and Communication Engineering

Supervisor Faculty Advisor

Neha Srivastava

Project Coordinator Head of the Dept.

Date:
Place:
(Departmental Seal)

2
CONTENTS
DECLARATION I
REPORT APPROVAL II
CONTENTS III
ABSTRACT IV
GRAPHICAL ABSTRACT V
PLAGIARISM CHECK CERTIFICATE VI
INTRODUCTION 1
1. Company Overview 2
2. Carrier at HighRadius 3
CHAPTER 1: TECHNOLOGIES 4
1.1. Client Side (Ext js FrameWork) 4
1.2. Server Side Java 5
1.3 MVC 5
1.4 Spring 9
1.5 Struts 10
1.6 Hibernate 12
CHAPTER 2: HIGHRADIUS SYSTEM ARCHITECTURE AND DESIGN 14
CHAPTER 3: DESIGN SCHEME 17
3.1. UI of the Project 17
3.2. Add Pop up window 18
3.3 Delete Pop up window 18
3.3 Edit Pop up window 19
3.4 Backend of Project 20
CHAPTER 4: PROBLEM DEFINITION 23
CHAPTER 5: CHALLENGES 24
CHAPTER 6: CONCLUSION 26
CHAPTER 7: SCOPE OF WORK 26
REFERENCES 35
APPENDIX 36

3
ABSTRACT

This story will ease out the configuration process by providing a framework where
CRUD operations can be done through UI.

There will be a single screen where the user can select the configurations category
he/she wants to configure from a drop-down.

On selecting a particular configurations category, a list of tabs for each configs will
open where the user can perform CRUD operations through UI.

This will reduce the As-Is process of manual DB time and effort, easing the process
of doing a configuration. 

EippCommonConfig.js will be the common Js file for the framework which creates
all UI components dynamically based on the configurations .

For dynamic forms which contain inter-dependent components like(template


configurations form), the developer needs to define a function for add/edit in their
own Js. That function name needs to be entered in the config table for the
respective configurations . Also the backend needs to be created separately for
add/edit actions.

There are common Action, Manager classes that need not be created for each
configurations , the framework will handle it.

The Dao Impl needs to be created for each config which needs to implement
EippCommonConfig abstract class.

Functionalities:

Dropdown :Select the parent config name from the dropdown.

Create the panel based on the selected dropdown value with the tabs that are
mapped to particular parent configs

Each tab will have Add,Edit,Delete functionality:

Fields for Add , Edit form will be created dynamically based on the datatype of the
child config for the specific tab.

4
GRAPHICAL ABSTRACT

Fig. 1 |Eipp Configuration UI

5
PLAGIARISM CHECK CERTIFICATE

6
Introduction
1 Company Overview
 HighRadius is a Fintech enterprise Software-as-a-Service (SaaS) company that
provides an Integrated Receivables Platform to optimize receivables and
payments functions such as credit, collections, cash application, deductions,
and electronic billing and payment processing. The Integrated Receivables
platform allows suppliers to digitally connect with buyers via the RadiusOne
network, closing the loop from supplier receivable processes to buyer payable
processes. HighRadius solutions have a proven track record of reducing Days
Sales Outstanding (DSO) and bad debt, and increasing the operation efficiency,
enabling companies to achieve an ROI in just a few months.
 The goal is to help A/R and credit departments adopt innovative processes
supported by high levels of automation so they may become more strategic,
more streamlined, and more successful. It operates on three core principles: to
reduce the total cost of ownership (TCO) of receivables solutions, to deliver a
concrete return on investment (ROI) and fast payback periods to our
customers, and to provide innovative functionality to the market. HighRadius
is trusted by some of the world’s largest corporations and is consistently named
one of the fastest growing technology companies in Houston, where it is
headquartered.

 HighRadius offers two product lines as well as implementation


services. Receivables Cloud and Payments Cloud are SaaS-based solution suites
that automate and improve cash application, invoicing, and credit, collections,
and deductions management. HighRadius Accelerators are certified solutions
for SAP that enhance the automation available in the Receivables Management
modules and reside natively in the application. HighRadius provides the most
highly specialized expertise in SAP Receivables Management (formerly FSCM)
and offers services to implement or optimize each of its modules.

7
Figure 1 | Company Structure

2 Carrier at HighRadius
HighRadius is an early-stage company providing software solutions for
automating a business’ order-to-cash cycle. For most businesses, accounts
receivable is either the largest or the second largest asset on their balance
sheet (in fact, it accounts for 40%, on average, of all the assets by value).
Efficient management of accounts receivable has a direct impact on the
financial health of a business. HighRadius is dedicated to helping businesses
efficiently manage this asset.

The products, uniquely complement traditional ERP systems and are


delivered both as a service over the web, deployed as software-as-a-service
(SaaS) in the cloud, and as add-ons to standard ERP functionality, deployed
on-premises in the business’ ERP landscape.

At HighRadius, you get:

8
• an opportunity to build innovative products that customers love

• a challenging work environment.

Figure 2 | Total employee count

Figure 3 | Employee distribution and headcount growth by function

9
Chapter 1: Technologies
As a FSD intern, I worked on backend and frontend frameworks which included
ExtJs, MVC architecture, Java, Spring, Struts, Hibernate, Apache Tomcat Server.

1.1 Client Side(Ext JS Framework)


ExtJS is a JavaScript framework (client-side) that enables developers to develop
Rich Internet Applications (RIA) (static websites or data-driven applications) with
a large number of options. Since ExtJS is a javascript framework, all of the
javascript rules are applicable for ExtJS. ExtJS makes excellent & extensive use on
DOM, CSS etc. ExtJS is case-sensitive, i.e., a! = A.
Key features of ExtJS
 Provides everything a developer needs to build data-intensive, cross-platform
web applications.
 Streamlines cross-platform development.
 Provides a common use model and coding style across components to simplify
ongoing web app maintenance.
 Increases the productivity of development teams through a rich set of web
application tools.

Figure 4 | ExtJS cross-platform support

10
Ext JS includes a set of GUI-based form controls (or "widgets") for use within web
applications:
 text field and text area input controls
 date fields with a pop-up date picker
 numeric fields
 list box and combo boxes
 radio and checkbox controls
 HTML editor control
 grid control (with both read-only and edit modes, sortable data, lockable and
draggable columns, and a variety of other features)
 tree control
 tab panels
 toolbars
 desktop application-style menus
 region panels to allow a form to be divided into multiple sub-sections
 sliders
 vector graphics charts
Many of these controls can communicate with a web server using Ajax.

1.2 Server-side (Java)


 Object Oriented: In Java, everything is an Object. Java can be

easily extended since it is based on the Object model.

 Platform Independent: Unlike many other programming languages including C


and C++, when Java is compiled, it is not compiled into platform specific

machine, rather into platform-independent byte code.

 Multithreaded: With Java's multithreaded feature it is possible to write


programs that can perform many tasks simultaneously.

 Portable: Being architecture-neutral and having no implementation

dependent aspects of the specification makes Java portable.

11
1..2.1 Process Overview

Figure 5 | Process Overview

1.3 MVC
Model-View-Controller, often abbreviated as MVC, is a design architecture used for

developing web apps. There are three sections to it:

• Model is the lowest level of a pattern that is responsible for storing information.

• View: Responsible for showing data on the UI to the user.

• Controller: Regulates and maintains the interactions between the model and
the view.

12
Figure 6 | MVC

As a result, MVC is able to segregate the application logic from the visual design. In
the past, it was used to design user interfaces. Used popularly now for app
development.

1.3.1 How is MVC relevant to my project?


• MVC is used to allow separation of the logics required in the project, thus

providing an extra layer of security and reducing redundancy.

13
• The Model class or the DAO class consists of the logic that connects with the

database.

• The View class or the Action class consists of the logic that connects the frontend

UI.

• The controller class interfaces the DAO and the Actionclass logic with each other.

• This enables smooth running of our product and bugs can be resolved easily.

1.3.2 MVC Architecture

Figure 7 | MVC Architecture

14
1.4 Spring
The most well-known enterprise Java framework is Spring. The Spring framework
aids in creating a high performing, reusable and testable code.

Spring is lightweight, with the basic version being just 2 MB. Spring enables a

Plain-Old-Java-Object(POJO) based programming model.

1.4.1 Use of Spring in my project


• I created POJO classes for all the interfaces of MVC and Spring enables those

interfaces to be connected with each other.

• Spring uses the Maven capabilities to allow creation of getters and setters which

can be used when a Model class functionality is referenced from View class, or

when a DAO class connects with the database taking reference from the POJO

class

• Spring provides dependency injection, which enables the interfaces to be

independent of each other.

• We create APIs to connect View class with the front end using spring.

15
1.4.2 Framework for Spring

Figure 8 | Spring Framework

1.5 Struts
• Struts is used to create a web application based on Servlet and JSP. Struts depend

upon the MVC framework.

• In struts, the composite view manages the layout of its subviews and can

implement a template, making it easier to customize across the entire

application.

• A composite view is made by combining the sub views together.

16
1.5.1 Implementation of struts in my project:
• Struts framework is used in my project to enable the capabilities of MVC

framework.

• Struts is used to create the beans that connect all the interfaces of MVC with each

other.

• I use xml files to create these beans

• I connect the beans with each other using their objects in the MVC classes.

• The AJAX calls that are sent from frontend to backend for UI is done using Struts

framework in my project.

Figure 9 | Struts Architecture

17
1.6 Hibernate
Hibernate is an object-relational mapping (ORM) framework for web applications
that

helps developers connect object-oriented domain models with relational databases.

Object-level abstraction and containerization are the foundations of ORM. With

abstraction, objects can be accessed, manipulated, or addressed without having to


worry

about the underlying data.

1.6.1 Usage of Hibernate in my project


• I used Hibernate to implement Hibernate Query Language in my DAO class, so

that I can perform the function of adding a record, deleting a record or fetching a

record from the database.

• I also used hibernate to map my POJO classes with the corresponding table and

corresponding column in the database, thus enabling effective implementation of

the required functionalities I have created.

18
1.6.2 How does Hibernate work?

Figure 10 |Hibernate Architecture

19
Chapter 2: HighRadius System
Architecture and Design

At HRC there is a robust structure which is followed for each project and for each

developer.

20
Figure 11 |System Architecture

 Each project has a one month cycle following the agile software model. New
projects are assigned each month and each monthly cycle is called a
"MonthName" Sprint. For example, January Sprint, February Sprint and so on.

 The projects within each sprint are assigned to developers in the beginning of
each sprint.

 A Product Requirements Specification (PRS) is provided to each developer in


the beginning of each project. A PRS provides the business requirements and
the customer requirements expected from the outcome of the assigned project.

 The business requirements mainly include the details about what are the
coding and the database requirements for this project, what functionalities are
expected from the developer.

 The customer requirements mainly consist of how the customer wants the UI
to look, also how soon the project is needed, i.e. the deadline.

 Eclipse IDE, one of the most popular IDEs for software development in Java is
used at HRC .

 The default maven projects required for further configuration are imported and
if any Maven or Java errors arise they are resolved by doing package updates or
Maven updates.

 The server Apache Tomcat 8.5.5 is set up with specific modifications for the
HRC environment.

2.1 After this the coding phase begins-

 Required POJO classes are created.

21
 Default methods that can provide assistance in further development are
inherited through their classes.

 Required methods are created Backend code is written in Java The controller
and the model class of the MVC architecture are created within one project.

 They have the interfaces in which the methods are initiated and beans are
created.

 The implementation class has the main functionality code.

 The view class of the backend is created in another project with the frontend
ExtJs class.

 The view class has the bean which is used to connect to the JS file for picking
up AJAX calls.

 All the backend and the frontend files are connected to each other through
bean mappings, using the ORM Hibernate Mappings.

After the development phase is complete, the developer moves to testing the

functionalities on the local server and debugging. After debugging all the issues
and completing the testing part the manager is informed by the developer that the

development and local testing is complete.

The manager takes code review and gets an understanding of the code the
developer has written, and guides the developer to refactor the code, if required.

After successful completion of code review, the code is pushed into the central

repository and then the consultancy team uses the common domain consisting of
all the functionalities to sell the product to customers.

22
Chapter 3: Design Scheme
3.1 UI of the Project

Figure 12 |Project UI

 It consists of Inline Search Panel, container which consists of buttons and the
Grid Panel.
 The Search Panel consists Message, Language, Message Key, Product, Create
User, Create Time, Update User ,with the help of these fields we can search and
get the required data in the UI and also sort the in increasing or decreasing
alphabetical order.
 On the Top of the grid there is a Pagination toolbar which consists of three
buttons add, edit, delete from which one can do the CRUD operation to the
database.

23
3.2 Add Window Popup

Figure 13 |Add Pop up Window

 When the user click on add button present at the pagination toolbar user will
see the add pop up and by filling the required fields and click on save button
the data get inserted in the database.

3.3 Delete Window Popup


 When the user select a record and click on delete button the pop up appears
which ask the confirmation of the user delete the selected record or not .

 If user clicks on Yes the data gets deleted from the database.

 User can also perform multiple delete.

24
3.3 Edit Window Popup with Pre populated value

Figure 14 |Edit pre-populated Window

 When the user selects the row which needs to be edited and clicks on edit
button then the edit window appears with the prepopulation of the fields with
the record which user select.
 Now the user can edit the data and when clicks on save button the data gets
edited in the database.

25
3.4 Backend of Project

Figure 11 |Folder structure of the similar project:

3.4.1Code files created:


 Action class (MessageRenamingAction.java )

 Dao Interface (MessageRenamingDao.java)

 Dao Implementation (MessageRenamingDaoImpl.java)

 Manager Interface (MessageRenamingManager.java)

 Manager Implementation
(MessageRenamingManagerImpl.java)

 Pojo Class (Bean.java)


26
MessageRenamingAction.java:

 A command that executes a behavior and returns a logical execution result a


calling flow execution can respond to.

 Actions typically delegate down to the application (or service) layer to perform
business operations.

 So in this way, action class is making connect between js and backend.

MessageRenamingManager.java:

27
MessageRenaming Manager is an interface which contains definition of all the
methods which are being called by js file.

ManagerImpl.java:
Manager Impl is a class which implements MessageRenaming Manager interface.
This is doing spring work. We are creating an object here which is making contact
to dao class.

MessageRenamingDao.java
Dao is an interface which contains definition of all the methods which are being
called by manager class impl.

MessageRenamingDaoImpl:
DaoImpl is a class where actual functionality is being returned. Actual logics are in
dao impl class.
As like in report execute, daoimpl class is returing the list of values from database.
This is the file that contains the code that interacts with database.

28
Chapter 4: Problem Definition
1.
2.

US 1: Development of EIPP Configuration Framework


US 2: Implementation of EIPP Configuration Framework while developing new
configs.
Configs Developed:
 DMS Dispute Notes Mapping

 UI Config

 Security Role Config

 Account Feature Configs


Technologies Used:
Spring
Hibernate
Ext Js
Maven

29
Chapter 5: Challenges
Debugging

 Debugging is also known as debug. Debugging is the process of finding and


resolving defects or problems within a computer program that prevent correct
operation of computer software or a system.

 Normally, software contains errors and bugs, which are routinely removed.

 Debugging tactics can involve interactive unit testing, Integration Testing, log
file analysis, monitoring at application or system level , memory dumps and
profiling.

 Normally the first step in debugging is to attempt to reproduce the problem.

Write Clean Code

Writing clean code is an important factor for the scalability of the code. It is

going to be helpful for the fellow developer to comprehend the code that you

have written.

There are various advantages of writing clean code. Following are some of

them to list.

●Easier to start, or continue

● Better for team onboarding

● Easier to follow Main code readable for people

Good Practices

30
● Using meaningful names for Variables, Functions, Procedures, Methods.

● Using comment for clarification wherever possible

● Be consistent

● Review your code regularly

● Proper Indentation

● Minimize the number of entities

● contains no duplication

Clean code is critical in software industry as it is perceived as what makes or

breaks project.

31
Chapter 6: Conclusion
 During the tenure of my internship, I had the exposure to a variety of work
being done at HighRadius. Starting from summer internship I got to know a lot
about FullStack Development. I am currently working as a paid intern in
HighRadius in the Slimfast Department.I am currently assigned a product
specific task under the Slimfast EIPP team.

 I got to know a lot about web development rather than Fullstack development
using spring hibernate struts and a lot of other technologies.I hope such an
experience will be of greater help to me in future.

 To conclude my project it has been a great experience to work on live projects


for HighRadius Technologies which is continuously striving to improve its
product and deliver high quality products to its customers.

Chapter 7: Scope of the Work


 In computer programming, create, read, update, and delete (CRUD) are the four basic
operations of persistent storage. CRUD is also sometimes used to describe user
interface conventions that facilitate viewing, searching, and changing information
using computer-based forms and reports.

32
INTERNSHIP CERTIFICATE

33
References
• ExtJs Documentation

https://docs.sencha.com/extjs/6.6.0/

• Spring

https://www.youtube.com/channel/UCYt1sfh546

4XaDBH0oH_o7Q

• Hibernate

https://www.tutorialspoint.com/hibernate/index.

Htm

• Information about Highradius

https://www.highradius.com/

34
Appendix

POD – Proof Of Delivery


CPA – Claims and Proof Of Delivery Automation
EDI – Electronic Data Interchange
DSO - Days Sales Outstanding
A/R – Account and Receivable
Saas – Software as a Service
FSCM – Financial Supply Chain Management
OCR – Optical Character Recognition
BOL – Bill of Landing
DDO - Days Deduction Outstanding
B2B - Business to Business
QA – Quality Assurance

35

You might also like