0% found this document useful (0 votes)
46 views70 pages

Devops-UNIT 2

Uploaded by

navelsurith12346
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
46 views70 pages

Devops-UNIT 2

Uploaded by

navelsurith12346
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 70

1

2
Please read this disclaimer before proceeding:

This document is confidential and intended solely for the educational purpose of
RMK Group of Educational Institutions. If you have received this document through
email in error, please notify the system manager. This document contains proprietary
information and is intended only to the respective group / learning community as
intended. If you are not the addressee you should not disseminate, distribute or
copy through e-mail. Please notify the sender immediately by e-mail if you have
received this document by mistake and delete this document from your system. If
you are not the intended recipient you are notified that disclosing, copying,
distributing or taking any action in reliance on the contents of this information is
strictly prohibited.

3
20IT911

DEVOPS

Department : Information Technology


Batch/Year : 2020-2024/ II
Created by : Ms. R. Rajitha Jasmine

Date : 07-08-2023

4
1.TABLE OF CONTENTS

SLIDE
S.NO. CONTENTS
NO.
1 CONTENTS

2 COURSE OBJECTIVES

3 PRE REQUISITES (COURSE NAMES WITH CODE)

4 SYLLABUS (WITH SUBJECT CODE, NAME, LTPC DETAILS)

5 COURSE OUTCOMES (6)

6 CO- PO/PSO MAPPING

7 LECTURE PLAN –UNIT 2

8 ACTIVITY BASED LEARNING –UNIT 2


9 CROSSWORD PUZZLE
10 VIDEO LINK-QUIZ
11 TEST YOURSELF
12 LECTURE NOTES – UNIT 2

13 1.1 MAVEN BUILD MANAGEMENT


14 1.2 GOALS, PROFILES, PLUGINS, LIFE CYCLES

15 1.3 CONFIGURATION, PARENT/CHILD

16 1.4 SCM Tools

1.5. GITHUB, INIT, CHECKIN, MERGE, PULL, PUSH, LOCAL


17
AND REMOTE REPO, PULL REQUEST, TAGGING
1.6 STRATEGY - UNIT TESTING - UNIT TESTING
18
SCROPTS - ARTIFACT REPOSITORY
19 RELEASE MANAGEMENT ALIGNED REPOS
PRIVATE AND PUBLIC REPOS
20
MONITORING
TOOLS LIKE NAGIOS TO ASSIST IN MONITORING AND
21
MANAGING THE DEPLOYED INSTANCES

5
Table of Contents SLIDE
S.NO. CONTENTS
NO.

21 ASSIGNMENT 2- UNIT 2

22 PART A Q & A (WITH K LEVEL AND CO)

23 PART B Q s (WITH K LEVEL AND CO)

24 SUPPORTIVE ONLINE CERTIFICATION COURSES

REAL TIME APPLICATIONS IN DAY TO DAY LIFE AND TO


25
INDUSTRY

26 CONTENTS BEYOND THE SYLLABUS

27 ASSESSMENT SCHEDULE

28 PRESCRIBED TEXT BOOKS & REFERENCE BOOKS

29 MINI PROJECT SUGGESTIONS

6
2. COURSE OBJECTIVES

OBJECTIVES:
Understand the concepts of DevOps and the issues it resolves
Learn the DevOps tools set
Learn to Develop automation using Maven
Understand Continuous Delivery and Continuous Deployment
Understand Docker Containerization

7
3. PRE REQUISITES

PRE-REQUISITE CHART

Data Structures

Software Engineering
20IT911
DevOps

Machine Learning

Cloud Computing

8
4. DEVOPS SYLLABUS LTPC
3003
OBJECTIVES:
Understand the concepts of DevOps and the issues it resolves
Learn the DevOps tools set
Learn to Develop automation using Maven
Understand Continuous Delivery and Continuous Deployment
Understand Docker Containerization

UNIT I INTRODUCTION 6+6


What Is DevOps, Architecture, Life Cycle, Workflow and Principles,
Tools, CI, CD and CD Pipelines Linux Introduction, Basic Commands, Scripting

UNIT II TOOL SET 6+6

Maven Build Management, Goals, Profiles, Plugins, Life Cycles,


Configuration, Parent/Child - SCM Tools - GitHub, Init, CheckIn,
Merge, Pull, Push, Local and Remote Repo, Pull Request, Tagging
Strategy - Unit Testing - Unit Testing scropts -
Artifact Repository - Release Management aligned Repos, Private
and Public Repos
Monitoring - Tools like nagios to assist in monitoring and managing
the deployed instances

UNIT II TESTING AUTOMATION 6+6


Maven with Unit / Integration / Performance Testing - Report
Generation and Configuration

9
4. SOFTWARE ENGINEERING SYLLABUS LTPC
3003
UNIT IV DEPLOYMENT AND MONITORING - DOCKER 6+6

Docker Introduction, Images, Containers, Docker Hub, Links, Volume,


Network, Interactive Sessions - K8 - Single and Cluster Mode, Secrets,
Persistence Volume and Claim, Replica Factor, Services, Pods, Deployments,
logs, Kubernetes .

UNIT V DEPLOYMENT AND MONITORING - JENKINS 6+6

Sonar Qube integration with Project and Jenkins - Jenkins - Setup and
Configuration, Jobs - Continuous Integration, Continuous Delivery and
Continuous Deployment Configuration

TOTAL: 60 PERIODS

10
5.COURSE OUTCOME

Cognitive/
Affective Expected
Course
Course Outcome Statement Level of the Level of
Code
Course Attainment
Outcome
Course Outcome Statements in Cognitive Domain
Understand the concept of DevOps Apply
C305.1 60%
Architecture K3
Apply the DevOps Tools in real Analyse
C305.2 60%
time applications K4
Build Maven with Unit, Integration Understand
C305.3 60%
and Performance Testing K2
Apply
C305.4 Deploy and monitor using Docker 60%
K3
Analyse
C305.5 Deploy and monitor using Jenkins 60%
K4
Develop project schedule, identify Apply
C305.6 60%
project costs and efforts required K3
Course Outcome Statements in Affective domain

C305.7 Attend the classes regularly Respond (A2) 95%

C305.8 Submit the Assignments regularly. Respond (A2) 95%


Participation in Seminar/Quiz/
Group Discussion/ Collaborative
C305.9 Valuing (A3) 95%
learning and content beyond
syllabus

11
6.CO-PO/PSO MAPPING

Correlation Matrix of the Course Outcomes to


Programme Outcomes and Programme Specific
Outcomes Including Course Enrichment Activities

