Kalyan

Download as pdf or txt
Download as pdf or txt
You are on page 1of 48

INTERNSHIP REPORT

A report submitted in partial fulfillment of the requirements for the Award of Degree of

BACHELOR OF TECHNOLOGY

IN

COMPUTER SCIENCE AND ENGINEERING

By

Kalyan M

Regd. No: 122010304057

Under Supervision of

Mr.Modi

Cloud & DevOps Trainer,

Phoenix Global, Hyderabad.

th th
(Duration: 29 April, 2023 to 14 June, 2023)

DEPARTMENT OF COMPUTER SCIENCE &

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.

Head of the Department Internship Faculty


Certificate ID:
PG-2324-ETSD-475

CERTIFICATE

This is to certify that

KALYAN

a B.E. / B. Tech student of GITAM Visakhapatnam has successfully completed


internship at Phoenix Global from 29 Apr 2023 to 14 June 2023 (1.5 Months) in
partial fulfilment of the requirements of the award of mentioned degree during the
said period as Junior Engineer - Cloud and DevOps under the guidance of industry
mentor Mr. Modi K with base location being Hi Tech City, Hyderabad, T. S.

The candidate demonstrated exceptional dedication, enthusiasm, and a strong work


ethic, and actively contributed to the allotted project and exhibited excellent
teamwork and collaboration skills.

Phoenix Global, #6 Floor, Omega-C Block, Divyasree


Building (Google Hyderabad Campus) Hitech City Rd,
Hyderabad, Telangana 500032
Web: www.phoenix-global.co.in Office Number:
040 71055796
e-mail: [email protected] Fax Number:
040 71055701

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)

Phoenix Global is a skill-development company that helps students acquire


and master professional and soft skills as per the requirements of the industry
benchmarked to world's top firms, trained by top class industry
professionals. Phoenix Global is a platform having Industry professionals with esteemed alma
mater including the IITs and IIMs to mentor and train students on cutting-edge skills, critical
to the emerging industries while also giving them an opportunity to intern on a project under
the mentorship of industry professionals from the IITs /IIMs. Our vision is to be a national
leader in skill development and industry readiness training by providing differentiated
training from top-class industry experts. The mission is to be a go-to skill development
platform for students, imparting skills benchmarked at global standards that help them realise
their dream careers profitably Our core values, the 4Ps – Professionalism, Punctuality,
Passion, Perseverance stand for who and what we are as an organisation.

Intenship Schedule
2. ABSTRACT

Travels Internal Management Efficient System (TIMES) is a software designed to be used by

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

intelligence agencies for easier identification and authentication.


3. INTRODUCTION
Problem Statement

As we progress into globalisation, the world becomes a place where time and travel are
essential.

As travelling is multifold, there are many ways to travel.

We, as a team, hyper-focused on specific intricate problems that arise from various
stakeholders in the Travels domain.

We have researched and found problems of the following stakeholders:

• 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.

How does the Cloud work?

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

A hybrid cloud is a computer environment incorporating a government and private cloud to


share information and apps. Organisations achieve flexibility and the computer capacity of a
government cloud for fundamental and insensitive computing functions whilst safe behind a
corporate firewall for business-critical apps and information. Example: When delicate data is
engaged, Federal agencies opt for personal clouds.

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.

• Security and Privacy

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

In cloud computing, every component is online, which exposes potential vulnerabilities.


Even the best teams suffer severe attacks and security breaches from time to time. Since cloud
computing is built as a public service, it's easy to run before you learn to walk. After all, no
one at a cloud vendor checks your administration skills before granting you an account: all it
takes to get started is generally a valid credit card.

• Limited control and flexibility


Since the cloud infrastructure is owned, managed, and monitored by the service provider, it
transfers minimal control to the customer.

• 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.

AWS Elastic Compute Cloud (EC2)


What is an Amazon EC2 instance?

An Amazon EC2 instance is a virtual server in Amazon's Elastic


Compute Cloud (EC2) for running applications on the Amazon Web
Services (AWS) infrastructure. AWS is a comprehensive, evolving cloud
computing platform; EC2 is a service that enables business subscribers to
run application programs in the computing environment. It can serve as a

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

What is an 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.

What is the need for AWS Elastic IP?

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.

Toallocate an Elastic IP address to your account in a particular region, see Allocating an


Elastic IP Address. How many elastic IP can you create? five Elastic IP addresses. You're
limited to five Elastic IP addresses.
AWS Relational Database Service (RDS)

What is Amazon RDS?

Amazon Relational Database Service (RDS) is a managed SQL database


service provided by Amazon Web Services (AWS). Amazon RDS supports
an array of database engines to store and organise data. It also helps with
relational database management tasks, such as data migration, backup,
recovery and patching. Amazon RDS facilitates the deployment and

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.

