Professional Documents
Culture Documents
23
DESIGN & DEVELOPMENT TOOLS
In this project we mainly used software to develop the entire idea. However, we have
used few hardware for simulation. There are also few python dependencies used in this
project.
24
Name version Category
Python 3.7
Java 11
TypeScript 4.1
HTML 5
XML 1.1
CSS 3
ECMAScript Software
JavaScript
5.1
PyCharm 2020.2
Spring Tool Suits 4
Visual Studio Code 1.52
Android Studio 201.7
MySql 3
opencv-python 3.4.6.27
numpy 1.19.1
cmake 3.18.2
dlib 19.18.0 Dependency
face-recognition 1.3.0
twilio 6.45.3
tkinter 8.6
Spring Boot 2.3.5
Angular 10 Framework
Bootstrap 4
Android Native -
Retrofit 2 Library
Glide 4
Android Phone API 28
Webcam -
Hardware
Computer -
Web Server localhost
4.1 SOFTWARE
Python 3.0, released in 2008, was a major revision of the language that is not completely
backward-compatible, and much Python 2 code does not run unmodified on Python 3.
The Python 2 language was officially discontinued in 2020 (first planned for 2015), and
Python 2.7.18 is the last Python 2.7 release and therefore the last Python 2 release. No
more security patches or other improvements will be released for it. With Python 2's end-
of-life, only Python 3.6.x and later are supported.
Python interpreters are available for many operating systems. A global community of
programmers develops and maintains CPython, a free and open-source reference
implementation. A non-profit organization, the Python Software Foundation, manages
and directs resources for Python and CPython development.
Page | 26
Java was originally developed by James Gosling at Sun Microsystems (which has since
been acquired by Oracle) and released in 1995 as a core component of Sun Microsystems'
Java platform. The original and reference implementation Java compilers, virtual
machines, and class libraries were originally released by Sun under proprietary licenses.
As of May 2007, in compliance with the specifications of the Java Community Process,
Sun had relicensed most of its Java technologies under the GNU General Public License.
Oracle offers its own HotSpot Java Virtual Machine, however the official reference
implementation is the OpenJDK JVM which is free open source software and used by
most developers and is the default JVM for almost all Linux distributions.
TypeScript may be used to develop JavaScript applications for both client-side and
server-side execution (as with Node.js or Deno). There are multiple options available for
transcompilation. Either the default TypeScript Checker can be used, or the Babel
compiler can be invoked to convert TypeScript to JavaScript.
TypeScript supports definition files that can contain type information of existing
JavaScript libraries, much like C++ header files can describe the structure of existing
object files. This enables other programs to use the values defined in the files as if they
were statically typed TypeScript entities. There are third-party header files for popular
libraries such as jQuery, MongoDB, and D3.js. TypeScript headers for the Node.js basic
modules are also available, allowing development of Node.js programs within
TypeScript.[6]
Page | 27
Figure 4.2: Logo of TypeScript
Web browsers receive HTML documents from a web server or from local storage and
render the documents into multimedia web pages. HTML describes the structure of a web
page semantically and originally included cues for the appearance of the document.
HTML elements are the building blocks of HTML pages. With HTML constructs, images
and other objects such as interactive forms may be embedded into the rendered page.
HTML provides a means to create structured documents by denoting structural semantics
for text such as headings, paragraphs, lists, links, quotes and other items. HTML elements
are delineated by tags, written using angle brackets. Tags such as <img /> and <input />
directly introduce content into the page. Other tags such as <p> surround and provide
information about document text and may include other tags as sub-elements. Browsers
do not display the HTML tags, but use them to interpret the content of the page.
HTML can embed programs written in a scripting language such as JavaScript, which
affects the behavior and content of web pages. Inclusion of CSS defines the look and
layout of content. The World Wide Web Consortium (W3C), former maintainer of the
HTML and current maintainer of the CSS standards, has encouraged the use of CSS over
explicit presentational HTML since 1997.[2]
Page | 28
Figure 4.2: Logo of HTML
CSS is designed to enable the separation of presentation and content, including layout,
colors, and fonts.[3] This separation can improve content accessibility, provide more
flexibility and control in the specification of presentation characteristics, enable multiple
web pages to share formatting by specifying the relevant CSS in a separate .css file which
reduces complexity and repetition in the structural content as well as enabling the .css file
to be cached to improve the page load speed between the pages that share the file and its
formatting.
Separation of formatting and content also makes it feasible to present the same markup
page in different styles for different rendering methods, such as on-screen, in print, by
voice (via speech-based browser or screen reader), and on Braille-based tactile devices.
CSS also has rules for alternate formatting if the content is accessed on a mobile device.
[4]
The name cascading comes from the specified priority scheme to determine which style
rule applies if more than one rule matches a particular element. This cascading priority
scheme is predictable.
Page | 29
Figure 4.2: Logo of CSS
Alongside HTML and CSS, JavaScript is one of the core technologies of the World Wide
Web.[8] JavaScript enables interactive web pages and is an essential part of web
applications. The vast majority of websites use it for client-side page behavior,[9] and all
major web browsers have a dedicated JavaScript engine to execute it.
PyCharm is cross-platform, with Windows, macOS and Linux versions. The Community
Edition is released under the Apache License, and there is also Professional Edition with
extra features – released under a proprietary license.
Page | 31
Figure 4.2: Logo of PyCharm
Microsoft has released Visual Studio Code's source code on the VSCode repository of
GitHub, under the permissive MIT License,[5][9] while the compiled releases are
freeware.[7]
In the Stack Overflow 2019 Developer Survey, Visual Studio Code was ranked the most
popular developer environment tool, with 50.7% of 87,317 respondents reporting that
they use it.[10]
Page | 32
4.1.3 Android Studio [20]
Android Studio is the official[7] integrated development environment (IDE) for Google's
Android operating system, built on JetBrains' IntelliJ IDEA software and designed
specifically for Android development.[8] It is available for download on Windows,
macOS and Linux based operating systems or as a subscription-based service in 2020.[9]
[10] It is a replacement for the Eclipse Android Development Tools (E-ADT) as the
primary IDE for native Android application development.
Android Studio was announced on May 16, 2013 at the Google I/O conference. It was in
early access preview stage starting from version 0.1 in May 2013, then entered beta stage
starting from version 0.8 which was released in June 2014.[11] The first stable build was
released in December 2014, starting from version 1.0.
MySQL is free and open-source software under the terms of the GNU General Public
License, and is also available under a variety of proprietary licenses. MySQL was owned
and sponsored by the Swedish company MySQL AB, which was bought by Sun
Microsystems (now Oracle Corporation).[8] In 2010, when Oracle acquired Sun,
Widenius forked the open-source MySQL project to create MariaDB.[9]
Page | 33
MySQL has stand-alone clients that allow users to interact directly with a MySQL
database using SQL, but more often MySQL is used with other programs to implement
applications that need relational database capability. MySQL is a component of the
LAMP web application software stack (and others), which is an acronym for Linux,
Apache, MySQL, Perl/PHP/Python. MySQL is used by many database-driven web
applications, including Drupal, Joomla, phpBB, and WordPress. MySQL is also used by
many popular websites, including Facebook,[10][11] Flickr,[12] MediaWiki,[13] Twitter,
[14] and YouTube.[15]
4.2 DEPENDENCIES
This OpenCV tutorial will help you learn the Image-processing from Basics to Advance,
like operations on Images, Videos using a huge set of Opencv-programs and projects.
Page | 34
Gesture recognition
Human–computer interaction (HCI)
Mobile robotics
Motion understanding
Object identification
Segmentation and recognition
Stereopsis stereo vision: depth perception from 2 cameras
Structure from motion (SFM)
Motion tracking
Augmented reality
To support some of the above areas, OpenCV includes a statistical machine
learning library that contains:
Boosting
Decision tree learning
Gradient boosting trees
Expectation-maximization algorithm
k-nearest neighbor algorithm
Naive Bayes classifier
Artificial neural networks
Random forest
Support vector machine (SVM)
Deep neural networks (DNN)
Page | 35
2005, Travis Oliphant created NumPy by incorporating features of the competing
Numarray into Numeric, with extensive modifications. NumPy is open-source software.
Page | 36
Figure 4.6: Methods in NumPy
Page | 37
4.2.3 CMake [23]
CMake is a cross-platform free and open-source software tool for managing the build
process of software using a compiler-independent method. It supports directory
hierarchies and applications that depend on multiple libraries. It is used in conjunction
with native build environments such as Make, Qt Creator, Ninja, Apple's Xcode, and
Microsoft Visual Studio. It has minimal dependencies, requiring only a C++ compiler on
its own build system.
Page | 38
4.2.4 Dlib [24]
Dlib is a general-purpose cross-platform software library written in the programming
language C++. Its design is heavily influenced by ideas from design by contract and
component-based software engineering. Thus, it is, first and foremost, a set of
independent software components. It is open-source software released under a Boost
Software License.
Since development began in 2002, Dlib has grown to include a wide variety of tools. As
of 2016, it contains software components for dealing with networking, threads, graphical
user interfaces, data structures, linear algebra, machine learning, image processing, data
mining, XML and text parsing, numerical optimization, Bayesian networks, and many
other tasks. In recent years, much of the development has been focused on creating a
broad set of statistical machine learning tools and in 2009 Dlib was published in the
Journal of Machine Learning Research. Since then it has been used in a wide range of
domains.
Page | 39
Creating a GUI application using Tkinter is an easy task. All we need to do is perform the
following steps:
Import the Tkinter module.
Create the GUI application main window.
Add one or more of the above-mentioned widgets to the GUI application.
Enter the main event loop to take action against each event triggered by the user.
4.3 FRAMEWORK
We take an opinionated view of the Spring platform and third-party libraries so you can
get started with minimum fuss. Most Spring Boot applications need minimal Spring
configuration.
If you’re looking for information about a specific version, or instructions about how to
upgrade from an earlier release, check out the project release notes section on our wiki.
Features
Create stand-alone Spring applications
Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
Provide opinionated 'starter' dependencies to simplify your build configuration
Automatically configure Spring and 3rd party libraries whenever possible
Provide production-ready features such as metrics, health checks, and
externalized configuration
Absolutely no code generation and no requirement for XML configuration
Page | 40
Figure 4.2: Logo of Spring Boot
Components define views, which are sets of screen elements that Angular can
choose among and modify according to your program logic and data.
Components use services, which provide specific functionality not directly related
to views. Service providers can be injected into components as dependencies,
making your code modular, reusable, and efficient.
Modules, components and services are classes that use decorators. These decorators mark
their type and provide metadata that tells Angular how to use them.
The metadata for a component class associates it with a template that defines a
view. A template combines ordinary HTML with Angular directives and binding
markup that allow Angular to modify the HTML before rendering it for display.
The metadata for a service class provides the information Angular needs to make
it available to components through dependency injection (DI).
Page | 41
Figure 4.2: Logo of Angular
4.3.1 Bootstrap [28]
Bootstrap is a free and open-source CSS framework directed at responsive, mobile-first
front-end web development. It contains CSS- and (optionally) JavaScript-based design
templates for typography, forms, buttons, navigation, and other interface components.
Bootstrap is among the most starred projects on GitHub, with more than 142,000 stars,
behind freeCodeCamp (almost 312,000 stars) and marginally behind Vue.js framework.
[2]
This library makes downloading JSON or XML data from a web API fairly
straightforward. Once the data is downloaded then it is parsed into a Plain Old Java
Object (POJO) which must be defined for each "resource" in the response.
Page | 43
Figure 4.2: Logo of Glide
Glide supports fetching, decoding, and displaying video stills, images, and animated
GIFs. Glide includes a flexible API that allows developers to plug in to almost any
network stack. By default Glide uses a custom HttpUrlConnection based stack, but also
includes utility libraries plug in to Google's Volley project or Square's OkHttp library
instead.
Glide's primary focus is on making scrolling any kind of a list of images as smooth and
fast as possible, but Glide is also effective for almost any case where you need to fetch,
resize, and display a remote image.
4.5 HARDWARE
It is free and open source software; its source code is known as Android Open Source
Project (AOSP), which is primarily licensed under the Apache License. However most
Android devices ship with additional proprietary software pre-installed,[10] most notably
Google Mobile Services (GMS)[11] which includes core apps such as Google Chrome,
the digital distribution platform Google Play and associated Google Play Services
development platform. About 70 percent of Android smartphones run Google's
ecosystem;[12] competing Android ecosystems and forks include Fire OS (developed by
Amazon) or LineageOS. However the "Android" name and logo are trademarks of
Google which impose standards to restrict "uncertified" devices outside their ecosystem
to use Android branding.[13][14]
Page | 44