Programme Outcomes (POs), Programme Specific Outcomes (PSOs)

P P P P P P P P P P P P PS PS PS
Course O O O O O O O O O O O O O O O
Outcomes 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3
(Cos)
K3
K K A
K4 K5 /K A2 A3 A3 A3 A3 A2 K3 K3 K3
3 5 3
5

K
C305.1 3 2 1 1 3 3 3 3 3
3

K
C305.2 3 3 2 2 3 3 3 3 3
4

K
C305.3 2 1 2 3 3 3
2
5
K
C305.4 3 2 1 1 3 3 3 3 3
3

K
C305.5 3 3 2 2 3 3 3 3 3
4

K
C305.6 3 2 1 1 3 3 2 2 2
3

A
C305.7 3
2

A
C305.8 2 2 2 3
2

A
C305.9 3 3 3 3 3
3

C305 3 3 2 2 3 1 1 1 3 3 3 3 3 3 3

12
UNIT 2

DEVOPS TOOLS SET

13
LECTURE PLAN – UNIT II

UNIT II TOOL SET


Sl.N
o PROPOS
NO ED ACTUAL
LECTUR LECTURE PERTAIN
OF TAXONOMY MODE OF
TOPIC E ING
PERI LEVEL DELIVERY
CO(s)
ODS
PEROID PERIOD

1.1 MAVEN BUILD


1 CO1 K2 MD1
1 MANAGEMENT

1.2 GOALS, PROFILES,


1 CO1 K2 MD1
PLUGINS, LIFE CYCLES
2

1.3 CONFIGURATION,
1 CO1 K2 MD1
PARENT/CHILD
3

1.4 SCM Tools 1 CO1 K3 MD1


4
1.5. GITHUB, INIT,
CHECKIN, MERGE,
5 PULL, PUSH, LOCAL 1 CO1 K3 MD1
AND REMOTE REPO,
PULL REQUEST,
TAGGING
1.6 STRATEGY - UNIT
6 TESTING - UNIT 1 CO1 K2 MD1
TESTING SCROPTS -
ARTIFACT REPOSITORY

RELEASE MANAGEMENT 1 CO1 K2 MD1


7 ALIGNED REPOS

PRIVATE AND PUBLIC


REPOS 1 CO1 K2 MD1
8 MONITORING
TOOLS LIKE NAGIOS TO
9 ASSIST IN
MONITORING AND 1 CO1 K2 MD1
MANAGING THE
DEPLOYED INSTANCES

14
LECTURE PLAN – UNIT I

ASSESSMENT COMPONENTS MODE OF DELEIVERY


AC 1. Unit Test MD 1. Oral presentation
AC 2. Assignment MD 2. Tutorial
AC 3. Course Seminar MD 3. Seminar
AC 4. Course Quiz MD 4 Hands On
AC 5. Case Study MD 5. Videos
AC 6. Record Work MD 6. Field Visit
AC 7. Lab / Mini Project
AC 8. Lab Model Exam
AC 9. Project Review

15
ACTIVITY BASED LEARNING – UNIT I

COMPLETE THE PUZZLES GIVEN BELOW

16
ACTIVITY BASED LEARNING – UNIT II

QUIZ- LINK

Unit II:

https://quizizz.com/admin/quiz/60ad9fa17c1b23001b0688bc/devops?fro
mSearch=true&source=null

https://quizizz.com/admin/quiz/6417c38f432a57002135873c/devops?fro
mSearch=true&source=null

SOFTWARE ENGINEERING VIDEO QUIZ-https://youtu.be/WpVoJq8hR6Q

17
Test Yourself

1. RAD stands for


a) Relative Application Development
b) Rapid Application Development
c) Rapid Application Document
d) None of the mentioned

2. Which one of the following is not a phase of Prototyping Model?


a) Quick Design
b) Coding
c) Prototype Refinement
d) Engineer Product

3. SDLC stands for


a) Software Development Life Cycle
b) System Development Life cycle
c) Software Design Life Cycle
d) System Design Life Cycle

4. The spiral model was originally proposed by


a) IBM
b) Barry Boehm
c) Pressman
d) Royce

5. Project risk factor is considered in which model?

a. Spiral model.

b. Waterfall model.

c. Prototyping model

d. None of the above.

18
UNIT 2
TOOLS SET
Maven Build Management

Maven is a project management and comprehension tool that provides


developers a complete build lifecycle framework. Development team can
automate the project's build infrastructure in almost no time as Maven uses a
standard directory layout and a default build lifecycle.

In case of multiple development teams environment, Maven can set-up the way to
work as per standards in a very short time. As most of the project setups are
simple and reusable, Maven makes life of developer easy while creating reports,
checks, build and testing automation setups.

Maven provides developers ways to manage the following −

Builds

Documentation

Reporting

Dependencies

SCMs

Releases

Distribution

Mailing list

Maven simplifies and standardizes the project build process. It handles


compilation, distribution, documentation, team collaboration and other tasks
seamlessly. Maven increases reusability and takes care of most of the build related
tasks.

19
Maven Evolution

Maven was originally designed to simplify building processes in Jakarta Turbine


project. There were several projects and each project contained slightly different
ANT build files. JARs were checked into CVS.

Apache group then developed Maven which can build multiple projects together,
publish projects information, deploy projects, share JARs across several projects
and help in collaboration of teams.

The primary goal of Maven is to provide developer with the following −

A comprehensive model for projects, which is reusable, maintainable, and easier


to comprehend.

Plugins or tools that interact with this declarative model.

Maven project structure and contents are declared in an xml file, pom.xml,
referred as Project Object Model (POM), which is the fundamental unit of the
entire Maven system.

Maven's Objectives

Maven's primary goal is to allow a developer to comprehend the complete state of


a development effort in the shortest period of time. In order to attain this goal,
Maven deals with several areas of concern:

Making the build process easy

Providing a uniform build system

Providing quality project information

Encouraging better development practices

20
Convention over Configuration

Maven uses Convention over Configuration, which means developers are not required
to create build process themselves.

Developers do not have to mention each and every configuration detail. Maven provides
sensible default behavior for projects. When a Maven project is created, Maven creates
default project structure. Developer is only required to place files accordingly and he/she
need not to define any configuration in pom.xml.

As an example, following table shows the default values for project source code files,
resource files and other configurations. Assuming, ${basedir} denotes the project
location −

Item Default

source code ${basedir}/src/main/java

Resources ${basedir}/src/main/resources

Tests ${basedir}/src/test

Complied byte code ${basedir}/target

distributable JAR ${basedir}/target/classes

