JAVA FULL STACK DEVELOPMENT 2023 - 24
CHAPTER 1
COMPANY PROFILE
1.1 Techshreshta Solutions is an IT service providing organization which aims to
provide high class IT solutions for real-world problems.
LOCATION : NAGARATHNA BHUJANGA SHETTY
TRUST(R) ENGINEERING COLLEGE,
MOODLAKATTE KUNDAPURA TALUK
UDUPI – 576217
WEBSITE: [Link]
Founded in 2019, the various services provided by Techshreshta Solutions are:
● Web Development:
As a professionally enriched company, they craft high-performance websites
with their knowledge in wide varieties of languages for a visually pleasing
website atmosphere.
● Application Development:
When it comes to an approachable mobile app development company, they
apart from the above also incorporate the expert quotient in the field of VUE,
IONIC AND FLUTTER to make better cross platform applications.
● Other Technical Courses:
Additional to all these services they offer a wide range of technical courses to
students of which a certificate will be issued upon the completion of the
course.
DEPT OF CSE, MIT KUNDAPURA 1 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
CHAPTER 2
INTERNSHIP DETAILS
2.1 OVERVIEW
An internship is a period of work experience offered by an organization for a limited
period of time. Once confined to medical graduates, internship is used for a wide range of
placements in businesses, non-profit organizations and government agencies. They are
typically undertaken by students and graduates looking to gain relevant skills and
experience in a particular field. Employers benefit from these placements because they
often recruit employees from their best interns, who have known capabilities, thus saving
time and money in the long run.
Internships exist in a wide variety of industries and settings. An internship can be paid,
unpaid, or partially paid (in the form of a stipend). Internships may be part-time or full
time and are usually flexible with students' schedules. A typical internship lasts between
one and four months, but can be shorter or longer, depending on the organization
involved. The internship which I had undergone, covered both technical and non-technical
concepts: Non-Technical: GitHub, Technical: Java, MySQL, Spring Boot Framework,
Angular Framework, TypeScript, Heroku & Firebase (for Deployment)
2.2 TASK PERFORMED
The summary of the weekly activities done during my Internship in Techshreshta
Solutions LLP, Kundapura:
2.2.1 WEEK 1 (12th August - 18th August)
On the first day of our Spring Boot development training, a team of 5 members was
assembled. Our instructor provided a foundational overview of Spring Boot, covering
essential concepts and techniques. Tasks were then assigned, including building a basic
Spring Boot application and a RESTful API. Additionally, we were tasked with modifying
and enhancing these projects to demonstrate our understanding and creativity.
During the training, emphasis was placed on utilizing version control systems like Git and
DEPT OF CSE, MIT KUNDAPURA 2 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
platforms like GitHub. We learned how to leverage GitHub to showcase our projects
publicly, facilitating collaboration and visibility within the developer community.
Throughout the program, our instructor instilled values essential for effective
software development, emphasizing practices to be implemented in our professional work
style.
2.1.2 WEEK 2 (19th August - 26th August)
In the initial sessions of our Spring Boot and Angular development training, we
were introduced to the fundamentals of building a modern web application. The instructor
structured the curriculum into frontend, backend, database integration, and deployment
phases. For the frontend component, we delved into Angular, a powerful JavaScript
framework for building dynamic web applications. Through hands-on exercises, we
learned to develop interactive user interfaces, starting with basic form creation to capture
essential details such as name, age, gender, contact information, and address. This
foundational exercise equipped us with the skills needed to design and implement user-
friendly interfaces.
Transitioning to the backend, we explored Spring Boot, a popular Java framework
for building robust and scalable web applications. Leveraging Spring Boot, we learned to
develop RESTful APIs using Spring MVC and integrate them with our Angular frontend.
This allowed us to manage server-side logic efficiently, handling user requests and
business operations seamlessly.
In parallel, we focused on database connectivity using MySQL, a relational
database management system. Understanding the importance of data storage and retrieval,
we implemented database schemas to store information related to our shopping
application, including product details, orders, and user profiles.
Throughout the training, we followed industry best practices for application
deployment, ensuring our web application is secure, scalable, and accessible. By
combining the power of Spring Boot, Angular, and MySQL, we gained the knowledge
and skills to develop a comprehensive shopping application comparable to leading e-
commerce platforms like Amazon.
DEPT OF CSE, MIT KUNDAPURA 3 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
2.1.3 WEEK 3 (27th August - 4nd September)
After the initial week of training, I gained proficiency in building dynamic user interfaces
using reusable components in Angular. These components, with their state and data
management capabilities, allowed for the creation of dynamic HTML and enabled
specific sections of a webpage to be updated without the need for page reloads. This deep
dive into frontend development provided a solid foundation for crafting engaging user
experiences.
Subsequently, the focus shifted to backend development using Spring Boot.
Through hands-on exercises, I learned to build server-side applications, handle input-
output operations, and implement event-driven architectures using [Link].
The integration of backend functionality was a pivotal moment in the training. With
guidance from the instructor, I successfully connected the Angular frontend to the Spring
Boot backend, facilitating seamless communication between the client and server. This
enabled data exchange and manipulation between the frontend and backend components
of the application.
Moreover, I learned database integration techniques using MySQL. By leveraging
MySQL's relational database management capabilities, I gained proficiency in designing
database schemas and storing application data efficiently. This included managing product
information, user profiles, and order details within the MySQL database.
Overall, the training provided a comprehensive understanding of full-stack web
application development using Spring Boot, Angular, and MySQL. Through practical
exercises and real-world applications, I gained the skills and knowledge required to build
scalable and robust web applications.
2.1.4 WEEK 4 (5th September - 12th September)
In the final week of my internship, I was tasked with a challenging project: creating
a web application using Spring Boot, Angular, and MySQL technologies. This project not
only served as a culmination of my learning but also laid the groundwork for my final
year internship. With guidance from my instructor, I successfully developed a feature-rich
web application that showcased my proficiency in full-stack development.
Following the completion of the project, I was introduced to the process of
deploying web applications using platforms like Heroku and Firebase. Heroku, a cloud-
based platform as a service (PaaS), was utilized for hosting the backend of the
application, while Firebase, a service platform, was employed for hosting the frontend.
DEPT OF CSE, MIT KUNDAPURA 4 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
Through this deployment process, I gained hands-on experience in deploying and
managing web applications on popular hosting platforms, ensuring accessibility and
scalability for end-users.
This internship has been incredibly informative and enriching, providing me with
invaluable insights into cutting-edge technologies and industry best practices. The
knowledge and skills acquired throughout this experience have equipped me to tackle
real-world challenges and make meaningful contributions in my future endeavors.
Furthermore, inspired by the exposure to web development during this internship, I
decided to create my own portfolio website. Leveraging the skills acquired in Spring
Boot, Angular, and MySQL development, I designed and developed a personalized
portfolio website to showcase my projects, skills, and achievements. To make my
portfolio accessible to a wider audience, I deployed it using hosting services such as
000webhost web application.
Overall, this internship has not only broadened my technical skill set but has also
empowered me to embark on my journey as a proficient and confident developer.
DEPT OF CSE, MIT KUNDAPURA 5 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
CHAPTER 3
NON-TECHNICAL
CONCEPTS
3.1 GIT
Git is a mature, actively maintained open-source project originally developed in
2005 by Linus Torvalds, the famous creator of the Linux operating system kernel. A
staggering number of software projects rely on Git for version control, including
commercial projects as well as open source. Developers who have worked with Git are
well represented in the pool of available software development talent and it works well on
a wide range of operating systems and IDEs (Integrated Development Environments. Git
is an example of a DVCS (hence Distributed Version Control System). In Git, every
developer's working copy of the code is also a repository that can contain the full history
of all changes. In addition to being distributed, Git has been designed with performance,
security and flexibility in mind.
3.2 GITHUB
GitHub is a for-profit company that offers a cloud-based Git repository hosting
service. Essentially, it makes it a lot easier for individuals and teams to use Git for version
control and collaboration. Its user-friendly enough so even novice coders can take
advantage of Git. Without GitHub, using Git generally requires a bit more technical savvy
and use of the command line. GitHub is so user-friendly, though, that some people even
use GitHub to manage other types of projects – like writing books. Additionally, anyone
can sign up and host a public code repository for free, which makes GitHub especially
popular with open-source projects. As a company, GitHub makes money by selling hosted
private code repositories, as well as other business-focused plans that make it easier for
organizations to manage team members and security. We utilize GitHub extensively at
Kinsta to manage and develop internal projects.
DEPT OF CSE, MIT KUNDAPURA 6 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
Below are the sample project files which we want to upload:
Fig 3.1 Samples Files
Step 1: After successfully setting up GitHub account login to your account. You will
see the screen below.
Fig 3.2 GitHub Login Page
Step 2: Click on the new repository option.
Fig 3.3 Creating Repository
Step 3: After clicking the new repository option, we will have to initialize some
things like, naming our project, choosing the visibility etc. After performing these
steps click the Create Repository button.
DEPT OF CSE, MIT KUNDAPURA 7 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
Step 4: Now click on the “Upload files” button
Fig 3.4 Files Uploading
Step 5: Now you will see that all of our files uploaded in our GitHub
Fig 3.5 Files uploaded in github
Hosting GitHub repository: GitHub Pages are designed to host your personal,
organization, or project pages from a GitHub repository. As we already have the
repository, we only have to activate our pages.
Go to settings and scroll down to github pages section. Change disable option to
master branch option. Now github will do some behind the scenes work and going
to publish the repository.
DEPT OF CSE, MIT KUNDAPURA 8 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
Fig 3.6 Publishing the Repository
Now we are done and our project can be accessed worldwide.
DEPT OF CSE, MIT KUNDAPURA 9 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
CHAPTER 4
TECHNICAL CONCEPTS
In today's fast-paced world of software development, there's a growing emphasis on
enhancing both user experience and developer productivity. Developers worldwide are
constantly seeking ways to streamline application design and deployment processes to
meet tight deadlines and deliver exceptional results. This demand has led to the
emergence of comprehensive technology stacks tailored to address these challenges
efficiently. In the realm of web development, utilizing stacks has become commonplace,
allowing developers to rapidly build robust applications. These stacks are essentially
curated collections of pre-existing frameworks and technologies, strategically assembled
to streamline development workflows. Among the plethora of options available, MEAN
(MongoDB, [Link], Angular, [Link]) and MERN (MongoDB, [Link], React,
[Link]) are two prominent examples that have gained widespread adoption, particularly
due to their JavaScript-centric approach. Both MEAN and MERN stacks offer end-to-end
solutions for building modern web applications, facilitating seamless communication
between web browsers and databases. A notable advantage shared by these stacks is their
reliance on JavaScript throughout the entire development process. This unified language
ecosystem minimizes syntax errors and enhances code clarity, simplifying development
efforts significantly. In the context of Java full stack development utilizing Spring Boot,
Angular, and MySQL, a similar paradigm shifts towards streamlining workflows and
enhancing user experience is observed. Just as with MEAN and MERN stacks, this Java-
based stack leverages open-source components to provide a comprehensive framework
for building sophisticated web applications. Key components of this Java full stack
include Spring Boot for backend development, Angular for frontend interfaces, and
MySQL for database management. Spring Boot simplifies backend development by
offering powerful tools and conventions, while Angular facilitates the creation of dynamic
and interactive user interfaces. MySQL, a reliable relational database management
system, ensures efficient data storage and retrieval. By leveraging this Java full stack,
developers benefit from enhanced flexibility, robustness, and scalability in their projects.
The cohesive integration of Spring Boot, Angular, and MySQL allows for rapid
development and deployment of feature-rich web applications, enabling developers to
DEPT OF CSE, MIT KUNDAPURA 10 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
meet the demands of today's dynamic market landscape effectively.
Fig 4.1 Spring Boot and Angular
4.1 Spring Boot
Spring Boot is a powerful Java-based framework designed to simplify the
development of stand-alone, production-grade Spring-based applications. It provides a
convention-over-configuration approach, reducing boilerplate code and configuration,
allowing developers to quickly set up and deploy applications. In Spring Boot, developers
can create robust and scalable applications by leveraging built-in features such as auto-
configuration, which automatically configures application components based on
dependencies present in the class path. Additionally, Spring Boot offers a variety of
starter dependencies that provide pre-configured setups for common use cases, enabling
developers to focus on building application logic rather than spending time on setup and
configuration. Overall, Spring Boot streamlines the development process for Java
applications, offering a rapid development environment with powerful features and
extensive community support.
4.2 TypeScript
TypeScript is a superset of JavaScript, meaning it builds upon the syntax and
capabilities of JavaScript while offering additional features for enhanced development. It
shares the scripting, object-oriented, and cross-platform nature of JavaScript but adds
static typing, which enables developers to define variable types at compile time. Similar
to JavaScript, TypeScript allows objects from the host environment to be connected and
manipulated. It provides standard libraries for common programming tasks, such as
working with arrays, dates, and mathematical operations. Additionally, TypeScript
supports essential programming language components like control structures, statement
DEPT OF CSE, MIT KUNDAPURA 11 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
handling, and error management. The key distinction of TypeScript lies in its support for
static typing. Developers can specify variable types, function parameters, and return
types, enhancing code clarity and facilitating early error detection during the development
process. This feature promotes code reliability and maintainability, particularly in large-
scale projects.
● Client-side TypeScript: Similar to JavaScript, TypeScript is used to enhance
client-side scripting capabilities. It allows developers to manipulate browser
components and interact with the Document Object Model (DOM) effectively.
Client-side TypeScript enables the creation of dynamic user interfaces and
responsive web applications, empowering developers to respond to user
interactions seamlessly.
● Server-side TypeScript: TypeScript extends its utility to server-side development
by providing additional objects and libraries for server operations. This allows
developers to build robust backend systems, handle database interactions, and
execute server-side logic efficiently. Server-side TypeScript enables the creation of
scalable and performant web applications, facilitating data processing, and
application logic execution on the server.
Fig 4.2 Spring and Angular Architecture
DEPT OF CSE, MIT KUNDAPURA 12 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
4.3 MySQL
MySQL is an open-source relational database management system (RDBMS) that is
widely used across industries and by millions of developers worldwide. It is written in C
and C++ languages, making it highly efficient and robust. MySQL follows the relational
data model, which organizes data into tables consisting of rows and columns, with each
row representing a record and each column representing a data attribute. One of MySQL's
key features is its cross-platform compatibility, allowing it to run on various operating
systems such as Windows, macOS, and Linux. It is known for its reliability, performance,
and ease of use, making it a preferred choice for applications ranging from small-scale
websites to large enterprise systems.
Fig 4.3 MySQL workbench
MySQL also provides a command-line interface called MySQL Shell, which allows users
to interact with the database using SQL queries. Additionally, MySQL offers graphical
user interfaces (GUIs) such as MySQL Workbench, which provide visual tools for
database design, administration, and management.
In summary, MySQL is a powerful and versatile relational database management system
that offers reliability, performance, and ease of use. With its support for SQL, cross-
platform compatibility, and robust features, MySQL remains a popular choice for a wide
range of applications and use case.
DEPT OF CSE, MIT KUNDAPURA 13 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
Fig 4.4 Structured Data storing
Fig 4.5 Server Architecture
DEPT OF CSE, MIT KUNDAPURA 14 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
4.4 AngularJS
AngularJS is a popular open-source JavaScript framework maintained by Google, designed
for building dynamic web applications. It extends HTML with additional attributes and
directives, making it more expressive and responsive to user interactions. AngularJS follows
the Model-View-Controller (MVC) architectural pattern, where data, presentation, and logic
are separated for easier maintenance and scalability. Key features of AngularJS include two-
way data binding, which synchronizes the model and the view automatically, dependency
injection for easier component management and testing, and directives for creating reusable
components and extending HTML functionality. With AngularJS, developers can create
single-page applications (SPAs) where the entire page is loaded initially and subsequent
content changes are managed dynamically without full page reloads. This results in a
smoother and more responsive user experience. Overall, AngularJS simplifies web
application development by providing a structured framework, powerful features, and
extensive community support, making it an ideal choice for building modern, interactive
web applications.
• Angular facilitates component-based architecture for modular development.
• Angular enables bidirectional data binding for seamless synchronization between
data and view.
• Installation command: $ ng new First-Angular-App->CSS (enter).
• Command to run the app in development mode: npm start or ng serve
Fig 4.6 Angular repository
DEPT OF CSE, MIT KUNDAPURA 15 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
CHAPTER 5
DEPLOYMENT OF FRONTEND & BACKEND
You need to have your remote GitHub repos for both the front and backend set up before
deployment.
5.1 DEPLOYING THE FRONTEND: FIREBASE
It allows real-time database connection, which means multiple users can see the changes in the
data when the data gets created or edited.
1. Go to the Terminal and open the location where the project is. Type the command $
firebase init to Install the Firebase.
2. Go to [Link]
3. Click on Get Started, add project.
4. Create a Database
DEPT OF CSE, MIT KUNDAPURA 16 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
Fig 5.1 Frontend Deployment
It is used to control access to your database of Application
5.2 DEPLOYING THE BACKEND: HEROKU
Heroku is a container-based cloud Platform as a Service (PaaS). Developers use Heroku to
deploy, manage, and scale modern apps.
● Go to [Link] and create an account.
● Install Heroku Command Line interface [Link]
client
● Log in to Heroku in command prompt by running heroku login
Fig 5.2 Backend Deployment
● Open up the local host to see the output.
● Use the command to push the code to Heroku server.
$ git push heroku master
DEPT OF CSE, MIT KUNDAPURA 17 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
CHAPTER 6
SNAPSHOTS
After completing Internship, I have built a Project using Java Full Stack Development.
Frontend: [Link], Bootstrap
Backend: Spring Boot
Database: MySQL
Deployment of Frontend & Backend: Firebase & Heroku
● A web application online shopping application created.
● Here customers can sign up by adding their name, email, phone no, address etc
necessary details.
Fig 6.1 Customer Registration Page
DEPT OF CSE, MIT KUNDAPURA 18 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
Fig 6.2 Driver Registration Page
Fig 6.3 Login Page
DEPT OF CSE, MIT KUNDAPURA 19 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
Fig 6.4 Home Page
Fig 6.5 Cab Booking Page
DEPT OF CSE, MIT KUNDAPURA 20 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
Fig 6.6 Cab Booking Details Page
Fig 6.7 Booking Cancel Page
DEPT OF CSE, MIT KUNDAPURA 21 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
Fig 6.8 Booking Cancel Confirmation Page
Fig 6.9 Trip Id doesn’t exist Page
DEPT OF CSE, MIT KUNDAPURA 22 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
CHAPTER 7
CONCLUSION
It is known that practical experience is the best, and internships give students that hands-on
experience they need. I feel that quality internships are essential to develop key skills that you
can't get in a classroom. Skills such as multitasking, communicating, learning to deal with
diversity, and dealing with deadlines are different when you are working for someone else,
not yourself like you do in college. Internships are also a great way to network with people in
the industry.
The course of this internship has helped me to get similar with various technical and non-
technical concepts. It has provided good understanding of various professional practices
involved in the industry and also helped me in developing the necessary soft skills related to
Java Full Stack Development.
DEPT OF CSE, MIT KUNDAPURA 23 | Page
JAVA FULL STACK DEVELOPMENT 2023 - 24
REFERENCES
[1] [Link]
[2] [Link]
[3] [Link] ase-
bonus-connecting-a-custom-domain-adb9f4f37e06
[4] [Link]
DEPT OF CSE, MIT KUNDAPURA 24 | Page