Professional Documents
Culture Documents
EPAM
A Training Report
Submitted in partial fulfilment of the requirements for the award of degree of
SUBMITTED BY SUBMITTED TO
Name of the student: Yashvardhan Name of the supervisor: Komal Arora
Registration Number: 11912558 Designation: Assistant Professor
Section: K19JA Signature of supervisor:
1
Abstract
The Electricity Billing System project, developed using Spring Boot, aims to automate and
streamline the billing process for electricity utility companies. Leveraging the capabilities of
the Spring Boot framework, the system provides a comprehensive solution for managing
meter readings, billing calculations, invoice generation, and payment processing.
Through a user-friendly web interface, customers can conveniently access and pay their bills,
while meter readers can efficiently submit readings. The system incorporates secure user
registration and authentication, ensuring data privacy and access control. Billing calculations
are performed accurately based on dynamic tariff rates, and invoices are automatically
generated, reducing manual effort and improving efficiency.
The implementation of Spring Boot's integrated modules, including Spring Data JPA for
database management and Spring Security for authentication, ensures robustness and
security. The system also integrates a secure payment gateway, allowing customers to make
payments securely through various payment options.
With the Electricity Billing System, utility companies can streamline their billing procedures,
minimize errors, and reduce administrative overhead. By automating the calculation and
generation of invoices, the system eliminates manual effort and enhances accuracy, ensuring
that customers receive timely and accurate bills.
Moreover, the integration of a secure payment gateway provides customers with a convenient
and reliable payment method. The system supports various payment options, allowing
customers to choose the most suitable mode of payment, while ensuring the security and
integrity of their financial transactions.
In conclusion, the Electricity Billing System, built using the Spring Boot framework,
revolutionizes the electricity billing process by offering a reliable, efficient, and user-friendly
solution. By automating key processes, reducing errors, and providing a seamless payment
experience, this system empowers utility companies to improve customer satisfaction,
enhance operational efficiency, and ensure timely payments.
2
Student Declaration
Phagwara, Punjab, is a record of original work for the partial fulfillment of the
requirements for the award of the degree Computer Science and Engineering.
Yashvardhan
Signature of the student Dated: 30/04/2023.
3
Declaration by the supervisor
Komal Arora
Assistant Professor
Signature of Supervisor
4
Acknowledgement
I would like to express my heartfelt gratitude to all the individuals and organizations who
have contributed to the successful completion of the online electricity billing system project.
Their support, guidance, and encouragement have been invaluable throughout this journey.
First and foremost, I would like to extend my deepest appreciation to our project supervisor,
Komal Arora, for their guidance, expertise, and continuous support. Their valuable insights,
feedback, and mentorship have played a pivotal role in shaping this project and ensuring its
success.
I would also like to thank the faculty and staff of Lovely Professional University, for
providing me with the necessary resources, facilities, and a conducive learning environment.
Their dedication to education and commitment to nurturing young minds have been
instrumental in our academic growth and the completion of this project.
Thank you!
Yashvardhan (11912558)
Lovely Professional University
Date: 30/04/2023
5
Table of Contents
1 Abstract 2
1 Declaration by Student 3
2 Declaration by Supervisors 4
3 Acknowledgement 5
4 Undertaking 7
5 Chapter 1. INTRODUCTION to EPAM 8
9 Chapter-5 ACHIEVEMENTS 43
6
Undertaking by the student for submitting Final Report of EPAM Training
I am grateful to have been provisionally allowed to appear for the ETP viva and I understand the
significance of submitting the final project along with the report to the university after the
completion of my EPAM Training. I am committed to fulfilling this requirement before May
2023 to ensure that my final evaluation is considered by the university.
I am aware that failing to submit the project and report by the given deadline will result in my
final evaluation being discarded by the university, which will ultimately affect my overall
academic performance. Therefore, I am determined to submit my project and report in a timely
manner to avoid any such consequences.
Thank you for your consideration in this matter, and I assure you of my dedication and
commitment to meeting all the necessary requirements.
7
CHAPTER 1
INTRODUCTION
8
1.2 Company’s Vision and Mission
EPAM Systems, Inc. is driven by a strong mission and vision that have
helped the company establish itself as a leader in the software engineering
industry. EPAM's mission is to help its clients succeed through software
engineering excellence. This is achieved through a relentless focus on
innovation and a commitment to building long-term partnerships with
clients.
partner to many Fortune 500 companies and leading global brands. The
company's innovative approach to software engineering has earned it
numerous awards and accolades, and its dedication to creating a positive
impact on society and the environment sets it apart as a socially responsible
organization.
9
great emphasis on quality assurance and testing and strives to exceed
client expectations in every project.
10
1.4 Origin and Growth
Despite its rapid growth, EPAM has remained committed to its core values of
quality, innovation, collaboration, customer centricity, integrity, and social
responsibility. The company's dedication to these values has helped it
to build long-term partnerships with clients, attract and retain top talent, and
make a positive impact on society and the environment.
11
who work together to create high-quality software products and
platforms.
Each of these departments plays a critical role in helping EPAM deliver value
to its clients. By leveraging the unique skills and expertise of each
department, EPAM can create customized solutions that meet clientneeds and
drive business results.
12
CHAPTER 2
INTRODUCTION TO PROJECT
Throughout the period of the internship, we learned a lot of skills. Every skill
that we learned or gained have different scopes and each skill plays avital role
in our lives. The scope of some skills that we learned are mentioned below:
• Teamwork
• Problem solving
• Co-ordination
• Interpersonal Skills
• Time Management
Java Development
Java development is a key area of expertise for EPAM Systems, Inc. Java is
a versatile programming language that is used to create a wide range of
applications, from enterprise systems to web-based applicationsand mobile
apps. EPAM's team of Java developers has extensive experience in creating
high-quality, scalable, and secure software solutions using the latest Java
technologies.
13
clients to understand their business needs and develop customized
solutions that meet those needs.
14
2.2 Overview of project
The Spring Boot project on electricity billing system is a web-based application developed
using the Spring Boot framework. It provides a comprehensive solution for managing the
billing process of an electricity utility company. The system includes features such as meter
reading submission, billing calculation, invoice generation, and payment processing. With
Spring Boot's ease of development and powerful features, the project offers a scalable and
efficient solution. It utilizes Java and Spring Boot's robust ecosystem, including Spring Data
JPA for database connectivity, Thymeleaf for dynamic web page rendering, and Bootstrap for
responsive user interfaces. The project aims to streamline the electricity billing process,
enhance accuracy, and improve customer satisfaction.
15
2.3 Project Features
16
2.3.2 Landing page
17
2.3.4 All customers details
18
19
2.3.6 Generate Bill
20
2.3.7 Monthly bill viewer
21
2.4 Technology used in project.
2.4.1 SpringBoot
2.4.2 MySQL
22
CHAPTER 3
TECHNOLOGIES LEARNT DURING INTERSHIP TRAINING
3.1.1 Variables and Data Types: Variables are used to store data in a
Java program. A variable can hold different types of data, such as
integers,floating-point numbers, and strings. Here is an example:
int x = 10, y = 5;
int sum = x + y; // Addition operator
int diff = x - y; // Subtraction operator
boolean result = x > y; // Relational operator (greater than)
23
3.1.4 Classes and Objects: Java is an object-oriented programming
language,which means that programs are made up of classes and objects. A
class is a blueprint for creating objects, while an object is an instance of a
class. Here's an example of a class and object:
class Person {
String name;int
age;
void sayHello() {
System.out.println("Hello, my name is " + name + " and I am " +
age + " years old.");
}
}
24
this.name = name;
}
25
System.out.println("Woof");
}
3.1.7 Enum: An enum is a special type of class that represents a fixed set
ofconstants. Enum constants are implicitly static and final, and can be
accessed using the dot notation. Here's an example:
In this example, the Day enum represents a fixed set of days of the week.
The today variable is assigned the MONDAY constant, whichcan be
accessed using the dot notation.
26
3.1.8 String: A String is a sequence of characters that is used to represent
text.In Java, strings are represented using the String class, which provides a
range of methods for manipulating strings. Here's an example:
In this example, the greeting variable is a String that contains the text
"Hello, world!". The length() method returns the length of the string,
while the toUpperCase() method returns a new string with all the
characters converted to uppercase.
3.1.9 Annotations:
27
Here's an example of how annotations can be used in Java:
@Override
public void myMethod() {
// do something
}
@Deprecated
public void oldMethod() {
// do something old
}
@SuppressWarnings("unchecked") public
void someMethod() { List<String> myList
= new ArrayList();
// do something with myList
}
28
3.2 Advanced Java
In the example above, we're creating a new thread by extending the Thread
class and overriding the run() method. We then create an instanceof this
class and call the start() method to begin execution of the thread.
29
public class MyClass {
In the example above, we're using reflection to create a new instance of the
MyClass class, then using reflection again to invoke the myMethod()
method and print the result.
3.2.3 Generics: Generics are a way of making Java code more flexible and
reusable by allowing classes and methods to work with a variety of
different types. They provide a way of defining a type parameter that canbe
used throughout the code. Here's an example of using generics to create a
list of strings:
30
method. The use of generics allows us to ensure type safety and avoid
runtime errors.
31
System.out.println(names); // Output: [Alice, Bob, Charlie]
3.3.2 Set Interface: Sets are collections of elements that do not allow
duplicates. The Set interface provides methods for adding, removing,
and checking if an element is present. Example:
3.3.3 Map Interface: Maps are collections that store key-value pairs.
The Map interface provides methods for adding, removing, and
accessing elements by key. Example:
32
3.3.5 Enum: An enum is a special type of class that represents a fixed
set of constants. Enum constants are implicitly static and final andcan be
accessed using the dot notation. Here's an example:
Overall, Java Collections provides a powerful and flexible way to work with
groups of objects in Java, making it an essential tool for any Java developer.
The Model represents the data and the business logic of the application.
The View is responsible for rendering the data to the user interface.
The Controller receives the input from the user and interacts with boththe
Model and the View.
33
3.4.2 Spring MVC Architecture
The Spring MVC architecture is built on top of the MVC pattern. The
following diagram shows the high-level architecture of Spring MVC:
34
3.4.3 Spring MVC Components
The following are the key components of the Spring MVC framework:
Model: This component represents the data that the view will
render.
35
3.5 SpringBoot
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
36
application. Here's an example of configuring an embedded Tomcatserver:
@SpringBootApplication public
class MyApplication {
@Bean
public TomcatServletWebServerFactory tomcatFactory() {
return new TomcatServletWebServerFactory() { @Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
}
@Bean
public ServletWebServerFactory servletContainer() {
return new TomcatServletWebServerFactory();
}
3.5.3 Spring Data Spring Boot provides powerful support for working
with data, including support for JDBC, JPA, and other data sources.
Developers can use Spring Data to write simple, elegant code for working
with databases. Here is an example of using Spring Data to saveand
retrieve data from a MySQL database:
37
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
3.5.4 RESTful Web Services Spring Boot includes powerful support for
building RESTful web services. Developers can use Spring MVC to easily
create RESTful endpoints, and Spring Boot provides auto- configuration
support for many common use cases. Here's an example ofdefining a
RESTful endpoint using Spring MVC:
@RestController
@RequestMapping("/api") public
class MyRestController {
@GetMapping("/hello")
public String sayHello() {
return "Hello, World!";
}
38
3.6 MySQL
3.7 Angular
3.8 TypeScript
39
and maintainability for large-scale applications. Developed and maintained by
Microsoft, TypeScript can be used with any JavaScript library or framework
and compiles to plain JavaScript, allowing developers to take advantage of its
features while maintaining compatibility with existing codebases. With
TypeScript, developers can catch potential errors early, benefit from better
code completion and refactoring support, and enjoy a more robust and
maintainable codebase. TypeScript is widely used in enterprise-level
applications, as well as in popular frameworks like Angular,React, and Vue.
3.9 Thymeleaf
3.10 Okta
40
such as Spring Boot, Angular, and React. Okta's developer-friendly
approach and extensive documentation make it a popular choice for
developers looking for a secure identity management solution.
41
CHAPTER 4
CONCLUSION
42
CHAPTER 5
ACHIEVEMENTS
43
CHAPTER 6
THANK YOU, MENTOR
I am grateful for the invaluable guidance and support that Komal Ma’am
provided me throughout my internship journey. Her dedication to my
development as a Java developer has enabled me to gain a deeper
understanding of Java development principles and methodologies. I would
like to express my sincere gratitude to her for her mentorship and for helping
me achieve my goals. Thank you, Komal Ma’am, for being an outstanding
teacher and mentor.
44
CHAPTER 7
THANK YOU, TRAINING AND PLACEMENT CELL
I would like to express my sincere gratitude to the Training and Placement Cell
of Lovely Professional University, Phagwara, Punjab, for providing mewith the
opportunity to intern with EPAM. This experience has been instrumental in
shaping my skills and knowledge as a software developer.
I would like to extend my appreciation for the efforts made by the Training
and Placement Cell in organizing campus recruitment drives and providing us
with the necessary training and resources to excel in our chosen field.
The skills and knowledge I have gained during this internship will
undoubtedly benefit me in my future career.
45
References
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/
https://www.baeldung.com/spring-boot
https://github.com/spring-projects/spring-petclinic
https://stackoverflow.com/
https://spring.io/guides
https://dzone.com/
https://medium.com/
46