In order to build the project, Maven provides developers with options to mention life-
cycle goals and project dependencies (that rely on Maven plugin capabilities and on its
default conventions). Much of the project management and build related tasks are
maintained by Maven plugins.

21
Developers can build any given Maven project without the need to
understand how the individual plugins work. We will discuss Maven
Plugins in detail in the later chapters.
Features of Maven
Simple project setup that follows best practices.
Consistent usage across all projects.
Dependency management including automatic updating.
A large and growing repository of libraries.
Extensible, with the ability to easily write plugins in Java or
scripting languages.
Instant access to new features with little or no extra configuration.
Model-based builds − Maven is able to build any number of
projects into predefined output types such as jar, war, metadata.
Coherent site of project information − Using the same metadata as
per the build process, maven is able to generate a website and a
PDF including complete documentation.
Release management and distribution publication − Without
additional configuration, maven will integrate with your source
control system such as CVS and manages the release of a project.
Backward Compatibility − You can easily port the multiple modules
of a project into Maven 3 from older versions of Maven. It can
support the older versions also.
Automatic parent versioning − No need to specify the parent in
the sub module for maintenance.
Parallel builds − It analyzes the project dependency graph and
enables you to build schedule modules in parallel. Using this, you
can achieve the performance improvements of 20-50%.
Better Error and Integrity Reporting − Maven improved error
reporting, and it provides you with a link to the Maven wiki page
where you will get full description of the error.

22
POM stands for Project Object Model. It is fundamental unit of work in
Maven. It is an XML file that resides in the base directory of the project
as pom.xml.
The POM contains information about the project and various
configuration detail used by Maven to build the project(s).
POM also contains the goals and plugins. While executing a task or goal,
Maven looks for the POM in the current directory. It reads the POM,
gets the needed configuration information, and then executes the goal.
Some of the configurations that can be specified in the POM are
following −
project dependencies
plugins
goals
build profiles
project version
developers
mailing list
Before creating a POM, we should first decide the
project group (groupId), its name (artifactId) and its version as these
attributes help in uniquely identifying the project in repository.
POM Example
<project xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.companyname.project-group</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
</project>

23
What is Build Lifecycle?
A Build Lifecycle is a well-defined sequence of phases, which
define the order in which the goals are to be executed. Here
phase represents a stage in life cycle. As an example, a
typical Maven Build Lifecycle consists of the following
sequence of phases.

Phase Handles Description

prepare-resources resource copying Resource copying can be


customized in this phase.

validate Validating the information Validates if the project is


correct and if all necessary
information is available.

compile compilation Source code compilation is


done in this phase.

Test Testing Tests the compiled source


code suitable for testing
framework.

package packaging This phase creates the


JAR/WAR package as
mentioned in the packaging
in POM.xml.

install installation This phase installs the


package in local/remote
maven repository.

Deploy Deploying Copies the final package to


the remote repository.

24
When Maven starts building a project, it steps through a defined sequence of
phases and executes goals, which are registered with each phase.

Maven has the following three standard lifecycles −

clean

default(or build)

site

A goal represents a specific task which contributes to the building and managing
of a project. It may be bound to zero or more build phases. A goal not bound to
any build phase could be executed outside of the build lifecycle by direct
invocation.

The order of execution depends on the order in which the goal(s) and the build
phase(s) are invoked. For example, consider the command below.
The clean and package arguments are build phases while
the dependency:copy-dependencies is a goal.

mvn clean dependency:copy-dependencies package

Here the clean phase will be executed first, followed by the dependency:copy-
dependencies goal, and finally package phase will be executed.

Clean Lifecycle

When we execute mvn post-clean command, Maven invokes the clean lifecycle
consisting of the following phases.

pre-clean

clean

post-clean

25
<project xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.companyname.projectgroup</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>id.pre-clean</id>
<phase>pre-clean</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>pre-clean phase</echo>
</tasks>
</configuration>
</execution>

26
<execution>
<id>id.clean</id>
<phase>clean</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>clean phase</echo>
</tasks>
</configuration>
</execution>

<execution>
<id>id.post-clean</id>
<phase>post-clean</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>post-clean phase</echo>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

27
Now open command console, go to the folder containing pom.xml
and execute the following mvn command.
C:\MVN\project>mvn post-clean
Maven will start processing and displaying all the phases of clean
life cycle.

Default (or Build) Lifecycle


This is the primary life cycle of Maven and is used to build the
application. It has the following 21 phases.

28
Sr.No. Lifecycle Phase & Description
1 validate
Validates whether project is correct and all necessary information is available to complete
the build process.
2 initialize
Initializes build state, for example set properties.

3 generate-sources
Generate any source code to be included in compilation phase.

4 process-sources
Process the source code, for example, filter any value.

5 generate-resources
Generate resources to be included in the package.
6 process-resources
Copy and process the resources into the destination directory, ready for packaging phase.

7 compile
Compile the source code of the project.

8 process-classes
Post-process the generated files from compilation, for example to do bytecode
enhancement/optimization on Java classes.

9 generate-test-sources
Generate any test source code to be included in compilation phase.

10 process-test-sources
Process the test source code, for example, filter any values.

11 test-compile
Compile the test source code into the test destination directory.

29
12 process-test-classes
Process the generated files from test code file compilation.
13 test
Run tests using a suitable unit testing framework (Junit is one).
14 prepare-package
Perform any operations necessary to prepare a package before the actual packaging.

15 package
Take the compiled code and package it in its distributable format, such as a JAR,
WAR, or EAR file.

16 pre-integration-test
Perform actions required before integration tests are executed. For example, setting
up the required environment.

17 integration-test
Process and deploy the package if necessary into an environment where integration
tests can be run.

18 post-integration-test
Perform actions required after integration tests have been executed. For example,
cleaning up the environment.

19 verify
Run any check-ups to verify the package is valid and meets quality criteria.
20 install
Install the package into the local repository, which can be used as a dependency in
other projects locally.

21 deploy
Copies the final package to the remote repository for sharing with other developers
and projects.

30
Maven Installation Steps
Step 1 - Verify Java Installation in Your Machine
First of all, open the console and execute a java command based on
the operating system you are working on.

OS Task Command

Windows Open Command Console c:\> java -version

Linux Open Command Terminal $ java -version

Mac Open Terminal machine:< joseph$ java -


version

Let's verify the output for all the operating systems −

OS Output

Windows java 11.0.11 2021-04-20 LTS


Java(TM) SE Runtime Environment 18.9
(build 11.0.11+9-LTS-194)
Java HotSpot(TM) 64-Bit Server VM 18.9
(build 11.0.11+9-LTS-194, mixed mode)