How does Amazon RDS work?

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

Amazon Rekognition makes it easy to add image and video analysis to


your applications using proven, highly scalable, deep learning technology
that requires no machine learning expertise to use. With Amazon
Rekognition, you can identify objects, people, text, scenes, and activities
in images and videos and detect inappropriate content. Amazon

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

JavaScript is a high-level, often just-in-time compiled language that conforms to the


ECMAScript standard. It has dynamic typing, prototype-based object-orientation, and
firstclass functions. It is multi-paradigm, supporting event-driven, functional, and imperative
programming styles. It has application programming interfaces (APIs) for working with text,
dates, regular expressions, standard data structures, and the Document Object Model (DOM).
ReactJS

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

Consequently, Node.js represents a "JavaScript everywhere" paradigm, unifying


web-application development around a single programming language, rather than different
languages for server-side and client-side scripts.

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

Summer Clouds Travels Logo

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.

The following is the architecture diagram of the project implementation.


Database
A MySQL database is used for this web application. The database is deployed on AWS
Relational Database Service (RDS).

Database description

• A country bus company owns a number of buses. A bus is characterised by the


number, no. of chairs, options (AC, Automatic, PS), and brand name.

• 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.

• Each route can pass through a number of towns.

• 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

Database Sample Snapshot

A MySQL database is created in AWS console.


Amazon's AWS RDS databases by default block triggers. In order to enable them, the
following steps have to be taken.

• Launch the RDS web interface.

• "Parameter Groups" tab should be selected.

• 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".

• Restore the modifications.

• 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.

• Once you have verified the changes, click "Continue."

• 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:

`SELECT * FROM Town;`,

register:

`INSERT IGNORE INTO Registrations VALUE (?, ?);`,

addCustomer:

`INSERT INTO Customer VALUE(?, ?, ?, ?);`,

customer:

`SELECT * FROM Customer WHERE face_id=?;`,

updateCustomer:

`UPDATE Customer SET email=?, name=?, phone=? WHERE face_id=?;`,

removeCustomer:

`DELETE FROM Customer WHERE face_id=?`,

authorise:

`DELETE FROM Registrations WHERE face_id=? AND bus_id=?;`,

removeRegistrations:

`DELETE FROM Registrations WHERE face_id=?;`,

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,

GROUP_CONCAT(DISTINCT IRT.inter_town SEPARATOR ', ') AS


inter_towns FROM BusAllocation BA

JOIN Bus B on B.id = BA.bus_id

JOIN Route R on R.route_no = BA.route_no

JOIN InterRouteTowns IRT on IRT.in_route_no = R.route_no

JOIN Station SRC on R.start_point = SRC.station_id

JOIN Station DES on R.end_point = DES.station_id

JOIN DriverAllocation DA on B.id = DA.bus_id


JOIN Driver D on DA.driver_id = D.id
${whereClause}

GROUP BY BA.bus_id, BA.start_time

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.

Configure security group to allow HTTP traffic.


Connect to the instance with SSH and run sudo apt-get update command on
the terminal.

Once done, install nginx by the command: sudo apt-get install -y nginx

Verify installation by checking installed version: nginx -v

Also, install npm by the command: sudo apt-get install -y npm


Move the directories at respective locations, configure .env file and prepare to serve them.

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.

Restart nginx server with the command: sudo systemctl restart

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.

We decided on what roles each of us wanted to work.

• Week - 2

We created a design document and listed our requirements, software specifications,


technologies required, etc.

• 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.

Screenshot of the Website on a desktop browser


A user can select their source and destination. They can choose to book a slot based on
their preferences. Once chosen, the user will be prompted to provide details and capture a
picture of their face for future authentication.
The data is sent to the server when the details are filled in and submitted. The server sends the
image to the AWS Rekognition service and uses the processed results to add to the database.

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.

Lastly, we recognise India's unorganised structure of the broad hierarchy of unregulated


and semi-private ticket booking agencies. A multifold system working to solve a common
problem would benefit most of the agencies in the market and, subsequently, increase the
ease of work between clients and citizens.
10. REFERENCES
• What is Cloud Computing?
https://aws.amazon.com/what-is-cloud-computing/

• AWS Concepts
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html

• AWS EC2 Tutorial


https://www.simplilearn.com/tutorials/aws-tutorial/aws-ec2

• Deploy React-Node App on AWS EC2

https://dev.to/asim_ansari7/deploy-a-react-node-app-to-production-on-aws-2gdf

• AWS Rekognition Developer Docs


https://docs.aws.amazon.com/rekognition/latest/dg/API_Reference.html

• 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

You might also like