Final
Final
Transcribe Voice
A MINI PROJECT
REPORT ON
CERTIFICATE
SUBMITTED BY:
The report has been approved as it satisfies the academic requirements in respect of mini
project work prescribed the course.
Dr. V.B.Waghmare
(Principal)
Government College of Engineering, Yavatmal
BHUSHAN ONKAR
AAKASH PRAJAPATI
ACKNOWLEDGEMENT
I would like to express our deepest appreciation to all those who provided us the
possibility to complete this mini project report. A special gratitude I give to our third year
project mentor, Prof. SUDESH BACHWANI, whose contribution in stimulating
suggestions and encouragement helped us to coordinate our mini project. She gave us support
from the start to the end of this mini project and kept us on the correct path.
I would like to express my special thanks to Prof. S. A. BACHWANI, Mini Project
In-Charge of Computer Engineering and Prof. C. V. ANDHARE , Head of the
Department, Computer Engineering, Government College of Engineering, Yavatmal
who have invested his full effort in guiding the team in achieving the goal for all the timely
support and valuable suggestions during the period of project.
I would like to express our sincere thanks to Dr. V. B. Waghmare, Principal of
Government College of Engineering Yavatmal, for providing the Working facilities in
college.
We are equally thankful to all the staff members of Computer Engineering Department,
Government College of Engineering, Yavatmal for their valuable suggestions. Also, I would
like to thank all of my friends for the continual encouragement and the positive support.
Place: Yavatmal
Date:
ABSTRACT
In today's digital landscape, the demand for innovative and efficient transportation solutions
continues to rise. Traditional ride-booking processes often entail complexities in
infrastructure management and scalability. To address these challenges, this project presents
a serverless web application developed on Amazon Web Services (AWS) that facilitates
unicorn ride requests from the Wild Rydes fleet. Leveraging a suite of AWS services
including Lambda, Cognito, CodeCommit, DynamoDB, Amplify, and API Gateway within
the AWS Free Tier, the application offers users a seamless experience for registering, logging
in, and submitting ride requests via a user-friendly interface.
Through the amalgamation of these cutting-edge technologies and services, the project
endeavors to redefine the landscape of ride-booking experiences, offering users a seamless,
scalable, and cost-effective solution for accessing unicorn rides from the Wild Rydes fleet.
By providing insights into the intricacies of serverless architecture and AWS services, this
project seeks to inspire further innovation in the realm of transportation and beyond.
TABLE OF CONTENTS
Reference
CHAPTER 1: INTRODUCTION
1.1 Introduction
In contemporary society, the evolution of digital technologies has reshaped numerous facets
of daily life, including the realm of transportation. As the demand for streamlined, user-
centric transportation solutions continues to burgeon, traditional ride-booking frameworks
have encountered limitations in terms of scalability, cost-efficiency, and adaptability. To
address these challenges and pioneer a novel approach to ride requests, this project endeavors
to conceptualize, develop, and implement a serverless web application hosted on Amazon
Web Services (AWS). This application serves as a conduit for users to seamlessly request
unicorn rides from the Wild Rydes fleet, employing an array of AWS services such as AWS
Lambda, AWS Cognito, AWS CodeCommit, DynamoDB, AWS Amplify, and AWS API
Gateway.
At its core, the project aims to transcend the conventional paradigms of ride-booking by
harnessing the power of serverless architecture and cloud computing. By eliminating the need
for traditional server provisioning and management, serverless computing empowers
developers to focus on building and deploying application logic without the burden of
infrastructure overhead. AWS Lambda, a cornerstone of serverless computing, enables the
execution of code in response to various triggers, ranging from HTTP requests to database
events. Leveraging Lambda functions, the application orchestrates the seamless dispatching
of nearby unicorns in response to user ride requests.
Furthermore, the project integrates AWS Cognito to provide robust user authentication and
management functionalities. With AWS Cognito, users can securely register, log in, and
manage their accounts, ensuring a personalized and secure experience. AWS CodeCommit
complements the development workflow by offering a secure and scalable version control
system, facilitating collaborative development and ensuring the integrity of the application's
source code.
In terms of data management, the project leverages Amazon DynamoDB, a fully managed
NoSQL database service, to store user data, ride requests, and related information.
DynamoDB's scalability and low-latency access make it an ideal choice for handling dynamic
and rapidly evolving datasets, ensuring optimal performance and reliability. The frontend of
the application is developed using AWS Amplify, a comprehensive set of tools and services
designed to accelerate frontend development and deployment. With Amplify, developers can
easily build and deploy web and mobile applications, leveraging pre-built UI components and
seamless integration with AWS services.
Finally, AWS API Gateway acts as the front door to the application's backend, facilitating the
creation, deployment, and management of RESTful APIs. API Gateway enables secure
communication between the frontend and backend components of the application, offering
features such as request and response transformation, authentication, and monitoring.
One of the primary issues with existing ride-booking systems is their lack of scalability. As
user demand fluctuates, the infrastructure struggles to handle peak loads, resulting in
performance degradation and system failures. This scalability limitation not only affects user
experience but also leads to operational inefficiencies and increased costs.
Moreover, the operational costs associated with maintaining and managing traditional
infrastructure are significant. Over-provisioning resources to handle peak loads results in
wastage during periods of low demand, leading to cost inefficiencies. Additionally, manual
maintenance tasks such as server provisioning and software updates consume valuable time
and resources.
Innovation and flexibility are also lacking in existing systems. Rigid architectures and legacy
technologies hinder the implementation of new features, integration of third-party services,
and experimentation with innovative technologies. As a result, the platform struggles to keep
pace with evolving user needs and market trends.
The problem lies in the inefficiencies, scalability limitations, high operational costs, poor user
experience, security concerns, and lack of innovation and flexibility inherent in traditional
ride-booking systems. Addressing these challenges requires a paradigm shift towards modern,
agile, and scalable solutions that prioritize user experience, cost-effectiveness, and security.
By developing a serverless web application on AWS, this project aims to overcome these
challenges and deliver a more efficient, scalable, cost-effective, and user-friendly platform
for unicorn ride requests.
Our project aims to develop a serverless web application on Amazon Web Services (AWS)
for requesting unicorn rides from the Wild Rydes fleet. Leveraging AWS Lambda, AWS
Cognito, AWS CodeCommit, DynamoDB, AWS Amplify, and AWS API Gateway, our
platform provides an intuitive user interface for ride requests, secure authentication,
collaborative development, scalable data storage, streamlined frontend development, and
secure API management. The concept focuses on delivering a seamless, scalable, and cost-
effective ride-booking experience while prioritizing user security and data integrity.
The scope of the project involves designing and implementing a serverless web application
on AWS for unicorn ride requests. This includes developing frontend components for user
interfaces, integrating AWS services such as Cognito and DynamoDB for authentication and
data storage, implementing backend logic with AWS Lambda functions, ensuring scalability
and fault tolerance, and conducting testing, deployment, and documentation processes. The
scope also encompasses collaboration using AWS CodeCommit, continuous
integration/deployment with AWS Amplify, and knowledge transfer sessions for
stakeholders.
This is currently the core of the web world; it is a language used to makeup web page. It is
the glue that holds everything together. Although HTML was used for the implementation
of the Online Voting System, it is made to handle data and is also portable between
different browsers and platforms with little or no alterations in code.
CSS is designed to enable the separation of content and presentation, including layout, colors,
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, which reduces complexity
and repetition in the structural content; and enable the .CSS file to be cached to improve the
page load speed between the pages that share the file and its formatting.
3. JavaScript
4. AWS Lambda
AWS Lambda is a serverless computing service provided by Amazon Web Services (AWS)
that allows you to run code without provisioning or managing servers. It automatically scales
your application by running code in response to triggers, such as HTTP requests, database
events, or file uploads. Key features and aspects of AWS Lambda include:
- Event-driven computing: Lambda functions are triggered by events, which can include
HTTP requests, changes to data in DynamoDB, uploads to S3, etc.
- Pay-per-use pricing model: You are charged only for the compute time consumed by your
function, with no charges when your code is not running.
- Support for multiple programming languages: You can write Lambda functions in
languages such as Node.js, Python, Java, Go, and more.
- Scalability and fault tolerance: AWS Lambda automatically scales your application by
running multiple instances of your function in response to increased load. It also handles
server and infrastructure maintenance, ensuring high availability and fault tolerance.
5. AWS Cognito
AWS Cognito is a managed authentication service provided by AWS, which allows you to
easily add user sign-up, sign-in, and access control to your web and mobile apps. It provides
features such as user pools and identity pools to manage user identities securely. Key features
of AWS Cognito include:
- User authentication: Cognito enables you to authenticate users using various methods,
including username/password, social identity providers (such as Google or Facebook), and
multi-factor authentication.
- User management: It provides functionalities for user registration, account recovery, and
account linking.
- Identity federation: Cognito integrates with other identity providers like Facebook, Google,
and SAML-based identity providers to allow users to authenticate using existing credentials.
- Security features: Cognito offers features like encryption of data in transit and at rest, as
well as protection against common web attacks such as cross-site scripting (XSS) and cross-
site request forgery (CSRF).
6. AWS CodeCommit
- Git-based repositories: CodeCommit allows you to create and manage Git repositories to
store your source code, configuration files, and other project assets.
- Secure and scalable: It provides built-in encryption for data at rest and in transit, as well as
access control mechanisms to manage user permissions and restrict access to repositories.
- Integration with other AWS services: CodeCommit seamlessly integrates with other AWS
services such as CodeBuild, CodeDeploy, and CodePipeline to facilitate continuous
integration and deployment (CI/CD) workflows.
- Collaborative development: CodeCommit supports branching, merging, and pull requests,
enabling multiple developers to collaborate on the same codebase and review each other's
changes.
7. Amazon DynamoDB
- Security and compliance: It provides features such as encryption at rest and in transit, fine-
grained access control, and integration with AWS Identity and Access Management (IAM)
for secure data storage and access.
8. AWS Amplify
AWS Amplify is a set of tools and services provided by AWS to accelerate the development
of full-stack web and mobile applications. It simplifies the integration of cloud services into
your application, providing a streamlined development experience. Key components and
features of AWS Amplify include:
- Frontend framework: Amplify offers libraries and tools for frontend development in popular
frameworks such as React, Angular, Vue.js, and React Native.
- Backend as a service (BaaS): It provides managed backend services such as authentication,
storage, APIs, and analytics, allowing you to focus on building frontend components.
- GraphQL API: Amplify includes a GraphQL API service that simplifies the creation and
deployment of GraphQL APIs, enabling efficient data fetching and manipulation on the client
side.
- Authentication and authorization: Amplify offers authentication services powered by AWS
Cognito, allowing you to easily add user authentication and authorization to your
applications.
- Hosting and deployment: It provides features for hosting and deploying your applications
on AWS infrastructure, with built-in support for continuous deployment and integration
workflows.
AWS API Gateway is a fully managed service provided by AWS that makes it easy to create,
publish, maintain, monitor, and secure APIs at any scale. It acts as a front door for your
application backend, allowing you to expose HTTP endpoints for communication with
clients. Key features and capabilities of AWS API Gateway include:
- RESTful API creation: API Gateway enables you to define and create RESTful APIs with
support for HTTP methods, request/response mappings, and integration with backend
services.
- Request and response transformation: It provides features for transforming incoming
requests and outgoing responses, such as request validation, parameter mapping, and
response mapping.
- Integration with backend services: API Gateway integrates seamlessly with AWS Lambda,
AWS DynamoDB, AWS Cognito, and other AWS services, allowing you to build serverless
architectures and microservices-based applications.
- Security and authorization: It offers built-in features for authentication and authorization,
including support for API keys, IAM roles and policies, and custom authorizers.
- Monitoring and analytics: API Gateway provides comprehensive monitoring and logging
capabilities, allowing you to track API usage, performance metrics, and error rates in real-
time.
By leveraging these technologies in combination, the project aims to create a robust, scalable,
and efficient serverless web application for users to request unicorn rides from the Wild
Rydes fleet, providing a seamless and delightful user experience.
Government College Of Engineering, YavatmalPage 12
2023-2024 Project On Visual
Transcribe Voice
Chapter 3 : Implementation
We will configure AWS Amplify to host the static resources for your web application with
continuous deployment built in. The Amplify Console provides a git-based workflow for
continuous deployment and hosting of full-stack web apps. In subsequent modules, you will
add dynamic functionality to these pages using JavaScript to call remote RESTful APIs built
with AWS Lambda and Amazon API Gateway.
The architecture for this module is straightforward. All of your static web content including
HTML, CSS, JavaScript, images, and other files will be managed by AWS Amplify Console.
Your end users will then access your site using the public website URL exposed by AWS
Amplify Console. You don't need to run any web servers or use other services to make your
site available.
2: Manage Users
Architecture overview
When users visit your website they will first register a new user account. For the purposes of
this workshop we'll only require them to provide an email address and password to register.
However, you can configure Amazon Cognito to require additional attributes in your own
applications.
After users submit their registration, Amazon Cognito will send a confirmation email with a
verification code to the address they provided. To confirm their account, users will return to
your site and enter their email address and the verification code they received. You can also
confirm user accounts using the Amazon Cognito console with a fake email addresses for
testing.
After users have a confirmed account (either using the email verification process or a manual
confirmation through the console), they will be able to sign in. When users sign in, they enter
their username (or email) and password. A JavaScript function then communicates with
Amazon Cognito, authenticates using the Secure Remote Password protocol (SRP), and
receives back a set of JSON Web Tokens (JWT). The JWTs contain claims about the identity
of the user and will be used in the next module to authenticate against the RESTful API you
build with Amazon API Gateway.
We will use AWS Lambda and Amazon DynamoDB to build a backend process for handling
requests for your web application. The browser application that you deployed in the first
module allows users to request that a unicorn be sent to a location of their choice. To fulfill
those requests, the JavaScript running in the browser will need to invoke a service running in
the cloud.
Architecture overview
You will implement a Lambda function that will be invoked each time a user requests a
unicorn. The function will select a unicorn from the fleet, record the request in a DynamoDB
table, and then respond to the frontend application with details about the unicorn being
dispatched.
The function is invoked from the browser using Amazon API Gateway. You'll implement
that connection in the next module. For this module, you will just test your function in
isolation.
Wewill use Amazon API Gateway to expose the Lambda function you built in the previous
module as a RESTful API. This API will be accessible on the public Internet. It will be
secured using the Amazon Cognito user pool you created in the previous module. Using this
configuration, you will then turn your statically hosted website into a dynamic web
application by adding client-side JavaScript that makes AJAX calls to the exposed APIs.
Architecture overview
The diagram above shows how the API Gateway component you will build in this module
integrates with the existing components you built previously. The grayed out items are pieces
you have already implemented in previous steps.
The static website you deployed in the first module already has a page configured to interact
with the API you will build in this module. The page at /ride.html has a simple map-based
interface for requesting a unicorn ride. After authenticating using the /signin.html page, your
users will be able to select their pickup location by clicking a point on the map and then
requesting a ride by choosing the "Request Unicorn" button in the upper right corner.
5: CODE:-
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Wild Rydes</title>
<script src="js/vendor/modernizr.js"></script>
</head>
<body class="page-home">
<header class="site-header">
<h1 class="title">Wild Rydes</h1>
<nav class="site-nav">
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="unicorns.html">Meet the Unicorns</a></li>
<li><a href="investors.html">Investors & Board of Directors</a></li>
<li><a href="faq.html">FAQ</a></li>
<li><a href="apply.html">Apply</a></li>
</ul>
</nav>
<button type="button" class="btn-menu"><span>Menu</span></button>
<a class="home-button" href="signin.html">Lets Ride!</a>
<a class="home-button2" href="signin.html">Lets Rideee!</a>
</header>
<section class="home-about">
<div class="row column large-9 xlarge-6 xxlarge-4">
<h2 class="section-title">How Does This Work?</h2>
<p class="content">
In today’s fast paced world, you’ve got places you need to be but not enough time in
your jam packed schedule. Wouldn’t it be nice if there were a transportation service that
changed the way you get around daily? Introducing Wild Rydes, an innovative transportation
service that helps people get to their destination faster and hassle-free. Getting started is as
easy as tapping a button in our app.
</p>
</div>
<div class="column">
<div class="home-about-block">
<h3 class="title icon-unicorn">Request A Unicorn</h3>
<p class="content">We can get you there. Simply request a ryde on the app and we'll
connect you with a unicorn immediately.</p>
</div>
</div>
<div class="column">
<div class="home-about-block">
<h3 class="title icon-price">Pick A Price</h3>
<p class="content">Pick the valuation you're willing to pay and your ryde is set up.
The only surge is the acceleration you get when taking off.</p>
</div>
</div>
<div class="column">
<div class="home-about-block">
<h3 class="title icon-success">Ride Off To Success!</h3>
<p class="content">After matching with your unicorn and agreeing to its terms, you’ll
be all set. Your unicorn will arrive shortly to pick you up.</p>
</div>
</div>
</div>
</section>
<section class="home-story">
<div class="row column large-9 xlarge-6 xxlarge-4">
<h2 class="section-title">Our Story</h2>
<p class="content">
Wild Rydes was started by a former hedge fund analyst and a software developer. The
two long-time friends happened upon the Wild Rydes idea after attending a silent yoga retreat
in Nevada. After gazing upon the majestic herds of unicorns prancing across a surreal Nevada
sunset, they witnessed firsthand the poverty and unemployment endemic to that once proud
race. Whether it was modern society’s reliance on science over magic or not, we’ll never
know the cause of their downfall and fade to obscurity. Moved by empathy, romance, and
free enterprise, they saw an opportunity to marry society’s demand for faster, more flexible
transportation to underutilized beasts of labor through an on-demand market making
transportation app. Using the founders’ respective expertise in animal husbandry and
software engineering, Wild Rydes was formed and has since raised untold amounts of venture
capital. Today, Wild Rydes has thousands of unicorns in its network fulfilling hundreds of
Government College Of Engineering, YavatmalPage 18
2023-2024 Project On Visual
Transcribe Voice
<section class="home-sign-up">
<div class="row column">
<img class="icon-w" src="images/wr-home-W.png">
<form onsubmit="javascript:void(0);">
<input type="email" placeholder="Enter your email address">
<button type="button">Submit</button>
</form>
<p class="content">Wild Rydes is coming soon! Enter your email to enter the limited
private beta</p>
<div class="social">
<a class="icon-fb" href="">Facebook</a>
<a class="icon-tw" href="">Twitter</a>
<a class="icon-ig" href="">Instagram</a>
</div>
</div>
</section>
<footer class="site-footer">
<div class="row column">
<nav class="footer-nav">
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="unicorns.html">Meet the Unicorns</a></li>
<li><a href="investors.html">Investors & Board of Directors</a></li>
<li><a href="faq.html">FAQ</a></li>
<li><a href="apply.html">Apply</a></li>
</ul>
</nav>
</div>
4.1 Advantages
2) Cost-effectiveness: The use of AWS Free Tier services and serverless computing helps
minimize operational costs. With serverless architecture, you only pay for the resources
consumed, eliminating the need for upfront infrastructure investment and reducing
wastage during periods of low demand.
4) Security:AWS offers robust security features across its services, ensuring data
encryption, access control, and compliance with industry standard. Services like AWS
provide secure user authentication and management, enhancing overall application
security.
4.2 Disadvantages
1. Vendor Lock-in: Over-reliance on AWS services may lead to vendor lock-in, limiting
flexibility to migrate to alternative platforms in the future. Dependence on proprietary
technologies and services can pose challenges in terms of interoperability and vendor
dependencies.
2. Cold Start Latency: AWS Lambda functions may experience latency during cold starts,
impacting response times for users. Cold starts occur when a function is invoked for the
first time or after being idle for a certain period, resulting in increased latency before the
function becomes responsive.
3. Limited Customization: Some AWS services may have limitations in terms of
customization and flexibility, constraining certain aspects of application development.
Developers may encounter limitations in terms of configuration options, feature
availability, and integration capabilities, requiring workarounds or compromises in
functionality.
Throughout the project, we have addressed various challenges such as scalability limitations,
high operational costs, poor user experience, and security concerns. By utilizing AWS
Lambda, AWS Cognito, DynamoDB, Amplify, and API Gateway, we have overcome these
challenges and delivered a robust solution that meets the needs of modern users.
Moving forward, the success of this project opens up new opportunities for future
enhancements and expansions. Further optimizations can be made to improve performance,
reduce latency, and enhance user experience. Additionally, new features and functionalities
can be added to enrich the platform and cater to evolving user needs.
Future Scope:-
1. Enhanced User Experience: Future iterations of the application can focus on improving the
user interface, adding interactive features, and optimizing user workflows to enhance overall
user experience.
3. Advanced Analytics and Insights: Implementing analytics and monitoring tools can
provide valuable insights into user behavior, ride demand patterns, and application
performance, enabling data-driven decision-making and continuous improvement.
In summary, the project lays a strong foundation for future growth and innovation in the
realm of transportation technology. By embracing emerging technologies, addressing user
needs, and continuously iterating on the platform, we can pave the way for a more efficient,
convenient, and sustainable transportation ecosystem.
Reference