Linux java 11.0.11 2021-04-20 LTS


Java(TM) SE Runtime Environment 18.9
(build 11.0.11+9-LTS-194)
Java HotSpot(TM) 64-Bit Server VM 18.9
(build 11.0.11+9-LTS-194, mixed mode)

Mac java 11.0.11 2021-04-20 LTS


Java(TM) SE Runtime Environment 18.9
(build 11.0.11+9-LTS-194)
Java HotSpot(TM) 64-Bit Server VM 18.9
(build 11.0.11+9-LTS-194, mixed mode)

31
If you do not have Java installed on your system, then download the Java Software
Development Kit (SDK) from the following link http://www.oracle.com. We are
assuming Java 11.0.11 as the installed version for this tutorial.

Step 2 - Set JAVA Environment

Set the JAVA_HOME environment variable to point to the base directory location
where Java is installed on your machine. For example.

OS Output

Windows Set the environment variable JAVA_HOME to


C:\Program Files\Java\jdk11.0.11

Linux export JAVA_HOME = /usr/local/java-current

Mac export JAVA_HOME = /Library/Java/Home

Append Java compiler location to the System Path.

OS Output

Windows Append the string C:\Program


Files\Java\jdk11.0.11\bin at the end of the
system variable, Path.

Linux export PATH = $PATH:$JAVA_HOME/bin/

Mac not required

32
Verify Java installation using the command java -version as
explained above.
Step 3 - Download Maven Archive
Download Maven 3.8.4
from https://maven.apache.org/download.cgi
OS Archive name

Windows apache-maven-3.8.4-bin.zip

Linux apache-maven-3.8.4-bin.tar.gz

Mac apache-maven-3.8.4-bin.tar.gz

Step 4 - Extract the Maven Archive


Extract the archive, to the directory you wish to install Maven
3.8.4. The subdirectory apache-maven-3.8.4 will be created from
the archive.

OS Location (can be different based on your


installation)

Windows C:\Program Files\Apache Software


Foundation\apache-maven-3.8.4

Linux /usr/local/apache-maven

Mac /usr/local/apache-maven

Step 5 - Set Maven Environment Variables


Add M2_HOME, M2, MAVEN_OPTS to environment variables.

33
Step 6 - Add Maven bin Directory Location to System Path
Now append M2 variable to System Path.

OS Output

Windows Set the environment variables using system


properties.
M2_HOME=C:\Program Files\Apache
Software Foundation\apache-maven-3.8.4
M2=%M2_HOME%\bin MAVEN_OPTS=-
Xms256m -Xmx512m

Linux Open command terminal and set


environment variables.
export M2_HOME=/usr/local/apache-
maven/apache-maven-3.8.4 export
M2=$M2_HOME/bin
export MAVEN_OPTS=-Xms256m -Xmx512m

Mac Open command terminal and set


environment variables.
export M2_HOME=/usr/local/apache-
maven/apache-maven-3.8.4
export M2=$M2_HOME/bin
export MAVEN_OPTS=-Xms256m -Xmx512m

Step 7 - Verify Maven Installation


Now open console and execute the following mvn command.

34
Finally, verify the output of the below commands, which should be
as follows

OS Task Command

Windows Open Command Console c:\> mvn --version

Linux Open Command Terminal $ mvn --version

Mac Open Terminal machine:~ joseph$ mvn --


version

Maven uses archetype plugins to create projects. To create a


simple java application, we'll use maven-archetype-quickstart
plugin. In example below, we'll create a maven based java
application project in C:\MVN folder.
Let's open the command console, go to the C:\MVN directory and
execute the following mvn command. Make sure that C:\MVN
directory is empty before running the command.
C:\MVN>mvn archetype:generate
-DgroupId = com.companyname.bank
-DartifactId = consumerBanking
-DarchetypeArtifactId = maven-archetype-quickstart
-DinteractiveMode = false
Maven will start processing and will create the complete java
application project structure

35
Maven Plugins
Maven is actually a plugin execution framework where every task is
actually done by plugins. Maven Plugins are generally used to −
create jar file
create war file
compile code files
unit testing of code
create project documentation
create project reports
A plugin generally provides a set of goals, which can be executed
using the following syntax −
mvn [plugin-name]:[goal-name]
For example, a Java project can be compiled with the maven-
compiler-plugin's compile-goal by running the following command.
mvn compiler:compile
Plugin Types
Maven provided the following two types of Plugins −

Sr.No. Type & Description

1 Build plugins
They execute during the build process and should be configured in the <build/>
element of pom.xml.

2 Reporting plugins
They execute during the site generation process and they should be configured in
the <reporting/> element of the pom.xml.

36
What is Nagios?

Nagios is an open source IT system monitoring tool. It was designed to run


on the Linux operating system and can monitor devices running Linux,
Windows and Unix OSes.

Nagios software runs periodic checks on critical parameters of application,


network and server resources. For example, Nagios can
monitor memory use, disk use and microprocessor load, as well as the
number of currently running processes and log files. Nagios also can
monitor services such as Simple Mail Transfer Protocol (SMTP), Post Office
Protocol 3, Hypertext Transfer Protocol (HTTP) and other common network
protocols. Nagios initiates active checks, while passive checks come from
external applications connected to the monitoring tool.

How Nagios works

Users can choose to work in the command-line interface or select a web-


based graphical user interface in some versions of Nagios and from third
parties. Nagios' dashboard provides an overview of the critical parameters
monitored on assets.

Based on the parameters and thresholds defined, Nagios can send out
alerts if critical levels are reached. These notifications can be sent through
email and text messages. An authorization system enables administrators to
restrict access.

37
Nagios plugins

Nagios can also run remote scripts and plugins using the Nagios Remote Plugin
Executor (NRPE) agent. NRPE enables remote monitoring of system metrics such
as system load, memory and disk use. It consists of the check_nrpe plugin, which
is stored on the local monitoring machine, and NRDP, which runs on the remote
machine. Nagios uses a plugin to consolidate data from the NRPE agent before it
goes to the management server for processing. NRPE can also communicate with
Windows agents to monitor Windows machines

Nagios supports plugins that are stand-alone add-ons and extensions so users can
define targets and which target parameters to monitor. Nagios plugins process
command-line arguments and communicate commands with Nagios Core.

There are around 50 plugins developed and maintained by Nagios, while there are
over 3,000 from the community. These plugins are categorized into lists including
hardware, software, cloud, OSes, security, log files and network connections. As
an example, when used in conjunction with environmental-sensing systems, a
Nagios plugin can share data on environmental variables, such as temperature,
humidity or barometric pressure.

