report for object detection
report for object detection
A PROJECT REPORT
Submitted by
200340131504
BACHELOR OF ENGINEERING
in
May, 2023
Narnarayan Shastri Institute of Technology
Jetalpur, Gujarat
CERTIFICATE
This is to certify that the project report submitted along with the project entitled Development
Automation has been carried out by Shaikh Aveshuddin Arifuddin under my guidance in
partial fulfillment for the degree of Bachelor of Engineering in Computer Science and
Engineering, 8th Semester of Gujarat Technological University, Ahmedabad during the academic
year 2023.
Jetalpur, Gujarat
DECLARATION
I hereby declare that the Internship / Project report submitted along with the Internship / Project
entitled Development Automation submitted in partial fulfillment for the degree of Bachelor of
TECHNOLABS PVT. LTD. under the supervision of Harsh Patel and that no part of this report
has been directly copied from any students reports or taken from any other source, without
____________
TeamID:288543 Development Automation
ACKNOWLEDGEMENT
I have taken efforts in this project. However, it would not have been possible without the kind
support and help of many individuals and organizations. I would like to extend my sincere thanks
to all of them. I am highly indebted to Narnarayan Shastri Institute of Technology for their
guidance and constant supervision as well as for providing necessary information regarding the
project also for their support in completing the project. I would like to express my gratitude
towards my parents & members who offer their kind cooperation and encouragement which help
me in completion of this project. I would like to sincerely acknowledge and express my gratitude
to all those who have directly or indirectly been instrumental in preparing this report.
GTU i NSIT
TeamID:288543 Development Automation
ABSTRACT
practices and tools that automate the software development lifecycle. It includes
delivery of software, and improve the quality of software by catching defects and
organizations can achieve faster time to market, better quality software, and
GTU ii NSIT
TeamID:288543 Development Automation
List of Figures
Devops lifecycle 9
Flow-Chart 15
Use case Diagram 16
Developer module 18
List of Abbreviations
JS JavaScript
GTU iv NSIT
TeamID:288543 Development Automation
Table of Contents
Acknowledgement i
Abstract ii
List of Figures iii
List of Abbreviation iv
Table of Contents v
Chapter-1 Overview of the company 1
1.1 History 1
1.2 Different product/scope of work 1
1.3 Capacity of Department 2
Chapter-2 Production Management 3
2.1 Work being carried out in each department 3
2.1.1 Web solutions 3
2.1.2 App Development 3
2.1.3 Digital Marketing 3
2.1.4 Software Development 4
2.2 List the technical specification of major equipment used in each department 4
2.2.1 App Development 4
2.2.2 Website Development 4
Chapter-3 Internship Management 5
3.1 Internship summary 5
3.2 Purpose 5
3.3 Objective 5
3.4 Scope 5
3.5 Technology and literature review 6
GTU v NSIT
TeamID:288543 Development Automation
3.5.1 Yaml 6
3.5.2 JavaScript 6
3.5.3 Jenkins 6
3.5.4 Docker 7
3.5.5 Docker compose 7
3.5.6 Github 7
3.5.7.AWS 8
5.1 Flowchart 15
Chapter-6 Implementation 17
GTU vi NSIT
TeamID:288543 Development Automation
CHAPTER-1
1.1 HISTORY
Amar Infotech Pvt. Ltd India based company. With more than 10 years of practical experience
we bring the experts in following Technologies:
We have envisaged providing solutions to every IT-related problem in the most cost-friendly
way. With this noble vision, we have expanded globally giving innumerable IT solutions to our
widely existing and growing client and customer. Amar Infotech Pvt. Ltd. is receptive to new
ideas and promises help and support anytime and anywhere.
We are glad to realize complex web applications based on your design and specification. We are
experienced long-distance runners as most of the projects we have worked on are long-term and
usually lasts from 3 to 12 months. Our developers are constantly improving their qualification
levels. We’ve managed to organize our own learning system within our team. It helps our
developers increase their knowledge and always be up to date with innovative technologies and
be ready to apply them.
GTU 1 NSIT
TeamID:288543 Overview of the company
Vision: To become The Best IT Solutions and Services platform by giving optimal solutions to
Businesses and Educational Institutions for their consistent growth.
Mission: To provide such software solutions that are functional, reliable, maintainable and
Cost-friendly to our existing and growing client and customer base. To consistently cater to their
growing needs for an optimal solution, ensuring excellent support and service platform to give a
Hassle-free experience in achieving their dreams.
GTU 2 NSIT
TeamID:288543 Production Management
CHAPTER-2
PRODUCTION MANAGEMENT
In our Company, there are mainly four departments working like web Solution,
AppDevelopment, Digital Marketing and Software Development.
Amar Infotech Pvt. Ltd. provides the web solution services in Web Solution Company provide
below types of services:
Amar Infotech provides the Digital Marketing services Digital Marketing Company provide
below types of services:
● SEO service
● Social Media Marketing
GTU 3 NSIT
TeamID:288543 Production Management
● Reputation Management
● Content Writing Service
Software development involves various steps. Our team of experts takes care of all processes to
deliver functional and robust software. Firstly, we understand your requirements and then start
development. Our team also explores the scope for suggestions and improvements. After your
approval, we implement the suggestions for better performance of your software.
Our technical competency for undertaking application development contracts are listed below:
● Javascript
● React JS
● Node JS
● HTML/CSS
● ANGULAR JS
GTU 4 NSIT
TeamID:288543 Internship Management
CHAPTER-3
INTERNSHIP MANAGEMENT
I have done my internship at Amar Infotech Pvt. Ltd., Ahmedabad. The internship was for
duration of about 12 weeks and it involved a lot of learning activities all around. My internship
was based on DevOps Technology.
3.2 PURPOSE
The main purpose of a Development Automation is to automate the software delivery process by
providing a reliable and repeatable way to build, test, and deploy code changes. A CD pipeline is
a system of stages that helps you to deploy and integrate new code into your software. It's a way
to ensure that all the pieces come together correctly, and to avoid any problems that might arise
from making changes after deployment.
3.3 OBJECTIVE
The scope of development automation is to create ease for production team not only to create a
quality product but also maintain different version of code. In addition, the pipelines also
automate the deployment process which removes the manual hassle of deploying the code to
server.
GTU 5 NSIT
TeamID:288543 Internship Management
● There are ample technologies used in my project which are yaml, Javascript, Html, Css
and so on. However, there are few tools which entail jenkins, docker, docker compose,
aws that play a significant role in achieving automation and also making development
environments more feasible than before.
3.5.1 Yaml
3.5.2 Javascript
3.5.3 Jenkins
● Jenkins is an open source automation tool written in Java programming language that
allows continuous integration.
● Jenkins builds and tests our software projects which continuously makes it easier for
developers to integrate changes to the project, and makes it easier for users to obtain a
fresh build.
● It also allows us to continuously deliver our software by integrating with a large number
of testing and deployment technologies.
GTU 6 NSIT
TeamID:288543 Internship Management
3.5.4 Docker
● Docker is an open platform for developing, shipping, and running applications. Docker
enables you to separate your applications from your infrastructure so you can deliver
software quickly.
● With Docker, you can manage your infrastructure in the same ways you manage your
applications. By taking advantage of Docker’s methodologies for shipping, testing and
deploying code quickly, you can significantly reduce the delay between writing code and
running it in production.
● Docker streamlines the development lifecycle by allowing developers to work in
standardized environments using local containers which provide your applications and
services. Containers are great for continuous integration and continuous delivery (CI/CD)
workflows.
● Compose is a tool for defining and running multi-container Docker applications. With
Compose, you use a YAML file to configure your application’s services. Then, with a
single command, you create and start all the services from your configuration.
3.5.6 Github
● GitHub is a web-based interface that uses Git, the open source version control software
that lets multiple people make separate changes to web pages at the same time. As
Carpenter notes, because it allows for real-time collaboration, GitHub encourages teams
to work together to build and edit their site content.
GTU 7 NSIT
TeamID:288543 Internship Management
3.5.7 AWS
● Amazon Web Services (AWS) is the foremost leading vendor of cloud services and
infrastructure, dominating the cloud computing market since its infancy. The term AWS
applies to a collection of Amazon’s numerous cloud computing applications.
● With no upfront costs and a usage-based billing system, the cloud services described in
this AWS overview provide an affordable alternative to physical servers.
Internship planning is part of project management, which relates to the use of schedules such as
charts to plan and subsequently report progress within the project environment. Initially, the
project scope is defined and the appropriate methods for completing the project are determined.
The durations for the various tasks necessary to complete the work are listed and grouped into a
work breakdown structure.Project planning is often used to organize different areas of a project,
including project plans, workloads and the management of teams and individuals.
GTU 8 NSIT
TeamID:288543 Internship Management
Plan: Professionals determine the commercial need and gather end-user opinions throughout this
level. In this step, they design a project plan to optimize business impact and produce the
intended result.
Code: During this point, the code is being developed. To simplify the design process, the
developer team employs lifecycle DevOps tools and extensions like Git that assist them in
preventing safety problems and bad coding standards.
Build: After programmers have completed their task, they use tools such as Maven and Gradle to
submit the code to the common code source.
Test: To assure software integrity, the product is first delivered to the test platform to execute
various sorts of screening such as user acceptability testing, safety testing, integration checking,
speed testing, and so on.
Release: At this point, the build is prepared to be deployed in the operational environment. The
DevOps department prepares updates or sends several versions to production when the build
satisfies all checks based on the organizational demands.
GTU 9 NSIT
TeamID:288543 Internship Management
Deploy: At this point, Infrastructure-as-Code assists in creating the operational infrastructure and
subsequently publishes the build using various DevOps lifecycle tools.
Operate: This version is now convenient for users to utilize. With tools including Chef, the
management department takes care of server configuration and deployment at this point.
Monitor:The DevOps workflow is observed at this level depending on data gathered from
consumer behavior, application efficiency, and other sources. The ability to observe the complete
surroundings aids teams in identifying bottlenecks affecting the production and operations teams'
performance.
Methodology 3 days
Testing 5 days
GTU 10 NSIT
TeamID:288543 Internship Management
There are several factors which plays significant role in estimating the overall cost of project
development which are given below:
Hardware and Software Cost: It includes cost of various software tools which requires licenses
to operate as well as hardware running on the cloud with pay as you go facility
Testing and Quality Assurance Costs: This includes the cost of testing and quality assurance
activities, such as unit testing, integration testing, performance testing, and security testing, to
ensure the accuracy and reliability of development automation.
Documentation Costs: This includes the cost of training documenting the project deliverables,
including user manuals, technical documentation, and other project-related documentation.
Project Management Costs: This includes the cost of project management activities, such as
project planning, monitoring, and coordination, to ensure the smooth execution of the project and
timely delivery of project milestones.
GTU 11 NSIT
TeamID:288543 System Analysis
CHAPTER-4
SYSTEM ANALYSIS
● In the current system, developers were pushing the code to the staging server via ftp, and
once the code was tested properly by the testing team, developers pushed the code from
the local server to the production server. All this process required human interaction, and
developers also needed to manually push the code every time they made changes.
● Feasibility is the measure of how beneficial the development of information system will
be to an organization. Feasibility is the analysis of risks, costs and benefits relating to
economics, technology and user operation.
● There are several types of feasibility depending on the aspect they covers. Some
important feasibilities is as follows:
1. Operational Feasibility
2. Technical Feasibility
3. Scheduling Feasibility
4. Economic Feasibility
GTU 12 NSIT
TeamID:288543 System Analysis
i. Operational Feasibility
● Operational feasibility is the measure of how well a proposed system solves the
problems, and takes advantage of the opportunities identified during scope definition and
how it satisfies the requirements identified in the requirements analysis phase of system
development.
● Development automation eliminates the manual hassle of building, deploying, and
maintaining different versions of code.
● It uses a devops methodology that integrates several tools to automate the software
development process.
● From a technical perspective, Jenkins is a widely used tool that can be easily integrated
with other software development tools and technologies such as Git, SVN, Docker, and
Kubernetes. This makes it a feasible option for automating various stages of the
development process, including building, testing, and deployment.
● The economic feasibility of using CI/CD pipeline depends on various factors such as the
size of the development team, the complexity of the project, the frequency of code
changes, and the available infrastructure. Here are some ways that CI/CD pipeline can be
economically feasible:
1. Improved Efficiency: With CI/CD pipeline, developers can save time and reduce
errors by automating the build, test, and deployment process. This can lead to
faster time to market and reduced development costs.
GTU 13 NSIT
TeamID:288543 System Analysis
GTU 14 NSIT
TeamID:288543 System Design
CHAPTER-5
SYSTEM DESIGN
5.1 Flowchart
GTU 15 NSIT
TeamID:288543 System Design
GTU 16 NSIT
TeamID:288543 Implementation
CHAPTER-6
IMPLEMENTATION
● To begin with, I initialize my project by setting up an EC2 server on AWS cloud. After
that, I logged in to the server using SSH keys and installed node js and jenkins
automation tools on that server.
● Then, I have configured jenkins and installed following plugins:
○ Email notification: To trigger email whenever successful build completed for
docker container.
○ Github Webhook: To check any new code changes pushed into the Git repository.
● After that, jenkins continuously monitors changes on github repository using webhooks
and as soon as new code is pushed or changes are made to repository jenkins execute the
pipelines.
● In addition, I have built total three pipelines for following purposes:
○ First Pipeline: Builds docker file and creates a container from the docker image
and deploy it to the staging server.
○ Second Pipeline: Triggers an email to QA team when the build is successful.
○ Third Pipeline: DevOps will manually run it via jenkins when signoff is approved
by QA team, and it will deploy docker container to production server
● When developers push the code to the github repository, Jenkins will fetch the code from
the repository and execute the CI/CD pipeline, which builds a docker file, creates a
docker image from it, and executes docker commands without any human
interaction.Jenkins will also construct a docker container from the image and deploy it to
the staging server.
● Moreover, at that point, another pipeline for email notification is built, which will notify
the QA team that code is deployed on the staging server, and if code fails to deploy, it
will send an acknowledgement to the developer regarding the errors.
GTU 17 NSIT
TeamID:288543 Implementation
● After deploying to the staging server QA will perform the testing on the application; the
next phase is QA signoff; if the tester approves the code, developer will deploy it on the
production environment; if denied, QA will manually send an email to the developer.
DEVELOPER MODULE
The developers wrote logic and functionality code for the specific applications. In addition, they
can maintain different versions of the code by using the code management tools .
The devops engineer will integrate tools like jenkins, docker, github as well as configure
required resources and also write a script according to the structure of the applications to
automate the build and deployment process which will create ease for the developer and testing
team to create quality software.
GTU 18 NSIT
TeamID:288543 Implementation
The production team makes changes in the code and commits it in the repository.
GTU 19 NSIT
TeamID:288543 Implementation
The Automation tool started the build and deployment on the server (Url:
http://3.109.23.254:8080/)
GTU 20 NSIT
TeamID:288543 Implementation
GTU 21 NSIT
TeamID:288543 Implementation
GTU 22 NSIT
TeamID:288543 Implementation
GTU 23 NSIT
TeamID:288543 Implementation
GTU 24 NSIT
TeamID:288543 Conclusion and discussion
Chapter-7
In this internship I had worked on Devops methodology at Amar Infotech pvt.ltd, for this
internship I learnt so many best practices of Devops. I learnt about different technologies like
YAML, AWS, DOCKER, CHEF.
Firstly, I begin with the AWS cloud services because without a remote server I won't be able to
work on the project as EC2 was the only thing on which I deployed the application. Secondly,
read all the documentation of docker to create a container which will virtualize the server and run
the application on the lightweight environment which will not only increase the response time
but all utilize the server resources efficiently.
Probing Ahead, gain the knowledge about the ci cd pipelines and perform the development of
pipelines also configure smtp for the email notification which is invoked when an event occurs.
GTU 25 NSIT
TeamID:288543 Conclusion and discussion
In the future, I will continue to explore and develop the Devops CI CD pipeline, as well as its
integration into our other product development processes. Nevertheless, also try to automate
other pity parts of the development lifecycle.
7.4 REFERENCE
● Medium.com
● Stackoverflow.com
● Jenkins.io
● Hub.docker.com
● Stackexchange.com
GTU 26 NSIT