Full Stack Development
Full Stack Development
Government of Karnataka
DEPARTMENT OF COLLEGIATE and TECHNICAL EDUCATION
Computer Science &
Program Semester 5
Engineering
Introduction:
Welcome to the curriculum for the Full Stack Development Specialisation. This specialisation
course is taught in Bootcamp mode. Bootcamps are 12 weeks, intense learning sessions designed
to prepare you for the practical world – ready for either industry or becoming an entrepreneur.
You will be assisted through the course, with development-based assessments to enable
progressive learning. In this course, you’ll learn a complete suite of software development skills to
build application like front-end, middleware, and back-end Java web developer technologies, test
and deploy code, store data using MongoDB, and much more.
This course will teach you Fundamentals of business process automation, React, Spring, MongoDB,
REST API, DevOps practices, cloud deployment and more. Details of the curriculum is presented in
the sections below.
Pre-requisite
Before the start of this specialisation course, you would have completed the following courses;
In the 1st year of study, you would have studied Engineering Mathematics, Communication Skills,
Computer Aided Engineering Graphics, Statistics & Analysis, Basic IT Skills, Fundamentals of
Computer, Fundamentals of Electrical and Electronics Engineering, Project Management skills and
Multimedia & Animation.
In the 2nd year of study, you would have studied Python Programming, Computer Hardware,
Maintenance and Administration, Computer Networks, Database System Concepts and PL/SQL,
Data Structures with Python, Operating System and Administration, Object oriented programming
and Design with Java, Software Engineering principles and practices.
In this year of study, you shall be applying your previous years learning along with specialised field
of study into projects and real-world applications.
A Course Cohort Owner is a faculty from the core discipline, who is fully responsible for one
specialised field of study and the cohort of students who have chosen to study that specialised field
of study.
CO4 Develop RESTful API’s and test functions as per the defined requirements.
Recap
- Design Thinking
- Design thinking for software development
1,2 2,3 4 1 3 Contd. 3
- Apply design thinking to automate the
observed activities in the industrial visit
Ref. No 3
- Infrastructure as code
- Continuous delivery
- Continuous deployment
- Continuous monitoring
Explore the various tools used - T
Git Branching and merging
Basic
▪ Creating and switching to new branches
Configuration management
▪ Switching between branches
Why Do We Need a Version Control System?
▪ Merging local branches together
Fundamentals of Git
GitHub
Git Client installation and setup
- Basics of distributed git
basic local Git operations
Account creation and configuration
2,3 4 2 ▪ creating a repository, 1 3 1 2
- Create and push to repositories
▪ cloning a repository,
- versioning
▪ making and recording changes
- Collaboration
▪ staging and committing changes,
- Migration
▪ viewing the history of all the changes
Create repository – named mini project-1
undoing changes
Push the same to GitHub
TOC - Git Essentials: Become a Git and GitHub
Ninja | Infosys Springboard (onwingspan.com)
Continuous integration
- Use any suitable build CI/CD tool (such as
Jenkins, bitbucket, GitHub Actions etc.) or
cloud-based services to create build
pipeline having steps code build, test, code
2,3 4 1 3 - Contd.. 3
quality check.
- Working of the tool / cloud service used.
Note: Create build pipeline for simple web
applications such as To-do app, BMI calculator,
Number converter, WordCount etc.
5 CIE 1 – Written and Practice Test Assessment Review and corrective action 3
ES6
- Arrow functions
- Template strings
- Prototype methods
- Spread operator
2,3, 2,3, Contd.
3 2 2 3
5 4 - Map
- Set
Create a form like registration form, feedback
form, after submit hide create form and enable
the display section
Introduction to TypeScript
Why TypeScript?
Setting up development environment for
TypeScript
- Install TypeScript compiler
Forms
- Use of HTML tags in forms like select,
Handling Events
input, file, textarea, etc.
2,3, 2,3, Conditional Rendering
4 2 2 3
5 4 - controlled components
Lists & Keys
- uncontrolled components
Lifting State Up
5 CIE 2 – Written and Practice Test Assessment Review and corrective action 3
2,3, 2,3, Testing single page application
6 2 3 Weekly Assignment
5 4
Context
Peer review
Fragments
2,3, 2,3, Project status review
1 4 2 1
5 4 Higher-Order Components
6 Demonstration of artifacts of the project
React Router
2,3, 2,3, Contd..
2 1 3 3
5 4 - React router – parameters
ComponentScanning
DI in spring Boot
- Constructor injection
2,3, - Setter injection Contd..
3,4 4 1 3 3
4
- Field injection
Autowiring
- Qualifier
- Bean Scope (Object scope)
Autowiring dependencies
5 CIE 3 – Written and Practice Test Assessment Review and corrective action 3
Converting monolithic application to
2,3,
3,4 6 2 3 Weekly Assignment
4 microservices architecture
Application Programming Interface (API)
- What is an API?
- How API works?
Peer review
- Why we need APIs?
2,3, Project status review
3,4 1 4 2 1
4 - API types (Open APIs, Partner APIs, Internal
Demonstration of artifacts of the project
APIs, Composite APIs)
- Types of API Protocols (SOAP, REST)
Common API examples
API endpoints
Basics of REST
8 What is API endpoint?
- Evolution of API
Why are API endpoints important?
- Overview of REST
API endpoint examples
- REST architectural style, components,
How to Test API Endpoints
2,3, views,
3,4 2 HTTP Concepts 2 2 2 1
4
- REST constraints
- HTTP working
- Properties of REST API
- HTTP Method (GET, POST, PUT, DELETE) - REST API Design Principles
Understanding of JSON structure for API
How to create RESTful service
request and response data
Install Postman
Peer review
Transaction management and compliance to
2,3, Project status review
3,4 1 4 1 2
4 ACID principles
Demonstration of artifacts of the project
Securing REST APIs with Spring Security Build user authentication flow and authorization
2,3,
3,4 2 1 3 3
4 API security configuration using SpringSecurity
Junit – Tutorial Contd..
2,3, Writing Junit test cases for CRUD operations 4
3,4 3 3
4 Test controller endpoints
5 CIE 4 – Written and Practice Test Assessment Review and corrective action 3
2,3, API Gateway
3,4 6 Weekly Assignment
4
Peer review - Create and Drop database
2,3, Project status review - Create and Drop Collections
3,4 1 4 1 2
4
Demonstration of artifacts of the project - CRUD Operations on document
Limit and Sort Records
2,3, - CRUD Operations on document
3,4 2 4 1 2
4 Cursor
Indexing
Aggregation
2,3, Contd.
3,4 3 1 3 3
4 Create and manage users and roles
Migration to MongoDB
10
ACID transactions in MongoDB
Perform CRUD Operations on MongoDB
2,3, through REST API using Spring Boot Starter Contd.
3,4 4 1 3 3
4
Data MongoDB
How to run MongoDB on cloud?
Application Testing
- Manual
- Automated
Peer review
Application testing tools
3,4, 2,3, Project status review 4
1 2 1
5 4 Functional testing
Demonstration of artifacts of the project
UI testing
TOC - Introduction to Automation Testing | Infosys
Springboard (onwingspan.com)
Integration testing Acceptance testing
System testing Acceptance tests and test plan
3,4, 1 3
4 2 1 2
5 Integrate the work of each group and carry out User acceptance testing
11 integration testing Bug tracking – using Jira or similar tools
Deployment process
Containers
- Manual deployment
Why containers?
- Automated deployment
What is a docker?
How to implement automated deployment?
How docker works?
Top Deployment tools and their features
Components of docker
5 4 3 Best Deployment practices 2 2 2 1
- Docker container
Setup deployment pipeline
- Docker client
Continuous deployment
- Docker daemon
Static code analysis
- Docker image
Automated review and peer review
- Docker registry
Practice – code analysis using tools
5 CIE 5 – Written and Practice Test Assessment Review and corrective action 3
2,3, Automation and cloud application testing
3,4 6
4
Container orchestration
Peer review
What is orchestration?
12 5 4 1 Project status review 4 2 1
Orchestration engine
Demonstration of artifacts of the project
Orchestration tools
Kubernetes
Introduction
Why Kubernetes?
Kubernetes configuration
- Deployment Deployment strategies
2
5 4 2 - Service 1 3 Blue green deployment 1
- Load balancer/ingress Canary Deployment
Create a cluster and deploy an app
Learn Kubernetes Basics | Kubernetes
Booking.com Case Study | Kubernetes
Spotify Case Study | Kubernetes
Disaster recovery and their types
How does it work?
Elements of disaster recovery plan
5 4 3 2 2 Contd.. 3
Build a disaster recovery plan
Load Balancing
Load balancer and its functions
Application monitoring
- Need for application monitoring
- Components of application performance Contd.
5 4 4 2 2 3
management.
- How to select application monitoring tools?
- Explore and compare APM tools
6 Cloud orchestration 2 3
1,2, Project
3,4, Internship
5 a) Identification of the problem statement
a) Secondary research on various
(from at least 3 known problems) the students
industries and their operations to identify at
would like to work as part of the project – either
least 3 companies along with the areas of work
interest and develop an internship plan that as provided by faculty or as identified by the
clearly highlights expectations from the student. Document the impact the project will
industry during the internship. have from a technical, social and business
2,3, b) Design and develop a cover letter for an perspective.
13 1
4 internship request to all 3 identified companies
b) Design and develop the project solution
and the resume to be submitted to potential
companies. or methodology to be used to solve at least one of
Prepare for an internship interview to highlight the problems identified.
your interests, areas of study, career Prepare a project plan that will include a
aspirations and personnel competence –
schedule, WBS, Budget and known risks along
including the areas of learning you expect to
with strategies to mitigate them to ensure the
learn during internship.
project achieves the desired outcome.
References
Department of Collegiate & Technical Education Bengaluru-560001 Page 69
Diploma in Computer Science & Engineering C 20 : 2020 - 21
Sl. No Description
Charlie Chaplin - Factory Scene - Modern Times (1936) - YouTube
1 What is a Business Process? - YouTube
What Is Business Process Automation? - YouTube
- Digital Transformation | What is Digital Transformation | Digital Transformation 2021 | Simplilearn - YouTube
2 - Digital transformation: are you ready for exponential change? Futurist Keynote Speaker Gerd Leonhard - YouTube
- Digital Transformation Through IT/OT Convergence | Accenture
3 https://www.youtube.com/watch?v=_r0VX-aU_T8
5 SaaS vs PaaS vs IaaS: What’s The Difference & How To Choose – BMC Software | Blogs
https://www.atlassian.com/
6
https://www.atlassian.com/devops
8 Hands-On Full Stack Development with Spring Boot 2.0 and React
13 Kubernetes
Scheme of evaluation
2 Implementation 12
3 Demonstration of solution 4
Total 20
Assessment framework for SEE (Theory) – 100 Marks / 3 hours (Reduced to 60 marks)
2.a) Identify the tasks involved in the process of receiving Admission Ticket for semester exams in L4 10
your college. Which of the identified tasks can be automated and illustrate automation of one
task.
b) Identify the following cloud service types and list their characteristics and advantages. L3 10
Cisco WebEx Google App Engine, Amazon EC2
Section-2
3.a) BookingHall is an online convention hall booking application that helps its users to book hall L4 2 12
for functions across Karnataka. This application allows users to log in for booking a hall. Users
can find the halls in a specific locality. Once found, user can check the availability of a hall for
specific dates. Users can block a hall for required duration. Once blocked, user can get the
booking details. Identify and write the user stories for this application.
6.a) The write operations on the collection are very high. Explain the technic applicable to L3 12
manage the given scenario.
8.a) Develop the data access layer of the Employee Management Application to perform the L3 10
database operations given below using Spring Data JPA
Add the operation given below using Spring Data JPA:
Update the employeeContactNumber for the given employee id.
b) Create a RESTcontroller class to perform CRUD operations on product and corresponding L3 10
request and response DTOs.
The product class should contain three data members product name, product category, price.
Use proper SpringBoot annotations.
Section-5
9.a) Discuss the Components of Docker container. L3 5 6
Draw the CI/CD build process flow diagram for an online foot ware store application and L3 8
b)
explain each component.
You want to have two versions of your application in production, but be able to switch all traffic L3 6
c)
between them. Explain the deployment strategy suitable for the given situation.
10.a) Create a form to add a new product detail to the product catalogue using React. L3 10
Ted is a DevOps engineer. He wants to automate the deployment process. He wants to do L3 10
b) deployment frequently on multiple servers and change the CPU speed and RAM based on the
requirement.
Problem Statement
1 InfyCabs is an application for booking cabs. Its following functionalities needs to be exposed as REST API:
▪ Book a cab
▪ Get booking details
▪ Cancel booking
The service and persistence layer of this application is already implemented. You have to implement the API layer of this application for
exposing the above functionalities.
CabBookingAPI
Implement the CabBookingAPI class based on the class diagram and instructions given below:
Annotate this class with proper annotation to declare it as REST controller class.
Annotate this class with proper annotation so that all its methods are mapped with /bookings as base URI.
Inject bookingService and environment using appropriate annotation.
Method description:
bookCab(CabBookingDTO cabBookingDTO)
• It should invoke the bookCab() method of BookingServiceImpl class which returns a booking id.
• Retrieve the success message associated with property API.BOOKING_SUCCESSFUL from application.properties files using environment
and append it to booking id in following format:
<success message>booking id
• It returns an object of ResponseEntity created using above message and HTTP status code as CREATED.
getBookingDetails(Long mobileNo)
• This is a REST controller method to get cab booking details based on mobile number of user.
• Implement it using proper annotations according to description given below:
Resource endpoint: /{mobileNo}
HTTP method: GET
Input: mobileNo as path variable.
• It should invoke the getDetails() method of BookingServiceImpl class which returns a List<CabBookingDTO>.
• It returns an object of ResponseEntity created using List<CabBookingDTO> obtained in previous step and HTTP status code as OK.
cancelBooking(Integer bookingId)
Testing 20
Total 100