Nagios tools

Nagios has proven popular among small and large businesses, as well as internet
service providers, educational institutions, government agencies, healthcare
institutions, manufacturing companies and financial institutions.

Users can choose among free and paid options, depending on the needed
services and support.

38
Nagios Core
The service that was originally known as Nagios is now referred to as
Nagios Core. Core is freely available as an open source monitoring
software for IT systems, networks and infrastructure. Core contains a
wide array of infrastructure monitoring through allowing plugins to
extend its monitoring capabilities. It is the base for paid Nagios
monitoring systems.

Nagios Core has an optional web interface, which displays network


status, notifications and log files. Core can notify its user when there
are server or host issues. Additionally, Core can monitor network
services such as SMTP, HTTP and Ping.

Nagios XI
Nagios XI is an extended interface of Nagios Core, intended as the
enterprise-level version of the monitoring tool. XI acts as monitoring
software, configuration manager and toolkit. While Nagios Core is free,
XI must be purchased from Nagios Enterprises. Atop the same features
as Core, XI adds preconfigured virtual machines (VMs), a web
configuration user interface, performance graphing, a mobile
application, dashboards, scheduled reporting and technical support
through email.

Nagios XI monitors IT infrastructure components such as applications,


OSes, networks and system metrics. Plugins are supported for these
infrastructure components to expand on XI's monitoring capabilities.

39
Nagios Log Server is a log monitoring and management tool that enables
an organization to view, sort and configure logs from its IT infrastructure,
including Windows event logs. Log Server can analyze, collect and store
logged data based on custom and preassigned specifications. Administrators
can set alerts to notify Log Server users when there is a potential threat or
malfunction on a monitored asset. For example, an alert goes out to the
Microsoft Exchange administrator when there are three failed login attempts
to Exchange Server, meaning there could be an unwarranted person trying
to guess the password to the system.

Nagios Network Analyzer tracks network traffic and bandwidth use. Network
Analyzer can resolve network outages, abnormalities and security threats.
Features include automated security alerts, customizable application
monitoring, integration with Nagios IX and a bandwidth use calculator.

Nagios Fusion is an aggregation service for Nagios Core and Nagios XI


servers that shows multiple systems in one view. Fusion condenses network
management by centralizing features and data from Nagios XI and Core in
one location, creating a granular view of a network infrastructure. With
Fusion, administrators can specify which XI and Core servers are displayed
and manage which users are allowed to view those servers. Additionally,
Fusion users can log into any managed server and use cached or live data
to configure charts and other graphics to appear on dashboards.

40
Nagios competitors

Nagios competitors include Zenoss, Zabbix, Microsoft System Center Operations


Manager (SCOM) and SolarWinds, among other open source and commercial
monitoring tools.

Zenoss

Zenoss is IT monitoring software for cloud, virtual and physical IT environments.


Zenoss monitors servers, networks, VMs, databases and other hardware and
software assets in an IT infrastructure. Similar to Nagios, Zenoss is available as an
open source version called Zenoss Core or more extensive paid, supported options
including Zenoss Service Dynamics and Zenoss as a Service. Service Dynamics is
the on-site version of the software, while Zenoss as a Service is a software-as-a-
service option. Similar to Nagios products, Zenoss products provide plugins, called
ZenPacks, which extend monitoring capabilities.

Zabbix

Zabbix is an open source monitoring tool for Linux, Unix and Windows OSes that
relies on agents to collect monitoring data. It can also use common protocols for
agentless operation. The technology monitors physical and cloud assets, VMs,
services and applications. Zabbix is evolving for cloud deployment, as well as on
premises.

Microsoft SCOM

Microsoft SCOM enables users to configure, manage and monitor devices and
applications via the same console. SCOM tracks server hardware, system services,
OSes, hypervisors and applications. SCOM, like Nagios, relies on agents or
agentless-based monitoring for its data collection, and supports plugins.

SolarWinds

SolarWinds' Server & Application Monitor software works with applications,


servers and databases. Server & Application Monitor includes performance
monitoring, server management, alerts and reporting through agentless
monitoring. Server & Application Monitor also supports other SolarWinds products.

41
Git & GitHub
Git

Git is distributed version control software. Version control is a way to save


changes over time without overwriting previous versions. Being distributed means
that every developer working with a Git repository has a copy of that entire
repository - every commit, every branch, every file. If you're used to working with
centralized version control systems, this is a big difference!

Whether or not you've worked with version control before, there are a few things
you should know before getting started with Git:

Branches are lightweight and cheap, so it's OK to have many of them

Git stores changes in SHA hashes, which work by compressing text files. That
makes Git a very good version control system (VCS) for software programming,
but not so good for binary files like images or videos.

Git repositories can be connected, so you can work on one locally on your own
machine, and connect it to a shared repository. This way, you
can push and pull changes to a repository and easily collaborate with others

Why Use Git?

Version control is very important - without it, you risk losing your work. With Git,
you can make a "commit", or a save point, as often as you'd like. You can also go
back to previous commits. This takes the pressure off of you while you're
working. Commit often and commit early, and you'll never have that gut sinking
feeling of overwriting or losing changes.

There are many version control systems out there - but Git has some major
advantages

42
Install Git Using GitHub Desktop

Installing GitHub Desktop will also install the latest version of Git if you don't already have
it. With GitHub Desktop, you get a command line version of Git with a robust GUI.
Regardless of if you have Git installed or not, GitHub Desktop offers a simple
collaboration tool for Git.

Install Git on Windows

Navigate to the latest Git for Windows installer and download the latest version.

Once the installer has started, follow the instructions as provided in the Git Setup wizard
screen until the installation is complete.

Open the windows command prompt (or Git Bash if you selected not to use the
standard Git Windows Command Prompt during the Git installation).

Type git version to verify Git was installed.

Note: git-scm is a popular and recommended resource for downloading Git for Windows.
The advantage of downloading Git from git-scm is that your download automatically
starts with the latest version of Git included with the recommended command prompt, Git
Bash .

Git init

git init git init turns any directory into a Git repository.

What Does git init Do?

git init is one way to start a new project with Git. To start a repository, use either git
init or git clone - not both.

To initialize a repository, Git creates a hidden directory called .git. That directory stores
all of the objects and refs that Git uses and creates as a part of your project's history.
This hidden .git directory is what separates a regular directory from a Git repository.

43
How to Use git init

Common usages and options for git init

git init: Transform the current directory into a Git repository

git init <directory>: Transform a directory in the current path into a Git repository

