Kalyan
Kalyan
Kalyan
A report submitted in partial fulfillment of the requirements for the Award of Degree of
BACHELOR OF TECHNOLOGY
IN
By
Kalyan M
Under Supervision of
Mr.Modi
th th
(Duration: 29 April, 2023 to 14 June, 2023)
ENGINEERING
GITAM
(Deemed to be University)
VISAKHAPATNAM
2023-2024
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
GITAM INSTITUTE OF TECHNOLOGY GITAM
(Deemed to be University)
CERTIFICATE
This is to certify that the “Internship report” submitted by Kalyan (122010304057) is work done
by her and submitted during 2023 – 2024 academic year, in partial fulfillment of the requirements
for the award of the degree of BACHELOR OF TECHNOLOGY in COMPUTER SCIENCE
AND ENGINEERING, at Phoenix Global, Hyderabad.
CERTIFICATE
KALYAN
Thanks to
ACKNOWLEDGEMENT
First, I would like to thank Mr. Subash, Founder, of Phoenix Global,Hyderabad for
giving me the opportunity to do an internship within the organization.
I also would like all the people that worked along with me Phoenix Global,Hyderabad
with their patience and openness they created an enjoyable working environment.
It is indeed with a great sense of pleasure and immense sense of gratitude that I
acknowledge the help of these individuals.
I am highly indebted to Mr. Subash, and Trainer Mr. Modi, for the facilities provided to
accomplish this internship.
It is indeed with a great sense of pleasure and immense sense of guidance that I
acknowledge the help and I am highly indebted to Prof. M. Venkateshwara Rao,
Principal, School Of Technology, for his support during the tenure of the internship.
I would like to express my sincere thanks to Prof. Sirisha, Head of the Department of
Computer Science engineering for providing the opportunity to Undertake this internship
and encouragement in the completion of the project.
I am also thankful to all the staff members of the Computer Science Engineering Department
for their valuable suggestions. I would like to thank my team mates and parents who extended
their help, encouragement and moral support either directly or indirectly in this project.
Kalyan M
(122010304057)
1. INTERNSHIP
(About Phoenix Global)
Intenship Schedule
2. ABSTRACT
various travelling and transport agencies for easier access to identification and verification,
and authentication of the respective customers, and their details are all stored in a private
cloud database. The project also demonstrates the system with a sample fictional company
website developed using various technologies such as ReactJS, NodeJS, MySQL, etc., paired
with popular cloud technologies such as AWS EC2, RDS and Rekognition. The site features a
facial scanning authentication procedure. This system can be used to implement in the nascent
stage in various travel centres and transport services. It can be outsourced to defence and
As we progress into globalisation, the world becomes a place where time and travel are
essential.
We, as a team, hyper-focused on specific intricate problems that arise from various
stakeholders in the Travels domain.
• Customers
Most Travellers face late booking issues due to limited tickets and unstable websites.
This caused a surge in fake tickets and wrong bookings due to inconvenient agencies protocols.
• Travel Agencies
Travel Agencies in India are said to hit the billion-dollar mark, yet minor problems still hold
them back from reaching their fullest potential.
The primary problems like scams with agents, irregular travel patterns, monopoly of one
powerful agency all create a massive impact on the industry. What an agency would offer is
vital for its growth, and using technology would be the right thing.
• Government/Law Enforcement
The government has a ridiculously high budget for internal security. Yet, unwanted forces still
find a way to create disturbance in the country. One of the ways is using refugees as sleeper
cells, who frequently use India's transport system efficiently, and as there are no safeguards
for travel or id proofs with recent photos.
The government finds it incredibly difficult to track the accused, given India's high
population. The government needs full transparency on which Transport facility Indians are
using only on a daily basis, and a facial scan on that day to garner easy tracking.
This would not only track the accused but may also be incredibly difficult for unwanted
forces to fraud facial scans in a few seconds. The government wouldn't feel the hassle of
enquiring about each agency individually.
Hence, after carefully researching valid data and information, we decided to create software
that solves this multifold problem.
Various travel and transportation businesses developed a solution named the Travels Internal
Management Efficient System (TIMES) to make it easier to identify, authenticate, and verify the
customers in the issue. The whole client database is a private cloud storage space. The project
also contains a sample fake corporate website that was created using many web technologies and
well-known cloud services to demonstrate how the system functions. The website employs face
scanning as part of its authentication procedure. This technology may be used at this early stage
to deploy in several travel companies and transportation services. It may be outsourced to defence
and intelligence agencies for easier identification and authentication.
4. PROBLEM IDENTIFICATION & OBJECTIVES
Recently, we have seen a surge in the number of travellers using their transportation, as it
provides a unique experience to commercial means. This has led many Transportation
services companies to have a massive database of customers constantly using their services
24/7. Along with the benefits, this imperfect system has bought many cons as well, such as
1. The surge in fake tickets and proxy customers, who forge tickets and instil fraudulent
means of using the Transportation services
2. Too much customer data overload makes it difficult for Transportation services
companies to keep a log of their clientele, which leads to a loss of money and time.
3. The improper customer verification system, done manually, isn't as efficient as it once
was and relies heavily on the individual.
4. The lack of security and authentication of the customers using the bus, cab, and tram
services freely in the city concerns police and intelligence agencies, as the improper
customer database system can easily be misused and misled.
This has led to the requirement for a unique system which can recognise, detect, and store the
customer's faces and biodata in one glance, withdrawing the need for paper tickets and passes.
Proposed Solution
The proposed idea is to create an AI-based Ticket Management System which uses AWS
Machine Learning services to scan a person's face, register their biodata and travel history,
and the ticket details. The system collects the customer's data by a primary facial scan during
the time of registration for travel and stores it in the Cloud Database. When the customer
arrives at their respective means of transportation, a second facial scan is done. The system
checks if the person's biodata is authenticated and then proceeds to store their travel log.
If any issue occurs with an individual's data - the authentication fails, and the system will
reject the individual's journey status, and the individual's case is forwarded to the respective
authorities.
5. SYSTEM METHODOLOGY
Front-end
For the proposed AI-based Ticket Management System, we had to initiate a website named
"The Summer Clouds" We designed a website using Node.js and React.js in the web
development environment. We connected the database and servers in the back end. We used
image processing services to capture, scan and recognise the faces of the respective
customers. The website's front end was developed with creative UI/UX elements making it
easier and more feasible for customers.
Back-end
The collected image from the primary scan at the "centre" is sent to the website's back end,
where the image is cross-checked to see if it already exists. If it exists, it gets stored in the
Journey Registration Table in the database; if it's a new customer, the details are stored in the
Journey Registration Table and given an id(face_id) and stored in the customer table as well.
We then had to use the Amazon Rekognition service on our website by directly deploying it
and using it for face recognition. The system works when a new customer gets his face
scanned, the facial features get extracted and stored, and they are registered by indexing.
After the facial feature data is stored, we have a function that can search the customer by
recognising their respective facial features.
Deployment
We are planning to deploy on our EC2 instance, on the Ubuntu Linux OS, while the node.js
server is running in the back-end, and the Nginx server is used to serve our static web pages
produced from React project.
6. OVERVIEW OF
TECHNOLOGIES Cloud
What is Cloud?
Cloud computing is the delivery of different services through the Internet, including data
storage, servers, databases, networking, and software. Cloud-based storage makes it possible
to save files to a remote database and retrieve them on demand.
Cloud uses a network layer to connect different devices to provide access to resources
residing in the centralised data centre of the cloud. Cloud technology users can use the data
centre through the company's network or internet facilities. In the cloud computing network,
the service is made of different components used to provide cloud service to the customers.
The components are distributed across other platforms so that if any one of the components
goes down, the service is still running and serving the users. Cloud computing provides a
virtual environment for the users to store the data in the cloud and can access that data
remotely from any location. The services are operable in case of hardware failure or server
issues. For example, there is one large building that has a large area in it. Many small
companies will not take the complete building. They will always take a small portion of it to
make their setup. The cloud computing network can be visualised in the same way the user
does not take complete service. They always carry a small portion of the network as per their
requirements. Cloud computing provides services to its user; these services are always
available, and users can access these services from any remote location.
Types of Cloud
1. Public Cloud
The public cloud is described as computing services provided through the public Internet by
third-party suppliers, making them accessible to those who want to use them or buy them. It
can be free or on-demand for customers to pay for the cycles, storage, or bandwidth they
consume per usage. Example: Sun Cloud, AWS, Microsoft Azure
2. Community Cloud
A particular group of customers from organisations with shared issues can only use cloud
infrastructure. It may be owned, operated, managed, and run by one or more of the communal
organisations, a third party or a mixture of them.
3. Private Cloud
A private cloud is a computing system in which IT services are supplied for the specialised
use of one organisation over a private IT facility. A single organisation operates the cloud
infrastructure only. It can be run on-site or off-site by the organisation or a third party. Private
Phoenix Global cloud terms are often employed interchangeably with the virtual private cloud
(VPC). Technically speaking, a VPC is a private cloud that uses the infrastructure of a
thirdparty cloud provider, while an inner cloud is enforced. Example: AWS, VMware
4. Hybrid Cloud
Characteristics of Cloud
• On-demand self-service
Cloud computing services do not require any human administrators, users themselves can
provision, monitor and manage computing resources as needed.
• Broad network access
The Computing services are generally provided over standard networks and heterogeneous
devices.
• Rapid elasticity
The Computing services should have IT resources that can scale out quickly and on a needed
basis. Whenever the user requires services, it is provided to him, and it is scaled out as soon
as their requirement gets over.
• Resource pooling
The IT resource (e.g., networks, servers, storage, applications, and services) are shared across
multiple applications and occupants in an uncommitted manner. Numerous clients are
provided service from the same physical resource.
• Measured service
The resource utilisation is tracked for each application and occupant; it will provide both the
user and the resource provider with an account of what has been used. This is done for
various reasons like monitoring billing and effective resource use.
Advantages of Cloud
• Lower Capital cost
Organisations can offer services using significant resources from cloud service providers.
• Unlimited Storage
Cloud provides you with enough space for your information and data. There is nothing to
worry about insufficient space or augmenting current storage space.
• Easy Backup
All your data is stored in the cloud, so backup and restoration becomes easier compared to
storing data on a physical device.
• Software Integration
Software integration is much simpler because users do not need additional efforts to
customise and integrate applications as per requirements.
• Deployment
Cloud carries quick deployment. When you choose a performance method, your whole
system can be entirely functional in a few minutes.
• Collaboration
Through Cloud Computing, sharing and communication will become easy. If a user works on
a single project can share files with employees, contractors, and third parties.
Disadvantages of Cloud
• Downtime
Downtime is often cited as one of the most significant disadvantages of cloud computing.
Since cloud computing systems are internet-based, service outages are inevitable and can
occur for any reason.
Although cloud service providers implement the best security standards and industry
certifications, storing data and important files on external providers creates risks. Any data
discussion must address security and privacy, especially regarding managing sensitive data.
We must not forget what happened at Code Space and the hacking of their AWS EC2 console,
which led to data deletion and the eventual shutdown of the company. Their dependence on
the remote cloud-based infrastructure meant taking on the risks of outsourcing everything.
• Vulnerability to attack
• Vendor lock-in
Vendor lock-in is another perceived disadvantage of cloud computing. Easy switching between
cloud services is a service that hasn't yet completely evolved, and organisations may find it
difficult to migrate their services from one vendor to another. Differences between vendor
platforms may create difficulties in migrating from one cloud platform to another, which could
equate to additional costs and configuration complexities. Gaps or compromises made during
migration could also expose your data to additional security and privacy vulnerabilities.
practically unlimited set of virtual machines (VMs). Amazon provides various types of
instances with different configurations of CPU, memory, storage and networking resources to
suit user needs. Each type is available in various sizes to address specific workload
requirements. Instances are created from Amazon Machine Images (AMI). The machine
images are like templates. They are configured with an operating system (OS) and other
software, which determine the user's operating environment. Users can select an AMI
provided by AWS, the user community, or through the AWS Marketplace Users also can
create their own AMIs and share them. EC2 instance types are grouped into families based on
target application profiles. These groups include the following:
ELASTIC IP
An Elastic IP address is a reserved public IP address that you can assign to any EC2 instance
in a particular region until you choose to release it. The Elastic IP address remains in place
through events that generally cause the address to change, such as stopping or restarting the
instance.
An Elastic IP address is a static IPv4 address designed for dynamic cloud computing. By
using an Elastic IP address, you can mask the failure of an instance or software by rapidly
remapping the address to another instance in your account.
maintenance of relational databases in the cloud. A cloud administrator uses Amazon RDS to
set up, operate, manage and scale a relational instance of a cloud database. Amazon RDS is
not a database but a service used to manage relational databases.
Databases are used to store large quantities of data that applications can draw on to help them
perform various functions. A relational database uses tables to store data. It is called relational
because it organises data points with defined relationships. Administrators control Amazon
RDS with the AWS Management Console, Amazon RDS API calls or the AWS Command
Line Interface. They use these interfaces to deploy database instances where users can apply
specific settings. Amazon provides several instance types with different combinations of
resources, such as CPU, memory, storage options and networking capacity.
AWS Rekognition
Rekognition also provides highly accurate facial analysis and facial search capabilities that you
can use to detect, analyse, and compare faces for a wide variety of user verification, people
counting, and public safety use cases. With Amazon Rekognition Custom Labels, you can identify
objects and scenes in images that are specific to your business needs. For example, you can build
a model to classify specific machine parts on your assembly line or to detect unhealthy plants.
Amazon Rekognition Custom Labels takes care of the model development heavy lifting for you,
so no machine learning experience is required. You simply need to supply images of objects or
scenes you want to identify, and the service handles the rest.
HTML
Web browsers receive HTML documents from a web server or 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. Images and other objects such as
interactive forms may be embedded with HTML constructs 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. Tags, written using angle
brackets delineate HTML elements.
CSS
CSS is designed to enable the separation of presentation and content, including layout,
colours, and fonts. 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.
JavaScript
React is only concerned with state management and rendering that state to the DOM, so
creating React applications usually requires the use of additional libraries for routing, as well
as certain client-side functionality.
React adheres to the declarative programming paradigm. Developers design views for each
state of an application, and React updates and renders components when data changes. This is
in contrast with imperative programming.
NodeJS
Node.js has an event-driven architecture capable of asynchronous I/O. These design choices
aim to optimise throughput and scalability in web applications with many input/output
operations, as well as for real-time Web applications (e.g., real-time communication programs
and browser games).
ExpressJS
It is designed for building web applications and APIs. It has been called the de facto standard
server framework for Node.js. Express is the back-end component of popular development
stacks like the MEAN, MERN orMEVN stack, together with the MongoDB database
software and a JavaScript front-end framework or library.
Nginx
Ngnix is easy to configure in order to serve static web content or to act as a proxy server.
Nginx can be deployedto also serve dynamic content on the network using FastCGI, SCGI
handlers for scripts, WSGIapplication servers or Phusion Passenger modules, and it can serve
as a software load balancer. Nginx uses an asynchronous event-driven approach, rather than
threads, to handle requests. Nginx's modular event-driven architecture can provide predictable
performance under high loads.
MySQL
SQL is a language programmers use to create, modify and extract data from the relational
database, as well as control user access to the database. In addition to relational databases and
SQL, an RDBMS like MySQL works with an operating system to implement a relational
database in a computer's storage system, manages users, allows for network access and
facilitates testing database integrity and creation of backups.
7. IMPLEMENTATION
Travels App - Summer Clouds Travels Service
Web Application
Summer Clouds Travels Service is a web application developed using ReactJS, NodeJS, Express
& MySQL. This application is developed to make use of various popular web frameworks,
libraries, cloud services, etc. The application is designed for educational purposes, so for
simplicity, little emphasis is put on business logic to meet objective standards and strict
constraints. The application saves users' data based on the users' facial identities. The
registrations/bookings of the user can be visited by verifying their facial identity.
Cloud
Various cloud services provided by AWS in the free tier are used. The application is deployed
on an AWS EC2 Ubuntu virtual machine instance. The static website and NodeJS server are
deployed and served by an NGINX web server. The application uses AWS Rekognition service
for facial recognition and verification features. AWS RDS provides the database used.
Database description
• Each bus is allocated to a particular route, although some routes may have several
buses. Each route is described by KM, start point, endpoint and duration.
• A town may be situated along several routes. We keep track of unique names and
station names in each town.
• One or more drivers are allocated to one route during a period of time. The system
keeps the information about the driver's name, mobile number, hire date, basic salary,
job grade.
• The system keeps the information about any changes in the allocations of the drivers
to the routes and the last route assigned to each driver.
• A customer can book a slot in multiple buses. Customer is identified by their facial
identity.
Database Design
• New parameter groups should be created. Choose the MySQL family that is compatible
with your MySQL database version on the window, give it a name, and click the confirm
button.
• "Edit Parameters" should be used to choose the newly generated parameter group.
• Search for and set the value of the option "log_bin_trust_function_creators" to "1".
• Activate the "Instances" tab. Release the "Instance Action" called "Modify" and expand
your MySQL instance.
• Enable "Apply Immediately" and choose the newly formed parameter group.
• Open the "Instances" tab once again. Release the "Instance Action" called "Modify" and
expand your MySQL instance.
• Select the "Instances" tab. Expand your MySQL instance and do the "Reboot"
"Instance Action."
• It's crucial to restart the database as the final step. The databases still require restarting
despite how the RDS web interface is written
For sample data in the tables, a python script was used to generate random data which was in
turn used to write table data insert queries like as in the following sample screenshots.
Components developed
The server is developed and written for a NodeJS Express API server. It imports several
useful libraries as shown in the image below.
Various functions and objects have been used for the server to provide its functionality.
The API server's code is designed and written to serve multiple endpoints to provide
the functions of the application. It accepts GET and POST requests on these endpoints.
The endpoints and their allow methods are as in the image shown below.
\
A .env file is created for the server to access various necessary environmental variables and
credentials. This way, such values are not hardcoded into the server source code and can be
configured on the server machine easily. The following image is an example .env file,
which let's the other developer know which variables have to be provided for the server to
run properly.
The following SQL commands were written to be run by the server to manage the database as
per the applications of the website.
towns:
register:
addCustomer:
customer:
updateCustomer:
removeCustomer:
authorise:
removeRegistrations:
info:
(whereClause) =>
`SELECT
B.id AS bus_id,
B.brand,
B.chair_count,
B.ac,
SRC.name AS src_name,
SRC.town_located AS src_town,
DES.name AS des_name,
DES.town_located AS des_town,
BA.start_time,
R.duration,
R.distance,
GROUP_CONCAT(DISTINCT D.name SEPARATOR ', ') AS drivers,
ORDER BY BA.start_time;`
Only samples of source code have been provided in this report. For full source code, visit the
repository of this project on GitHub through the following link.
In AWS Console, create a new EC2 instance with Ubuntu Linux OS. Configure the virtual
machine options and create the instance.
Once done, install nginx by the command: sudo apt-get install -y nginx
Run npm run build to build production code. Run the NodeJS server.
Now create nginx configuration file at /etc/nginx/sites-available/ with the
following content.
nginx Visit the public IP and the web application will be online.
8. RESULTS & DISCUSSIONS
Throughout the duration of the internship weeks, the team progressively designed and developed
the project solution. The following is a summary of what was achieved each week.
• Week - 1
All team members had a meeting about how we could collaborate and use our skills to the
fullest and how we could create something new in the cloud computing domain.
• Week - 2
• Week - 3
We started the front-end design and outline of the website, where the front-end engineers
in our team designed the UI/UX and added the elements to make it visually appealing and
functional.
• Week - 4
We started working on the website's back-end, designing the databases, and using AWS
services, where we discussed using services like RDS, Rekognition, and EC2 instances.
• Week - 5
We finally worked on the entire system and did real-time testing of how it should work,
modified certain features, improved the complexity, and made it easier to use and more
functional.
• Week – 6
We ended the internship by presenting our project to the guide, who applauded our
collective effort, discussion and execution.
The web application provided adequate results as expected. The results of the project can be
illustrated through the following.
For authentication, the admin would open verify option on the site and capture an image of
the user at the verification centre.
The image will be sent to the server for processing, and the user's booking details will be
retrieved. The admin will authenticate and allow in the person/user.
9. CONCLUSION & FUTURE SCOPE
The multifold problems arising in the Travel Industry require multipronged solutions to
improvise the scenario; this strives us, engineers, to brainstorm the usage of new
technologies, in the market for the ease of the situation, with a vision to use our
technical knowledge creatively, to solve people's day to day problems.
We used the ever-growing field of cloud computing, the comprehensive web technology and
frameworks, with the benefit of database services, to create a website that serves its purpose.
We aim to achieve multifold goals with our project; we plan to restructure and re-organise
India's travelling and ticket booking system. We keep our three main stakeholders in
mind: the customers, travel agencies, and law enforcement agencies.
Upon perfecting our ticket management system, we seek the support of esteemed
government agencies for the fulfilment of data security of the citizens and accountability of
their safety and safeguards.
We inspire law enforcement agencies to use our technology to check the refugee crisis in the
country and the internal movement of disturbance forces in our country. With adequate
resources and a plan to strategise our project, we believe this would be a game-changer in
the internal security of our country, of which transportation is a significant pillar.
Consequently, we strive to make the booking of tickets hassle-free for the travellers, who
could make their journey a step or several easier with just a click.
• AWS Concepts
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html
https://dev.to/asim_ansari7/deploy-a-react-node-app-to-production-on-aws-2gdf
• HTML
https://en.wikipedia.org/wiki/HTML
• CSS
https://en.wikipedia.org/wiki/CSS
• JavaScript
https://en.wikipedia.org/wiki/JavaScript
• ReactJS
https://en.wikipedia.org/wiki/React_(JavaScript_library)
• NodeJS
https://en.wikipedia.org/wiki/Node.js
• ExpressJS
https://en.wikipedia.org/wiki/Express.js
• Nginx
https://en.wikipedia.org/wiki/Nginx
• MySQL
https://en.wikipedia.org/wiki/MySQL