Wipro Internship Report
Wipro Internship Report
Bachelor of Technology
in
Computer Science and Engineering (Cyber Security)
by
I hereby declare that the work which is being presented in the training report is the record of
authentic work that was carried out by me in the partial fulfilment for the award of degree,
Bachelor of Technology in Computer Science and Engineering(Cyber Security). I also declare
that I adhered to all principles of academic honesty and integrity and have not misrepresented
or fabricated or falsified any idea /fact/ data/ source. This work has not been submitted to any
other university/institute for the award of any degree. I understand that any violation of the
above will result in disciplinary action by the institute and can also evoke penal action if
proper permission has not been taken when needed.
_________________
(Signature of student)
ADITYA KUMAR
10331721003
21/CSE-CS/003
2|Pag e
ACKNOWLEDGEMENT
I wish to express our profound gratitude to Dr. Arpita Mazumdar, Wipro Certified Faculty
(WCF), Associate Professor of Computer Science & Engineering (Cyber Security) our
esteemed project mentor, for her invaluable guidance, unwavering encouragement, and
steadfast support throughout the course of this project. His expertise, patience, and insightful
feedback have been instrumental in enhancing our skills and deepening our understanding
during this internship.
I also extend our sincere thanks to the Department of Computer Science and Engineering,
with a specialization in Cyber Security, for their consistent support and encouragement,
which have been vital to the successful execution of this project.
Lastly, I would like to acknowledge and thank all individuals who, directly or indirectly,
contributed to and supported us throughout this journey. Their efforts and encouragement
have been indispensable in the completion of this endeavour.
3|Pag e
Learning Objectives/Internship Objectives
Understanding Full-Stack Development: Gain in-depth knowledge of full-stack
application development, including front-end and back-end integration using
technologies like Java, SQL, JSP, and the MVC architecture.
Mastering Core Programming Concepts: Strengthen expertise in Object-Oriented
Programming (OOP) principles, exception handling, multithreading, and data
structures to design and implement robust applications.
Database Management Skills: Develop skills in database design, optimization, and
query execution using MySQL, while adhering to best practices like normalization
and indexing.
Software Development Lifecycle (SDLC): Learn to follow the SDLC phases,
including requirements gathering, design, development, testing, deployment, and
maintenance.
Problem-Solving and Debugging: Enhance problem-solving skills by troubleshooting,
debugging, and optimizing code for functionality and performance.
Team Collaboration and Communication: Understand the importance of teamwork,
effective communication, and the use of collaborative tools in a professional software
development environment.
Security Best Practices: Gain awareness of security protocols, including data
encryption, user authentication, and protection against vulnerabilities in web
applications.
Version Control and Documentation: Learn to use version control tools like Git and
develop detailed documentation for software projects.
Internship Objectives
Application of Theoretical Knowledge: Apply theoretical concepts learned in
academic coursework, such as Java programming, SQL database management, and
software architecture, to real-world projects.
Practical Exposure to Industry Tools: Gain hands-on experience with professional
development tools like Eclipse IDE, Apache Tomcat Server, MySQL Workbench, and
version control systems.
4|Pag e
Table of Content:-
7.1 Objective 25
7.2 Developed Components 25
5|Pag e
7.2.2 Controller 26
7.2.3 Model 26
8.8 Summary 30
8.9 Conclusion 30
9. Conclusion 31
12. References 34
13. Certification 35
6|Pag e
ABSTRACT
This report outlines the comprehensive training on core and advanced concepts of Java
Development and its associated frameworks, emphasizing best practices for building scalable,
robust, and efficient web applications. The training covered foundational Java programming
principles, including Object-Oriented Programming (OOP), Inheritance, and advanced
techniques like Abstraction, Exception Handling, and the Collection Framework.
The program introduced tools such as Eclipse IDE for efficient development and debugging,
along with essential concepts like Wrapper Classes, I/O Streams, Annotations, and Coding
Standards to ensure high-quality code. Practical implementation was demonstrated through
JUnit for unit testing and Multithreading for parallel processing, enhancing the application's
performance.
For database management, RDBMS/SQL was combined with JDBC for seamless data
integration. In the front-end domain, HTML, CSS, and JavaScript were utilized to create
interactive and responsive interfaces, augmented by AJAX for asynchronous operations. Core
web technologies like Servlets, JSP, and XML further streamlined dynamic content generation
and data exchange.
On the back end, advanced frameworks like Hibernate for ORM (Object-Relational Mapping),
Spring Core, and Spring Boot were explored for building modular and enterprise-level
applications. The development of RESTful APIs using REST Web Services was integrated with
modern front-end frameworks like Angular to deliver full-stack web solutions.
The training emphasized best practices and coding standards, preparing participants to create
secure, efficient, and maintainable software systems. Tools like ANT for build automation
ensured project scalability and efficiency. This holistic approach to Java development bridges
foundational principles with modern frameworks, equipping developers with skills to excel in
real-world application development.
7|Pag e
Chapter-1
INTRODUCTION
This project centers on the design and development of a scalable, enterprise-grade web
application using core Java concepts, modern frameworks, and advanced technologies. It
demonstrates the practical application of Java in creating dynamic and interactive solutions
while adhering to industry standards for performance and maintainability.
The front-end combines HTML, CSS, JavaScript, Angular, and AJAX to deliver a responsive
and interactive user interface, enabling seamless client-server communication. On the server-
side, Spring Boot and Hibernate are utilized to simplify development with a modular
architecture. Spring Boot accelerates application development through pre-configured
components, while Hibernate facilitates Object-Relational Mapping (ORM) for efficient
database interactions. Servlets and JSPs enable dynamic content delivery.
The project employs a RESTful architecture for flexible, API-driven communication between
components. The back-end integrates RDBMS, SQL, and JDBC, ensuring efficient data
management and scalability. Development is enhanced using the Eclipse IDE, with build
automation handled by ANT and unit testing performed with JUnit to maintain coding standards.
8|Pag e
Chapter-2
TRAINING OVERVIEW
The TalentNext Program focused on a robust set of technologies essential for modern web
development. Here's an overview of the key technologies and their significance:
1. Java:
o Importance: As one of the most widely used programming languages, Java forms the
foundation for backend development. Its platform independence, scalability, and
robustness make it ideal for building enterprise-level applications.[1]
o Skills Acquired: Syntax, object-oriented programming, exception handling, and
multithreading.
2. Spring Boot:
9|Pag e
3. Hibernate:
4. Angular:
7. RESTful APIs:
10 | P a g e
Chapter-3
TRAINING PHASES AND MODULES
The online Java Full Stack training provided a comprehensive curriculum that delved into
the fundamental concepts and practical skills of core java, Advanced Java and J2EE,
RDBMS, SQL, and web technologies:
Basic Syntax and Data Types: Understanding Java's syntax, variables, data types, and
operators to build the foundation for further learning.[19]
o Inheritance: Creating subclasses that inherit attributes and methods from parent
classes, promoting code reuse.
11 | P a g e
o Abstraction: Simplifying complex systems by exposing only essential features and
hiding implementation details.
o Exception Handling: Using try, catch, and finally blocks to handle errors and create
more reliable applications.
The second module focused on database connectivity, querying, and managing multiple
threads, which are crucial for backend development and ensuring the efficiency of
applications. Key topics covered included:
o Using Statement and Prepared Statement to execute SQL queries, retrieve data, and
update the database.[719]
Multithreading:
o Understanding how to create multiple threads in Java using Thread and Runnable
interfaces.
o Handling synchronization to manage access to shared resources and prevent
concurrency issues such as deadlocks and race conditions.
12 | P a g e
Module 3: HTML, CSS, JavaScript, Servlets, JSP:
Phase 1: Front-End
o Styling web pages, creating layouts, and making designs responsive to different
screen sizes using media queries.[9]
o Using CSS frameworks like Bootstrap for rapid prototyping and responsive design.
JavaScript:
o Understanding how Servlets process user requests and JSP provides the view layer for
generating HTML responses.
Phase 2 of the training program focused on more advanced backend technologies and full-
stack development, enabling participants to integrate both frontend and backend
components into a single, cohesive application..
13 | P a g e
Module 4: Spring Core, Spring Boot, Hibernate, REST APIs, Angular:
Spring Core:
Spring Boot:
o Using Spring Boot Starter templates for quick project setup and auto-
configuration to reduce the need for manual setup.
o Building RESTful web services with Spring Boot to create efficient and scalable
applications.[11]
Hibernate:
o Understanding the principles of REST and designing APIs for web applications that are
scalable, stateless, and cacheable.[13]
o Using HTTP methods (GET, POST, PUT, DELETE) to perform CRUD operations on
server-side resources.
o Securing REST APIs with authentication mechanisms such as JWT (JSON Web
Tokens) and OAuth.
Angular:
14 | P a g e
Chapter-4
DEVELOPMENT METHODOLOGY
Our development methodology adopts an iterative, user-focused, and systematic approach.
This structured approach is divided into three key phases: Design Phase, Development
Phase, and Testing and Optimization Phase.
The design phase is centered around creating a user-centric and intuitive application
interface.
The development phase involves the actual implementation of the application, focusing on
the seamless integration of front-end and back-end components.
Front-End Development:
15 | P a g e
o The user interface is implemented using HTML, CSS, and JavaScript,
ensuring responsiveness and cross-browser compatibility.
o Advanced technologies like AJAX are used to enable asynchronous updates,
providing a smooth and dynamic user experience.
o Angular is utilized to develop a Single Page Application (SPA) that offers
seamless navigation and enhanced interactivity.
Back-End Development:
o Servlets and JSP handle dynamic content generation, while Spring Boot
provides a modular architecture and accelerates back-end development with
pre-configured settings. [6]
o The Hibernate ORM framework is used to simplify database interactions,
ensuring efficient and secure data management.
Database Integration:
o A robust relational database is implemented using RDBMS (e.g., MySQL or
Oracle).
o SQL queries are optimized for performance, and JDBC is used for seamless
integration between the database and the back-end.
Middleware and API Development:
o RESTful Web Services are implemented to enable communication between
the client and server, ensuring scalability and easy integration with third-party
services.
Version Control and Build Automation:
o Version control tools like Git are used to manage code changes
collaboratively.
o ANT is employed for build automation, ensuring smooth compilation, testing,
and deployment processes.
The final phase focuses on ensuring the application meets functional and performance
standards through rigorous testing and optimization.[16]
Functional Testing:
o Unit tests are written using JUnit to validate individual components and
modules.
16 | P a g e
o Integration testing is conducted to ensure seamless communication between
the front-end, back-end, and database.
Performance Testing:
o The application is tested for load handling and responsiveness under various
conditions.
o Tools and techniques like SQL indexing, query optimization, and caching are
implemented to enhance database performance.
UI and UX Optimization:
o The user interface is optimized for responsiveness across devices, including
desktops, tablets, and smartphones.
o Iterative design improvements are made based on user feedback to ensure a
seamless experience.
Bug Fixing and Refinement:
o Bugs and issues identified during testing are resolved promptly.
o Security measures, such as input validation and secure API practices, are
implemented to protect against vulnerabilities.
This iterative and comprehensive methodology ensures the development of a robust, user-
friendly, and highly functional full-stack web application. By focusing on user feedback,
modularity, and performance, the development process not only meets current requirements
but also lays a solid foundation for future enhancements and scalability.
The resulting application is a dynamic, secure, and enterprise-grade solution that aligns with
contemporary software development standards.
17 | P a g e
Chapter-5
INTERNSHIP CONCEPTS
5.1 Java Fundamentals [1]
(a) Object-Oriented Programming (OOP) in Java
. The four fundamental principles of OOP were extensively applied in this project: [2]
1. Class:
o A class is a user-defined data type. It consists of data members and member
functions, which can be accessed and used by creating an instance of that
class.. A class is like a blueprint for an object.
o For Example: Consider the Class of Cars. There may be many cars with
different names and brands but all of them will share some common properties
like all of them will have 4 wheels, Speed Limit, Mileage range, etc.
2. Object:
o It is a basic unit of Object-Oriented Programming and represents the real-life
entities. An Object is an instance of a Class. When a class is defined, no
memory is allocated but when it is instantiated (i.e. an object is created)
memory is allocated. An object has an identity, state, and behavior.
o For instance, a User object captured details like username, email, and
preferences, enabling personalized user interactions.
3. Inheritance:
o Inheritance is an important pillar of OOP(Object-Oriented Programming). The
capability of a class to derive properties and characteristics from another class
is called Inheritance.
o For example, a Base Entity class with common attributes like id and createdAt
was extended by all entity classes (e.g., User, Product), ensuring consistency.
4. Polymorphism:
o Polymorphism allowed multiple behaviors for the same method, enhancing the
flexibility and scalability of the codebase.
o For instance, a calculateDiscount() method was implemented differently for
various user types, such as regular users and premium members.
18 | P a g e
5. Encapsulation:
o Encapsulation is defined as the wrapping up of data under a single unit. It is the
mechanism that binds together code and the data it manipulates.
o Consider a real-life example of encapsulation, in a company, there are different
sections like the accounts section, finance section, sales section, etc.
1. Data Abstraction:
o Data abstraction refers to providing only essential information about the data
to the outside world, hiding the background details or implementation.
o Ex. Payment Service interface abstracted the payment processing logic,.
2. Implementation Abstraction:
o By hiding implementation details inside methods and classes, the project
focused on simplifying functionality for developers and users.
o For example, a Database Connection Manager class abstracted the logic for
establishing and closing database connections.
. Using try-catch blocks, the application gracefully managed unexpected scenarios, such as:
The Java Collection Framework was employed extensively to manage and manipulate groups
of objects efficiently. Key components included:[20]
JUnit was used to create automated unit tests for the application’s modules. Key features of
JUnit testing included:
(f) Multithreading
JDBC was crucial for connecting the Java application to the MySQL database. Its use in the
project included:
20 | P a g e
5.2 Database-Related Concepts: RDBMS/SQL
1. Database Design:
o Tables were created with normalized schemas to minimize data redundancy
and improve data integrity.
o For example, a normalized dB structure with User, Order, and Product tables
2. SQL Operations:
o CRUD operations (Create, Read, Update, Delete) were performed for
managing data.
o Example: SQL queries retrieved and updated stock levels after a purchase.
3. Optimization Techniques:
o Indexing was implemented to improve the speed of data retrieval for
frequently accessed columns.
o Primary and foreign key constraints ensured data consistency and enforced
relationships between tables.
1. Front-End Integration:
o OOP principles like encapsulation and inheritance structured the data models
for smooth interaction with the user interface.[9]
2. Back-End Logic:
o Exception & Multithreading handling improved application reliability by
managing errors gracefully.[10]
3. Database Layer:
o JDBC & Optimized SQL queries ensured efficient data storage and
retrieval.[7]
21 | P a g e
Chapter-6
COMPARATIVE STUDY
This section presents an in-depth evaluation of the strengths and weaknesses of the full-stack
application developed using Java, SQL, and the Model-View-Controller (MVC)
architectural pattern. It also compares our approach with other widely used frameworks, such
as Spring Boot, Django, Ruby on Rails, and the MEAN/MERN stacks, to assess the
effectiveness of our chosen technologies.
Modern full-stack development relies on various frameworks and technologies, each offering
unique features and advantages. Below are the prominent frameworks considered for
comparison:
22 | P a g e
4. MERN Stack (JavaScript-based):
o Comprising MongoDB, Express.js, Angular (or React), and Node.js, this stack
allows JavaScript to be used on both the front-end and back-end.
o It is highly popular for building modern, scalable, and real-time web
applications due to its unified language ecosystem.[14]
Our application leverages Java, SQL, and MVC architecture to deliver a robust, scalable,
and secure full-stack solution. Below is a breakdown of its strengths and weaknesses:
Strengths:
1. Performance:
o Java with JVM Optimization: The Java Virtual Machine (JVM) provides
features like Just-In-Time (JIT) compilation and garbage collection, ensuring
robust and efficient application performance.[7]
o SQL Databases: Proper indexing and optimized queries enable fast and
reliable data retrieval.[3]
o MVC Architecture: The separation of concerns ensures that code is modular,
well-organized, and easy to maintain.[8]
2. Scalability:
o Horizontal Scaling: Java application servers, such as Tomcat or JBoss,
support horizontal scaling to handle increasing traffic loads.
o Vertical Scaling: SQL databases can efficiently manage large datasets through
techniques such as sharding and indexing.
3. Flexibility and Extensibility:
o Modular Code: Java's object-oriented nature promotes reusable and
extensible code components.
o MVC Principles: The separation of concerns simplifies future modifications
and enhancements without affecting the entire system.
23 | P a g e
Weaknesses:
1. Performance Challenges:
o Cold Start Times: Java applications, particularly large-scale ones, may face
delays during startup due to initialization overhead.
o ORM Overheads: Frameworks like Hibernate can introduce additional
processing overhead during database communication.
2. Scaling Challenges:
o Session Management: Managing sessions and states in horizontally scaled
Java applications can become complex.
o Write-Intensive Bottlenecks: SQL databases can struggle with write-heavy
operations, particularly in distributed environments.
3. Development Complexity:
o Verbose Syntax: Java's verbosity often results in longer development times
compared to simpler frameworks like Django or Ruby on Rails.
o SQL Expertise: Configuring and optimizing SQL databases for performance
requires a high level of expertise.
24 | P a g e
Chapter-7
PROBLEM DEFINITION
The primary goal of this project is to design and develop a single-page web application
7.1 Objective
Role: The View layer consists of Java Server Pages (JSP), which serve as the front-
end user interface.[7]
Functionality:
o Allows users to input, view, and interact with student data.
o Integrates Java code within HTML to dynamically render content based on
user inputs and database interactions.[9]
Advantages:
o Simplifies the integration of back-end logic with front-end design.
o Enables dynamic rendering of data retrieved from the database, offering a
user-friendly experience.
25 | P a g e
7.2.2 Controller
Role: The Controller acts as the intermediary between the Model (business logic and
data layer) and the View (user interface).[15]
Functionality:
o Invokes appropriate methods in the Model to process the data and perform the
required operations.
o Decides which View (JSP file) to render as a response to the user's request.
Advantages:
o Promotes separation of concerns, ensuring that business logic and
presentation are decoupled.
o Facilitates debugging by isolating control flow logic from other components.
7.2.3 Model
Role: The Model encapsulates the business logic and handles all database
interactions.
Functionality:
o Manages the core application data, logic, and rules.
o Performs CRUD operations (Create, Read, Update, Delete) on the MySQL
database to store and manage student information.[3]
Advantages:
o Centralizes data-related operations, improving maintainability and scalability.
o Decouples the application’s core logic from the user interface and control
flow, making the system easier to modify and extend.
26 | P a g e
o Project management tools to organize files, configurations, and dependencies.
7.2.4.2 Server
1. Data Centralization:
o All student information is stored in a centralized database, reducing
redundancy.
2. Enhanced Data Accuracy:
o Form validations and exception handling minimize errors during data entry.
3. User Convenience:
o A user-friendly interface and seamless interaction between components
improve the overall user experience.
27 | P a g e
Chapter-8
PROPOSED WORK
This section outlines the planned improvements and additional features for the Student
Information Management System (SIMS).
Responsive Design:
o Implement responsive design principles to ensure that the application
functions seamlessly on a wide range of devices, including desktops, tablets,
and smartphones. [9]
Modernized UI:
o Develop a clean, modern UI that incorporates consistent color schemes,
typography, and layout structures. The design will focus on clarity,
simplicity, and usability, ensuring an intuitive experience for all users.[14]
Input Validation:
o Incorporate input validation mechanisms to ensure users provide accurate
and complete information
Error Handling:
o Develop robust error-handling mechanisms that will display meaningful
error messages when users encounter issues. [2]
28 | P a g e
8.3 Additional Functionality
To ensure the application’s robustness and reliability, the following testing procedures will be
put in place:[16]
Comprehensive Testing:
29 | P a g e
o Perform thorough functional, integration, and regression testing to identify
and fix bugs or inconsistencies across the application.
User Acceptance Testing (UAT):
o Conduct User Acceptance Testing (UAT) with actual users to validate that the
application meets their expectations and business requirements. This will
ensure the system delivers value and fulfills its intended use cases.
System Documentation:
o Develop detailed documentation that outlines the application’s architecture,
functionality, installation steps, and user guidelines. This will provide clear
instructions for users and developers.
Maintenance Plan:
o Establish a maintenance schedule to ensure periodic checks, updates, and
performance monitoring. This will keep the system running smoothly, secure,
and up-to-date.
8.8 Summary
The proposed work encompasses a holistic approach to improving the Student Information
Management System. It focuses on creating a seamless and visually appealing user
interface, implementing robust data validation, adding essential features like record editing
and exporting, ensuring strong security measures, optimizing performance, and conducting
thorough testing and documentation.
8.9 Conclusion
In conclusion, this project effectively combines Java’s robust backend capabilities, SQL’s
efficient data management, and the MVC architecture’s modular structure. The use of
development tools like Eclipse IDE, Apache Tomcat, and MySQL Workbench ensures
that the application is easy to develop, deploy, and maintain. By incorporating the proposed
features and optimizations, the application will become a highly scalable, maintainable, and
user-centric platform for managing student information effectively.
30 | P a g e
Chapter-9
CONCLUSION
1. User-Friendly Interface:
o The application offers an intuitive, interactive interface for managing student
records. The use of input validation ensures data accuracy, while error
handling provides users with meaningful messages to guide them through
issues, improving overall usability. The responsive design ensures that the
system is accessible on multiple devices, providing a seamless experience on
desktops, tablets, and smartphones.[4]
2. Robust Backend Logic:
o The backend functionality efficiently handles CRUD operations (Create,
Read, Update, Delete) on student data. The Java-based backend, coupled
with JDBC for seamless communication with the MySQL database, ensures
smooth data processing and retrieval, enhancing the system's performance. [7]
3. Security Measures:
o Strong security protocols have been implemented to safeguard sensitive
student information. Features such as authentication and authorization
mechanisms regulate access, ensuring that only authorized users can perform
certain actions. Data encryption techniques have been applied to protect
critical personal information. [15]
4. Performance Optimization:
o Various techniques, including query optimization, caching, and server
performance analysis, have been employed to ensure the system operates
efficiently even under high data loads. [8]
5. Comprehensive Testing and Documentation:
o The project has undergone a thorough testing process, which includes
functional, integration, and user acceptance testing (UAT), ensuring the system
meets user expectations and performs as intended. The detailed
documentation provides clear guidelines for both users and developers,
facilitating future updates and system maintenance.[16]
31 | P a g e
Chapter-10
FUTURE SCOPE
The Student Information Management System (SIMS) is built with flexibility and
scalability at its core, allowing for numerous enhancements and developments in the future.
32 | P a g e
Chapter-11
SNAPSHOTS
33 | P a g e
11.2 HTML & CSS CODE EXAMPLE
35 | P a g e