git init --bare: Create a new bare repository (a repository to be used as a remote
repository only, that won't contain active development)

Examples of git init

git init vs git clone

Starting a new project can be confusing. Sometimes, it's unclear if you should
use git init, git clone, or both.

git init: One Person Starting a New Repository Locally

Your project may already exist locally, but it doesn't have Git yet. git init is
probably the right choice for you. This is only run once, even if other collaborators
share the project.

First, initialize the repository and make at least one commit.

Once you have initialized the repository, create a remote repository somewhere
like GitHub.com.

Then, add the remote URL to your local git repository with git remote add origin
<URL>. This stores the remote URL under a more human-friendly name, origin.

Shape your history into at least one commit by using git add to stage the existing
files, and git commit to make the snapshot.

Once you have at least one commit, you can push to the remote and set up the
tracking relationship for good with git push -u origin master.

44
git clone: The Remote Already Exists

If the repository already exists on a remote, you would choose to git


clone and not git init.

If you create a remote repository first with the intent of moving your project to it
later, you may have a few other steps to follow. If there are no commits in the
remote repository, you can follow the steps above for git init. If there are commits
and files in the remote repository but you would still like it to contain your project
files, git clone that repository. Then, move the project's files into that cloned
repository. git add, git commit, and git push to create a history that makes sense
for the beginning of your project. Then, your team can interact with the
repository without git init again.

git init Existing Folder

The default behavior of git init is to transform the current directory into a Git
repository. For an existing project to become a Git repository, navigate into the
targeted root directory. Then, run git init.

Or, you can create a new repository in a directory in your current path. Use git init
<directory> and specify which directory to turn into a Git repository.

45
Git Clone
Git Clone

The git clone command is used to create a copy of a specific repository or branch
within a repository.

Git is a distributed version control system. Maximize the advantages of a full


repository on your own machine by cloning.

What Does git clone Do?

git clone https://github.com/github/training-kit.git When you clone a repository,


you don't get one file, like you may in other centralized version control systems.
By cloning with Git, you get the entire repository - all files, all branches, and all
commits.

Cloning a repository is typically only done once, at the beginning of your


interaction with a project. Once a repository already exists on a remote, like on
GitHub, then you would clone that repository so you could interact with it locally.
Once you have cloned a repository, you won't need to clone it again to do regular
development

The ability to work with the entire repository means that all developers can work
more freely. Without being limited by which files you can work on, you can work
on a feature branch to make changes safely. Then, you can:

later use git push to share your branch with the remote repository

open a pull request to compare the changes with your collaborators

test and deploy as needed from the branch

merge into the main branch.

46
How to Use git clone

Common usages and options for git clone

git clone [url]: Clone (download) a repository that already exists on GitHub, including all
of the files, branches, and commits.

git clone --mirror: Clone a repository but without the ability to edit any of the files. This
includes the refs, or branches. You may want to use this if you are trying to create a
secondary copy of a repository on a separate remote and you want to match all of the
branches. This may occur during configuration using a new remote for your Git hosting,
or when using Git during automated testing.

git clone --single-branch: Clone only a single branch

git clone --sparse: Instead of populating the working directory with all of the files in the
current commit recursively, only populate the files present in the root directory. This
could help with performance when cloning large repositories with many directories and
sub-directories.

`git clone --recurse-submodules[=<pathspec]: After the clone is created, initialize and


clone submodules within based on the provided pathspec. This may be a good option if
you are cloning a repository that you know to have submodules, and you will be working
with those submodules as dependencies in your local development.

Git Add

The git add command adds new or changed files in your working directory to the Git
staging area.

git add is an important command - without it, no git commit would ever do anything.
Sometimes, git add can have a reputation for being an unnecessary step in development.
But in reality, git add is an important and powerful tool. git add allows you to shape
history without changing how you work.

When do you use git add?

git add README.mdAs you're working, you change and save a file, or multiple files. Then,
before you commit, you must git add. This step allows you to choose what you are going
to commit. Commits should be logical, atomic units of change - but not everyone works
that way. Maybe you are making changes to files that aren't logical or atomic units of
change. git add allows you to systematically shape your commits and your history
anyway

47
What Does Git Add Do?
git add [filename] selects that file, and moves it to the staging area,
marking it for inclusion in the next commit. You can select all files,
a directory, specific files, or even specific parts of a file for staging
and commit.
This means if you git add a deleted file the deletion is staged for
commit. The language of "add" when you're actually "deleting" can
be confusing. If you think or use git stage in place of git add, the
reality of what is happening may be more clear.
git add and git commit go together hand in hand. They don't work
when they aren't used together. And, they both work best when
used thinking of their joint functionality.
How to Use git add
Common usages and options for git add
git add <path>: Stage a specific directory or file
git add .: Stage all files (that are not listed in the .gitignore) in the
entire repository
git add -p: Interactively stage hunks of changes

48
Git Commit
Git Commit

git commit creates a commit, which is like a snapshot of your repository. These commits are
snapshots of your entire repository at specific times. You should make new commits often, based
around logical units of change. Over time, commits should tell a story of the history of your
repository and how it came to be the way that it currently is. Commits include lots of metadata in
addition to the contents and message, like the author, timestamp, and more.

How Git Commit Works

Commits are the building blocks of "save points" within Git's version control.

git commit -m "update the README.md with link to contributing guide" Commits shape history

By using commits, you're able to craft history intentionally and safely. You can make commits to
different branches, and specify exactly what changes you want to include. Commits are created on
the branch that you're currently checked out to (wherever HEAD is pointing) so it's always a good
idea to run git status before making a commit, to check that you're checked-out to the branch that
you intend to be. Before you commit, you will need to stage any new changes that you'd like to
include in the commit using git add [file].

Commits are lightweight SHA hashes, objects within Git. As long as you're working with text files,
you won't need to worry about how many files you have, how big they are, or how many commits
you make. Git can handle it!

Committing in two phases

Commits have two phases to help you craft commits properly. Commits should be logical, atomic
units of change that represent a specific idea. But, not all humans work that way. You may get
carried away and end up solving two or three problems before you remember to commit! That's
OK - Git can handle that. Once you're ready to craft your commits, you'll use git add
<FILENAME> to specify the files that you'd like to "stage" for commit. Without adding any files,
the command git commit won't work. Git only looks to the staging area to find out what to
commit. Staging, or adding, files, is possible through the command line, and also possible with
most Git interfaces like GitHub Desktop by selecting the lines or files that you'd like to stage.

You can also use a handy command, git add -p, to walk through the changes and separate them
out, even if they're in the same file.

49
Continuous learning:

Because learning is a vital part of continuous process improvement,


members of the XP team are encouraged to learn new methods and
techniques that can lead to a higher quality product.

Git Tutorial
https://www.youtube.com/watch?v=tRZGeaHPoaw

50
ASSIGNMENT – UNIT 2

1. How can Kubernetes facilitate the deployment of micro services-based


applications in a DevOps pipeline? What advantages does it offer in
terms of scalability, fault tolerance, and resource utilization? (K3)

2. Develop DevOps Implementation for a Retail shop (K3)

3. Develop an implementation Case study on CI/CD Implementation for a


Netflix Website (K3)

4. Case study on CI/CD Implementation for a Netflix Website (K3)

51
PART A- UNIT-2

1. Name some network monitoring tools?

Nagios

OpenNMS

Splunk

Icinga 2

2. What is Maven Build Lifecycle?

The sequence of steps which is defined in order to execute the tasks


and goals of any maven project is known as build life cycle in maven.
Maven 2.0 version is basically a build life cycle oriented and clearly
says that these steps are well defined to get the desired output after
the successful execution of the build life cycle.

3. What are the Maven plugins

Plugins are the central feature of Maven that allow for the reuse of common
build logic across multiple projects. They do this by executing an action (i.e.
creating a WAR file or compiling unit tests) in the context of a project&#39;s
description - the Project Object Model (POM).

4. Which file is used to define dependency in Maven?

pom. xml is used to define dependency which is used to package the jar.
POM stands for project object model.

52
PART A- UNIT-2
4. Define Version control

Version control in DevOps is a critical component of the software development


lifecycle that helps teams manage and track changes to their source code and
other artifacts systematically. It provides a systematic way to manage and track
changes made to software, documents, configuration files, and other project
assets. The primary goals of version control in DevOps are to improve
collaboration among team members, ensure traceability of changes, and maintain
a reliable history of the project's evolution.

5. What are the advantages of using version control and code review tools in
DevOps workflows?
Advantages of Version Control:

1. Collaboration
2. Traceability
3. Branching and Parallel Development
4.Conflict Resolution
5. Rollback and Recovery
6. Automated Testing and Deployment
7. Code Reviews

Advantages of Code Review Tools

1.Code Quality
2.Bug Detection
3.Knowledge Sharing
4. Consistency
5.Compliance
6. Collaboration
7.Integration

53
6. Name three important DevOps KPIs?

Key Performance Indicators (KPIs) in DevOps are metrics used to assess


the performance, efficiency, and effectiveness of DevOps practices
within an organization. Here are three important DevOps KPIs:
1. Deployment Frequency

2. Lead Time for Changes 3. Mean Time to Recovery (MTTR)

7. Define DevOps Automation?

DevOps automation refers to the practice of using automated tools and


processes to streamline and optimize various aspects of the software
development and IT operations lifecycle within a DevOps framework.
The primary goal of DevOps automation is to enhance efficiency, reduce
manual intervention, and improve the consistency and reliability of
software delivery and infrastructure management.

8. What is Azure DevOps?

Azure DevOps supports a collaborative culture and set of processes that


bring together developers, project managers, and contributors to
develop software. It allows organizations to create and improve
products at a faster pace than they can with traditional software
development approaches.

54
PART B- UNIT 2

1. Explain in detail about Maven Build Management with examples. (K2), CO2
2. What is Git bisect? How can you use it to determine the source of a (regression)
bug? s(K3),CO2

3. How does Nagios help in the continuous monitoring of systems, applications, and
services?),CO1

4. Explain the operation of Github Merge, Pull request , Push request , Local and
Remote Repository with example),CO1

5. Describe a comprehensive overview of Git branching models, including Gitflow,


GitHub Flow, and GitLab Flow. Discuss the advantages and considerations of each
model(K2), CO2

6. Explain the installation steps in Git and Github

7. Implement a hello world application Using Maven Build package. (k2),CO2

55
SUPPORTIVE ONLINE COURSES – UNIT 2

https://swayam.gov.in/explorer?searchText=software+engineering

https://www.coursera.org/learn/software-processes

https://www.coursera.org/specializations/software-development-
lifecycle

https://www.coursera.org/learn/software-design-development-
life-cycle

56
REAL TIME APPLICATION- UNIT I
As per the KPMG Survey, on average, about 70 % of all IT-related projects fail to
meet their objectives, and one of the main reason is the selection of the wrong
software development process/model.

A software house owner explained in an agile conference “We were facing


problems like over commitment and under delivery, unsatisfied customers,
missing deadlines and unhappy team. We switched our development model, and
it all turned out to be ok.”

Just selecting a model that suits your criteria can avoid these problems.

For example, if requirements are all clear and written down, you might have to
choose a different model if requirements are not clear and constant changes are
expected.

Waterfall
Probably the oldest and most straightforward SDLC (software development life
cycle) development model, Waterfall follows a sequential model (like a waterfall)
with requirements analysis, design, coding, testing and implementation in such a
manner that the development does not move to next phase until the previous
phase is completed. That is why it is called the linear sequential software
development life cycle.

Iterative
Repetition is the keyword for the iterative model. Instead of having clear and
known requirements or waiting for them, a team starts development on the
known features, tests and then evaluate further requirements, develops, tests and
so on until the whole thing is done.

Agile
Agile, the most widely used software development methodology is Agile, has
become the industry standard, be it software development, App development or
Game development.

57
CONTENT BEYOND SYLLABUS – UNIT I

SOFTWARE PROJECT MANAGEMENT


Software project management refers to the branch of project management
dedicated to the planning, scheduling, resource allocation, execution, tracking and
delivery of software and web projects.

Project management in software engineering is distinct from traditional project


management in that software projects have a unique lifecycle process that
requires multiple rounds of testing, updating, and customer feedback. Most IT-
related projects are managed in the agile style, in order to keep up with the
increasing pace of business, and iterate based on customer and stakeholder
feedback.

ProWorkflow

ProWorkflow is a web-based project management software that enables users to


manage tasks and projects, track time, organize contacts, and generate reports for
their business. It is a productivity application that provides a comprehensive set of
features, yet still easy to use for all members of the team. Aside from the great tools
and functionality from the software, customers also enjoy free quality support
through consultations and trainings that help get their businesses up and running.

Jira

Jira is an agile project management software used by development teams to


plan, track, and release software. It is a popular tool designed specifically and used
by agile teams. Aside from creating stories, planning sprints, tracking issues, and
shipping up-to-date software, users also generate reports that help improve teams,
and create their own workflows. As part of Atlassian, it integrates with many tools
that enable teams to manage their projects and products from end to end. Jira
Software is built for every member of your software team to plan,track, and release
great software. Every team has a unique process for shipping software. Use an out-
of-the-box workflow, or create one to match the way your team works.

58
ASSESSMENT SCHEDULE

Tentative schedule for the Assessment During 2023-


2024 odd semester

Name of the
S.NO Start Date End Date Portion
Assessment

1 UNIT TEST 1 UNIT 1

2 IAT 1 UNIT 1 & 2

3 UNIT TEST 2 UNIT 3

4 IAT 2 UNIT 3 & 4

5 REVISION 1 UNIT 5 , 1 & 2

6 REVISION 2 UNIT 3 & 4

7 MODEL ALL 5 UNITS

59
PRESCRIBED TEXT BOOKS AND REFERENCE BOOKS

REFERENCES:

Jennifer Davis and Ryn Daniels, Effective DevOps: Building a Culture


of Collaboration, Affinity, and Tooling at Scale, First Edition, O'Reilly
Publications.

Gene Kim, Patrick Debois et al., The DevOPS Handbook: How to


Create World-Class Agility, Reliability, and Security in Technology
Organizations, IT Revolution Press; Illustrated edition, 2016.

60
MINI PROJECT SUGGESTIONS
Develop a Sample Spring Boot Project with following aspects
REST API End Points
Ex Funds Transfer Service
Query Fund Transfer Status
Junit Test Cases
Selenium Test Cases
DockerFile
Scripts for Docker Image and Container Cleanup / Creation
Maven Pom file with Docker integrations

Software Installation: -
Java 8
Maven Latest
VS Code / Eclipse STS
Jenkins
SonarQube
Docker and Kubernetes
Git Client
Nagios Network Mentoring Tool
Reference https://docs.semaphoreci.com/examples/java-spring-
continuous-integration/

61
Exercise 1:
Install Jenkins
Configure Jenkins for Maven, Java, GitHub,SonarQube and
SonarScanner
Setup Continuous Integration on Jenkins for the above said project
and show case the build stability in the form of
Build Stability
Test Case Success / Regression
Code Quality Check using SonarQube

Points to be observed: -
Build Stability
Finger Prints
Test Case Results
Workspace
Application Logs
Jenkins Pre / Post Actions
Email Notifications
Sonar Qube Report Analysis

62
Exercise 2:
Install Groovy
Create a Pipelines in Jenkins which will perform following steps
Configure Java/Maven/Private Repo
Git Clone of the above said project
Maven Build
Maven Test
Sonar Scanner (if quality if OK then proceed, else exit with error message)
Repo Setup and Install Libraries in the Repo
Docker Clean Containers
Docker Clean Images
Docker Build
Docker Run Container

Points to be observed: -
Build Stability
Finger Prints
Test Case Results
Workspace
Application Logs
Jenkins Pre / Post Actions
Email Notifications
Sonar Qube Report Analysis
Time Taken for each Steps
Process Refinement

63
MINI PROJECT SUGGESTIONS

1.Student Mark Analysis System

Problem Statement:

Computerized Student Mark Analysis System analysis the marks obtained


by the students and generate various reports of an Institution.

It needs to maintain the record of all the students and staff of an Institution.

It should be able to perform basic operations such as:

Add New Student and Staff details

Update Student and Staff Details

Delete Student and Staff Details.

View Results

Generate Reports:

Branch-wise Student Report

Grade-wise Student Report

Subject-wise Student Report

Year-wise Student Report

64
MINI PROJECT SUGGESTIONS

2. Quiz System

Problem Statement:

Online Quiz System allows different categories of candidates to attend


online test on various domains according to their required skill set.

It needs to maintain the record of all the participants by System Administrator.

It should be able to perform basic operations such as:

Registration/SignIn

Update Participant Details.

Delete Participant Details.

Add domain questions for various levels (Easy/Moderate/Difficult)

Attend Quiz & Display Score.

Generate Participant Report.

65
MINI PROJECT SUGGESTIONS

3.Ticket Reservation System

Problem Statement:

Online Ticket Reservation System allows the user to book/cancel the


tickets online from their place where the internet connectivity is feasible without
standing in the queue for a long time.

It needs to maintain the record of all the train details, station details and
passenger details of a particular train.

It should be able to perform basic operations such as:

Registration/SignIn

Add/Update/Delete Train Details

Check Availability of seats

Book Tickets

Cancel Tickets

Payment

66
MINI PROJECT SUGGESTIONS

4.Expert System

Problem Statement:

Expert System is used to identify an ailment by its symptoms and


prescribes an appropriate medicine corresponding to the disease. It is well known
that developing countries are facing lots of shortage of medical expertise.

It needs to maintain the record of all the symptoms and its prescribed medicines.

It should be able to perform basic operations such as:

Registration/SignIn

Add/Update/Delete Symptom Details

Querying about Symptoms

67
MINI PROJECT SUGGESTIONS

5.Course Registration System

Problem Statement:

Computerize Online Course Registration System and register students for


various courses based on the availability of seats and course instructor and generate
various reports.

It needs to maintain the record of all the courses, seats available, course
instructors and duration.

It should be able to perform basic operations such as:

Add new Courses and Course Instructors details

Update Courses and Course Instructors details

Delete Courses and Course Instructors details

View Registration status

Generate Reports:

Course-wise Registration Report

Courses Availability Report

Course Instructor Availability Report

Year-wise Registration Report

Courses and Course Instructors Report

68
MINI PROJECT SUGGESTIONS

6.Platform assignment System for the Trains in a Railway


Station

Problem Statement:

Computerize Platform assignment for the trains arriving to the railway


station and generate various reports.

It needs to maintain the record of Number of platforms, Number of trains arriving


and leaving the station and time details.

It should be able to perform basic operations such as:

Add new platform and train details

Update platform and train details

Delete platform and train details

View platform status

Generate Reports:

Trains arriving and leaving the station Report

Platform assignment details Report on a particular date and between dates

Platform available status Report for any instant

69
Thank you

Disclaimer:

This document is confidential and intended solely for the educational purpose of
RMK Group of Educational Institutions. If you have received this document through
email in error, please notify the system manager. This document contains proprietary
information and is intended only to the respective group / learning community as
intended. If you are not the addressee you should not disseminate, distribute or
copy through e-mail. Please notify the sender immediately by e-mail if you have
received this document by mistake and delete this document from your system. If
you are not the intended recipient you are notified that disclosing, copying,
distributing or taking any action in reliance on the contents of this information is
strictly prohibited.

70

You might also like