SlideShare a Scribd company logo
1 of 26
Download to read offline
Cloud Computing
(COSC 2626)
ProCarRental – Cloud Based Vehicle Rental Application
Assignment 02
Student ID Student Name
S3735195 Hewayalage Vishva Lahiru Kantha Abeyrathne
S3704769 Kodithuwakku Arachchige Iresh Udara Kaushalya
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
Contents
1. Signed Contribution Agreement .......................................................................................2
2. Links ..................................................................................................................................2
3. Summary ...........................................................................................................................3
4. Introduction ......................................................................................................................4
5. Related work .....................................................................................................................6
Thrifty...................................................................................................................................6
Kayak ....................................................................................................................................6
6. Software Design/Architecture...........................................................................................7
Database Schema .................................................................................................................7
Software Architecture Diagram............................................................................................7
7. Implementation ................................................................................................................8
7.1 EC2..................................................................................................................................8
7.2 RDS .................................................................................................................................8
7.3 QuickSght........................................................................................................................9
7.4 Elastic Beanstalk ...........................................................................................................10
7.5 S3..................................................................................................................................11
7.6 Simple Email Service (SES)............................................................................................11
7.7 CloudFront....................................................................................................................12
7.8 Route 53 .......................................................................................................................12
7.9 Recognition...................................................................................................................12
8. User Manual....................................................................................................................13
9. References ......................................................................................................................24
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
1. Signed Contribution Agreement
ProCarRental – Cloud Based Vehicle Rental Application
Student Name: Hewayalage Vishva
Lahiru Kantha Abeyrathne
Student Name: Kodithuwakku Arachchige
Iresh Udara Kaushalya
Student ID: S3735195 Student ID: S3704769
Contributions:
1. Front End Development
2. Use of AWS Services
Contributions:
1. Front End Development
2. Use of AWS Services
Contribution Percentage: 50% Contribution Percentage: 50%
By signing below, I certify all
information is true and correct to
the best of my knowledge.
Signature:
Date: 24/05/2020
By signing below, I certify all information is
true and correct to the best of my
knowledge.
Signature:
Date: 24/05/2020
2. Links
Direct link to the hosted web application - http://theprocarrent.com/
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
3. Summary
A Vehicle Renting System called ProCarRentals has been designed and developed using
ASP.NET programming language to fulfil the requirement of Cloud Computing
Assignment 02. Amazon Web Services (AWS) will be use as the core cloud platform and
following services of AWS will be in use to function the application.
1. Elastic Compute Cloud (EC2) - As a Virtual Server.
2. Elastic Beanstalk – for deployment of the application.
3. Simple Service Storage (S3) – To store data such as images in the application.
4. Relational Database Service (RDS) – As the main database for storing and retrieval of
data.
5. Simple Email Service (SES) – Sending emails to customers.
6. CloudFront – To store static content to achieve low latency, high transfer rate.
7. Route 53 – As a DNA server to handle direct traffic to web server.
8. Rekognition – To recognize the total amount of an invoice with deep learning
analysis.
9. QuickSight - As a BI tool to create Dashboard.
Our main goals of the project can be stated as follow:
• Selection of appropriate cloud tools and technologies in order to formulate the
project completion with respect to the initial project proposal.
• Maintain a distributed model that contains a distributed architecture with
separate processing and storage components.
• Create a front-end application (web pages) which is user friendly for clients to
interact with.
• Achieve fast data processing along with maximizing task efficiency and
completion.
.
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
4. Introduction
Most of the small companies still do not conduct their business on a web platform and
do not have a system or a website to manage their daily business operations better. One
of the major reasons for that is the cost associated with such a system. It is somewhat
expensive to build an e-commerce website and requires more amount to perform the
maintenance. However, it is more than effective even for a small business to have a
system of their own to handle and control their business operations instead of manual
paper work. Therefore, a system that can be accessible only by company will save
amount cost for a small-scale company and has the flexibility and control at least from
their side. But, with the time, as business grow, they can open their application also for
the clients to make their lives easier when dealing with reservations.
RentMe is a web-based Vehicle Rental System for Car Rental companies to keep track of
their vehicle rental and maintenance information along with a summary of incomes and
expenses related to the company. Administrator of the application has the capability of
adding new vehicles as well as registering new customers to the system with necessary
details. Application allows the administrator to perform vehicle reservations with
registered customers, vehicle returns as well as maintenance of the vehicles. There is a
feature in the system to effectively analyse the sales of the company with the use of a
dashboard representation.
This application is developed targeting small scale car rental companies with a
considerable number of customers, rather than medium and large-scale companies with
tons of customers. This application provides the necessary functionalities to manage
such car rental companies with their main operations. With the architecture of this
application, it can be easily extended once the company decides it to be. For example,
when the customer base increases, company tends to get more requests and it would be
difficult for administrators to handle all those simultaneously. In that case, current
application can be expanded for customers in order to make their own bookings by
performing several functionalities in the application.
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
This application is a real-time application in which designing has been done to perform a
task within a minimum time frame. For this particular use case, which is an
administrator-based application, there will not be many of simultaneous user requests
such a client-side application. However, with the existing architecture or with the use of
auto-scaling groups and load balancing procedure, this application will respond within a
short period of time when the application is expanded to customers.
Use of AWS QuickSight can be considered as an improvement compared to most of the
similar applications. Those dashboards can be shared with the company owner and also
can send reports according to desired frequency level such as weekly or monthly.
Amazon Rekognition which is a machine learning based AWS component has been
utilized to automate the process of reading and manually adding an invoice amount of
the vehicle maintenance to the system.
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
5. Related work
Thrifty
Thrifty company has a web application which is quite similar to this particular
application despite being accessible for the clients. However, Thrifty is a location
based rental application as they provide the service to the most part of the country.
Figure 5.1 Icon of Thrifty Web Application
Kayak
Kayak web application also offers functionalities that are similar to ProCarRentals
application in some ways. Kayak also runs their queries depending on the location of
the customer which is not a functionality in ProCarRentals.
Figure 5.2: Icon of Kayak Web Application
Apart from mentioned applications, many applications with similar functionalities
can be found. But when it comes to comparison, it is somewhat limited as developed
application is mainly focused on administrators while all the other applications are
open for customers to make their own reservations.
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
6. Software Design/Architecture
Database Schema
Admin (user_id, firstname, lastname, password, phone_number)
Customer (customer_id, firstname, lastname, date_of_birth, address,
phone_number, email)
Vehicle (vehicle_id, year, make, model, num_of_seats, vehicle_type, status,
last_maintenance_date, image)
Rental (rental_id, *vehicle_id, *customer_id, rent_date, return_date, late_fee, total)
Maintenance (maintenance_id, *vehicle_id, returned_date, total_amount)
Software Architecture Diagram
Figure 6.1: AWS Architecture Diagram of ProCarRentals
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
7. Implementation
7.1 EC2
Launch an instance
Following AWS tutorial can be followed to fulfil this task.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html
Connect to Linux Instance
Following AWS tutorial will take you to connect to your created Linux instance using
SSH.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html
7.2 RDS
Creating a DB Instance
1. As the first step, sign in to your AWS Management Console and move to RDS.
Following link will take you to RDS.
https://console.aws.amazon.com/rds/
2. Under Navigation pane, choose Databases and select Create database.
3. Then Select Standard Create under Choose a database creation method.
4. In Engine options, select MySQL as the engine.
5. Make sure you tick off Free Tier under Templates.
6. In Settings, at DB Instance identifier, give a name for the instance according to your
reference (This name has to be unique across all DB instance in your account).
7. At Credential Settings, provide Master username and Master password.
8. Allow all other settings to be default.
9. Then select Create database option. Your instance will be created.
10. Go to Databases and under RDS and select the created instance.
Next, we need to create an inbound rule in the created instance in order to connect
to DB instance.
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
11. In the page, move to Connectivity and security, -> Security -> VPC security groups
and select a security group.
12. At the Actions tab on the right-hand corner, select Edit inbound rules.
13. In the next page select Add rule.
14. Then select MYSQL/Aurora as Type, TCP as Protocol, 3306 as Port range and provide
source as your preference to database access.
15. Finally, click on Save rules.
Connecting to DB Instance
Follow following tutorial guide to connect created DB instance running MySQL database
engine.
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance.
html
7.3 QuickSght
Creating a QuickSight account
1. At first, sign in to your AWS Management Console and go to QuickSight under
Analytics.
2. At the first instance, you have to register for a QuickSight account and select Sign up
for QuickSight.
3. Then select Standard or Enterprise account according your preference.
4. In the next page, select your preferred region and provide QuickSight account name.
5. If you wish, you can provide an email address for get important notifications, or else
keep default settings and select finish.
Creating a new analysis
1. When you log in to QuickSight account, select New analysis button in the top left
corner.
2. In the next page, choose New data set icon.
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
3. Under, From New Data Sources, select MySQL and a separate form will be
loaded.
4. Fill the required fields according to the connection that you created with DB
instance and MySQL workbench.
5. Then select Create data source, connection will be validated, and you can create
analysis using the tables in according to the database selection.
7.4 Elastic Beanstalk
Creating and deploying .NET applications on Elastic Beanstalk
1. As the first step, sign in to your AWS Management Console and go to Elastic
Beanstalk under Compute.
2. Then select Create New Application on the top right-hand corner.
3. Tick off Web Server Environment under Select environment tier.
4. In the next page, provide following details.
5. Give an Environment name according to your preference.
6. Then provide a Domain and check availability and provide a Description optionally.
7. Under Platform, .NET on Windows Server and choose a platform branch according
to your preference.
8. Then choose Sample application under Application code.
9. Select under configure more options
10. Select Edit under Capacity.
11. Select Load balanced as Environment type and choose t2.micro as Instance type and
click save.
12. Select Edit under Database.
13. Provide Username, password and make sure you select mysql as Engine and click
save.
14. Then in the main window select Create environment.
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
Following link contains a video demonstration for the .NET application deployment in
Elastic Beanstalk (Refer video from 14:00).
https://www.youtube.com/watch?v=pihVDe0On0Y
7.5 S3
Creating a S3 Bucket Uploading a file to an S3 Bucket using the AWS SDK for .NET
(high-level API)
1. At first, sign in to your AWS Management Console and move to S3 under
Storage.
2. Under Bucket name, provide a name according to your preference.
3. Select Region.
4. Keep default settings for Bucket Settings for Block Public Access.
5. Select Create Bucket.
Following link contains a video demonstration for Uploading a file to an S3 Bucket
using the AWS SDK for .NET.
https://www.youtube.com/watch?v=ynhgDYVQTEI
7.6 Simple Email Service (SES)
Integration of Amazon Simple Email Service into your .NET Application
1. At first, sign in to your AWS Management Console and move to SES under
Customer Engagement.
2. Under Email Addresses, select Verify a New Email Address and provide an email
address.
3. You will receive an email and click on the link for activation process.
4. In SMTP Settings, select Create My SMTP Credentials.
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
5. Then follow the video in the link below to use SES to send and email from your
application (Refer Video from 03:12).
https://www.youtube.com/watch?v=vLcUz11rzT8
7.7 CloudFront
Configuring CloudFront Distribution
The following AWS tutorial can be accessed to configure a CloudFront distribution.
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GettingSt
arted.SimpleDistribution.html
CloudFront can be used with ASP.Net as follow.
https://aws.amazon.com/blogs/developer/using-amazon-cloudfront-with-asp-net-
apps/
7.8 Route 53
The following AWS tutorial can be used to getting started with Route53 and perform
necessary activities.
https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html
The tutorial below shows the path to Route 53 with AWS SDK for .NET
https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/route53-apis-
intro.html
7.9 Recognition
The following AWS Tutorial with .NET can be used as a reference material for
detecting a text from an image.
https://docs.aws.amazon.com/rekognition/latest/dg/text-detecting-text-
procedure.html
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
8. User Manual
User will be prompted to login page once the application is being opened. Then user
has to provide username and password credentials to login to the system.
Figure 8.1: Login Page of ProCarRentals
For new users, please click New User button to proceed for the registration. After
filling required fields, the user will be redirected to login page.
Figure 8.2: User Registration page of ProCarRentals
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
Main page of the application is shown as below where user will find all the vehicles
in the system while scrolling down.
Figure 8.3: Home page of ProCarRentals
User will have the ability to filter vehicles according to their preference using filters
shown in the following image.
Figure 8.4: Vehicle Filtration Component of ProCarRentals
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
User can filter the vehicles based on its Make, Type, Year and Status. Status includes
all the scenarios in the use case such as Available, Rented and Under Maintenance.
Rented vehicles will be shown under red colour while available and under
maintenance vehicle will be displayed with green and yellow colours respectively.
Apart from that user can search for vehicle using Rego No without going through all
the vehicles top to botom even with the filters.
Figure 8.5: Side Bar of ProCarRentals
User will find Add New Car link and Add New Customer Link In the top left-hand
corner. Both the links will take the user to interfaces where a new vehicle as well as
a new customer can be inserted to the application separately.
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
User can add all the necessary details for the customer using the interface similar to
following image.
Figure 8.6: Add New Customer page of ProCarRentals
A new vehicle can be inserted in to the system with the use of the interface which is
identical to the image below. A separate image of the vehicle can be uploaded to the
system along with other required details.
Figure 8.7: Add New Car page of ProCarRentals
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
Following image shows the interface when a user a select a particular vehicle from
the set of vehicles in the home page. All the necessary details along with the image
will be displayed according to the selected vehicle.
Figure 8.8: Vehicle Details page of ProCarRentals
Several operations such as Renting, Returning, Add to Maintenance and Returning
from Maintenance can be performed for the chosen vehicle. When the vehicle is in
Available status, Customer Return button and Maintenance Return button will be
locked.
When the user selects Rent this Car option, following interface will be generated and
Rent Date, Return Date have to be provided along with the Customer. Then an email
will be sent to the customer email address specifying all the relevant details of the
reservation.
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
Figure 8.9: Rent the Car Window of ProCarRentals
Once the car is being rented, it will be in Rented status, Only Customer Return
button will be active under vehicle details page. When the user selects Customer
Return option in an already rented car, following window will pop up with the total
for the rental. Then User has to choose Return the Car option.
Figure 8.10: Return the Car Window of ProCarRentals
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
For every month, depending on the rental frequencies, vehicles have to be added to
maintenance. When a vehicle in the Available status, user can it to a maintenance by
clicking Add to Maintenance option in the relevant vehicle details page.
Once the vehicle is added to maintenance, it is in Under Maintenance status and
only Maintenance Return option can be chosen from the operations related to that
particular vehicle. When the user selects Maintenance Return, it will generate
following window where an invoice of the maintenance has to be uploaded. After
uploading the image, click Return from Maintenance button and vehicle will be
returned back and cost for the maintenance will be identified and sent to the
database.
Figure 8.11: Maintenance Return Window of ProCarRentals
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
User also has the capability of managing Vehicles and Customers that are registered
with the system. For that, user can select List all vehicles under Vehicles tab and List
all customers under Customers tab in order to perform delete operation and update
relevant details.
Figure 8.12: Expanded Side Bar of ProCarRentals
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
For instance, one user selects List all vehicles, the following image will be displayed.
Then user can select the required vehicle by clicking on Select this Car.
Figure 8.13: Vehicle Management page of ProCarRentals
When Select this Car button is pressed, following interface will appear to perform
update and delete operation for the selected vehicle.
Figure 8.14: Vehicle Details Management page of ProCarRentals
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
In the menu bar of the home page, user will find two links such as Revenue and
Expenses. Revenue will take user to a QuickSight Dashboard which contains several
data visualisations related to revenue generation of the company. Similarly,
Expenses link contains a dashboard with several data visualisation related to
expenses of the company. In this scenario, user has to be given the permission to
view dashboards, and user has to be logged in to QuickSight account as well.
Image below shows the dashboard for Revenue and user can play with the
visualisations using Customer and Vehicle ID parameters.
Figure 8.15: Revenue Analysis Dashboard of ProCarRentals
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
Similarly, user can select Expenses link and play with the visualisation using Vehicle
ID. Following image shows the dashboard for expenses.
Figure 8.16: Expense Analysis Dashboard of ProCarRentals
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
9. References
[1] "Getting Started with a Simple CloudFront Distribution - Amazon CloudFront",
Docs.aws.amazon.com, 2020. [Online]. Available:
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GettingStarte
d.SimpleDistribution.html. [Accessed: 16- May- 2020].
[2]"Connecting to your Linux instance using SSH - Amazon Elastic Compute Cloud",
Docs.aws.amazon.com, 2020. [Online]. Available:
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html
. [Accessed: 10- May- 2020].
[3]"Step 1: Create an RDS DB Instance - Amazon Relational Database Service",
Docs.aws.amazon.com, 2020. [Online]. Available:
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServe
rDB.CreateDBInstance.html. [Accessed: 11- May- 2020].
[4]"Connecting to a DB Instance Running the MySQL Database Engine - Amazon
Relational Database Service", Docs.aws.amazon.com, 2020. [Online]. Available:
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance.
html. [Accessed: 11- May- 2020].
[5]"Creating and deploying .NET applications on Elastic Beanstalk - AWS Elastic
Beanstalk", Docs.aws.amazon.com, 2020. [Online]. Available:
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_NET.html.
[Accessed: 10- May- 2020].
[6]"Upload a file to an S3 Bucket using the AWS SDK for .NET (high-level API) - Amazon
Simple Storage Service", Docs.aws.amazon.com, 2020. [Online]. Available:
https://docs.aws.amazon.com/AmazonS3/latest/dev/HLuploadFileDotNet.html.
[Accessed: 12- May- 2020].
Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769)
[7]"Send an Email Using the AWS SDK for .NET - Amazon Simple Email Service",
Docs.aws.amazon.com, 2020. [Online]. Available:
https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-using-sdk-net.html.
[Accessed: 14- May- 2020].
[8]"Getting Started with a Simple CloudFront Distribution - Amazon CloudFront",
Docs.aws.amazon.com, 2020. [Online]. Available:
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GettingStarte
d.SimpleDistribution.html. [Accessed: 16- May- 2020].
[9]"Using Amazon CloudFront with ASP.NET Apps | Amazon Web Services", Amazon
Web Services, 2020. [Online]. Available:
https://aws.amazon.com/blogs/developer/using-amazon-cloudfront-with-asp-net-
apps/. [Accessed: 16- May- 2020].
[10]"Getting started with Amazon Route 53 - Amazon Route 53", Docs.aws.amazon.com,
2020. [Online]. Available:
https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html.
[Accessed: 17- May- 2020].
[11]"Amazon Route 53 Programming with the AWS SDK for .NET - AWS SDK for .NET",
Docs.aws.amazon.com, 2020. [Online]. Available: https://docs.aws.amazon.com/sdk-for-
net/v2/developer-guide/route53-apis-intro.html. [Accessed: 17- May- 2020].
[12]"Detecting Text in an Image - Amazon Rekognition", Docs.aws.amazon.com, 2020.
[Online]. Available: https://docs.aws.amazon.com/rekognition/latest/dg/text-detecting-
text-procedure.html. [Accessed: 22- May- 2020].

More Related Content

Similar to Cloud Based Vehicle Rental Application

THE EFFECT OF THE RESOURCE CONSUMPTION CHARACTERISTICS OF CLOUD APPLICATIONS ...
THE EFFECT OF THE RESOURCE CONSUMPTION CHARACTERISTICS OF CLOUD APPLICATIONS ...THE EFFECT OF THE RESOURCE CONSUMPTION CHARACTERISTICS OF CLOUD APPLICATIONS ...
THE EFFECT OF THE RESOURCE CONSUMPTION CHARACTERISTICS OF CLOUD APPLICATIONS ...
ijccsa
 
Dynamic Service Level Agreement Verification in Cloud Computing
Dynamic Service Level Agreement Verification in Cloud Computing Dynamic Service Level Agreement Verification in Cloud Computing
Dynamic Service Level Agreement Verification in Cloud Computing
IJCSIS Research Publications
 

Similar to Cloud Based Vehicle Rental Application (20)

THE EFFECT OF THE RESOURCE CONSUMPTION CHARACTERISTICS OF CLOUD APPLICATIONS ...
THE EFFECT OF THE RESOURCE CONSUMPTION CHARACTERISTICS OF CLOUD APPLICATIONS ...THE EFFECT OF THE RESOURCE CONSUMPTION CHARACTERISTICS OF CLOUD APPLICATIONS ...
THE EFFECT OF THE RESOURCE CONSUMPTION CHARACTERISTICS OF CLOUD APPLICATIONS ...
 
Real time service oriented cloud computing
Real time service oriented cloud computingReal time service oriented cloud computing
Real time service oriented cloud computing
 
IRJET- Cloud Based Warehouse Management Firm
IRJET- Cloud Based Warehouse Management FirmIRJET- Cloud Based Warehouse Management Firm
IRJET- Cloud Based Warehouse Management Firm
 
Getting More from SCCM
Getting More from SCCMGetting More from SCCM
Getting More from SCCM
 
IRJET - Application Development Approach to Transform Traditional Web Applica...
IRJET - Application Development Approach to Transform Traditional Web Applica...IRJET - Application Development Approach to Transform Traditional Web Applica...
IRJET - Application Development Approach to Transform Traditional Web Applica...
 
Software as a Service (SaaS): Custom Acquisition Strategies - LabGroup.com.au
Software as a Service (SaaS): Custom Acquisition Strategies - LabGroup.com.auSoftware as a Service (SaaS): Custom Acquisition Strategies - LabGroup.com.au
Software as a Service (SaaS): Custom Acquisition Strategies - LabGroup.com.au
 
Web Services Based Information Retrieval Agent System for Cloud Computing
Web Services Based Information Retrieval Agent System for Cloud ComputingWeb Services Based Information Retrieval Agent System for Cloud Computing
Web Services Based Information Retrieval Agent System for Cloud Computing
 
Dynamic Service Level Agreement Verification in Cloud Computing
Dynamic Service Level Agreement Verification in Cloud Computing Dynamic Service Level Agreement Verification in Cloud Computing
Dynamic Service Level Agreement Verification in Cloud Computing
 
A FRAMEWORK FOR SOFTWARE-AS-A-SERVICE SELECTION AND PROVISIONING
A FRAMEWORK FOR SOFTWARE-AS-A-SERVICE SELECTION AND PROVISIONINGA FRAMEWORK FOR SOFTWARE-AS-A-SERVICE SELECTION AND PROVISIONING
A FRAMEWORK FOR SOFTWARE-AS-A-SERVICE SELECTION AND PROVISIONING
 
VEHICLE SERVICE MANAGEMENT SYSTEM USING WEB APPLICATION.pptx
VEHICLE SERVICE MANAGEMENT SYSTEM USING WEB APPLICATION.pptxVEHICLE SERVICE MANAGEMENT SYSTEM USING WEB APPLICATION.pptx
VEHICLE SERVICE MANAGEMENT SYSTEM USING WEB APPLICATION.pptx
 
Car Rental System
Car Rental SystemCar Rental System
Car Rental System
 
A survey on various resource allocation policies in cloud computing environment
A survey on various resource allocation policies in cloud computing environmentA survey on various resource allocation policies in cloud computing environment
A survey on various resource allocation policies in cloud computing environment
 
A survey on various resource allocation policies in cloud computing environment
A survey on various resource allocation policies in cloud computing environmentA survey on various resource allocation policies in cloud computing environment
A survey on various resource allocation policies in cloud computing environment
 
International Journal of Computer Science, Engineering and Information Techno...
International Journal of Computer Science, Engineering and Information Techno...International Journal of Computer Science, Engineering and Information Techno...
International Journal of Computer Science, Engineering and Information Techno...
 
CONFIGURATION INERPSAAS MULTI-TENANCY
CONFIGURATION INERPSAAS MULTI-TENANCYCONFIGURATION INERPSAAS MULTI-TENANCY
CONFIGURATION INERPSAAS MULTI-TENANCY
 
Configuration inerpsaas multi tenancy
Configuration inerpsaas multi tenancyConfiguration inerpsaas multi tenancy
Configuration inerpsaas multi tenancy
 
How to Build a Scalable Web Application for Your Project
How to Build a Scalable Web Application for Your ProjectHow to Build a Scalable Web Application for Your Project
How to Build a Scalable Web Application for Your Project
 
Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)
 
Slide share innovation of cloud accounting prospects and challenges
Slide share innovation of cloud accounting prospects and challengesSlide share innovation of cloud accounting prospects and challenges
Slide share innovation of cloud accounting prospects and challenges
 
Part 2
Part 2Part 2
Part 2
 

Recently uploaded

edited gordis ebook sixth edition david d.pdf
edited gordis ebook sixth edition david d.pdfedited gordis ebook sixth edition david d.pdf
edited gordis ebook sixth edition david d.pdf
great91
 
如何办理(UPenn毕业证书)宾夕法尼亚大学毕业证成绩单本科硕士学位证留信学历认证
如何办理(UPenn毕业证书)宾夕法尼亚大学毕业证成绩单本科硕士学位证留信学历认证如何办理(UPenn毕业证书)宾夕法尼亚大学毕业证成绩单本科硕士学位证留信学历认证
如何办理(UPenn毕业证书)宾夕法尼亚大学毕业证成绩单本科硕士学位证留信学历认证
acoha1
 
Abortion pills in Riyadh Saudi Arabia (+966572737505 buy cytotec
Abortion pills in Riyadh Saudi Arabia (+966572737505 buy cytotecAbortion pills in Riyadh Saudi Arabia (+966572737505 buy cytotec
Abortion pills in Riyadh Saudi Arabia (+966572737505 buy cytotec
Abortion pills in Riyadh +966572737505 get cytotec
 
如何办理(UCLA毕业证书)加州大学洛杉矶分校毕业证成绩单学位证留信学历认证原件一样
如何办理(UCLA毕业证书)加州大学洛杉矶分校毕业证成绩单学位证留信学历认证原件一样如何办理(UCLA毕业证书)加州大学洛杉矶分校毕业证成绩单学位证留信学历认证原件一样
如何办理(UCLA毕业证书)加州大学洛杉矶分校毕业证成绩单学位证留信学历认证原件一样
jk0tkvfv
 
Displacement, Velocity, Acceleration, and Second Derivatives
Displacement, Velocity, Acceleration, and Second DerivativesDisplacement, Velocity, Acceleration, and Second Derivatives
Displacement, Velocity, Acceleration, and Second Derivatives
23050636
 
1:1原版定制伦敦政治经济学院毕业证(LSE毕业证)成绩单学位证书留信学历认证
1:1原版定制伦敦政治经济学院毕业证(LSE毕业证)成绩单学位证书留信学历认证1:1原版定制伦敦政治经济学院毕业证(LSE毕业证)成绩单学位证书留信学历认证
1:1原版定制伦敦政治经济学院毕业证(LSE毕业证)成绩单学位证书留信学历认证
dq9vz1isj
 
如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一
如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一
如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一
fztigerwe
 
obat aborsi Bontang wa 081336238223 jual obat aborsi cytotec asli di Bontang6...
obat aborsi Bontang wa 081336238223 jual obat aborsi cytotec asli di Bontang6...obat aborsi Bontang wa 081336238223 jual obat aborsi cytotec asli di Bontang6...
obat aborsi Bontang wa 081336238223 jual obat aborsi cytotec asli di Bontang6...
yulianti213969
 
obat aborsi Tarakan wa 081336238223 jual obat aborsi cytotec asli di Tarakan9...
obat aborsi Tarakan wa 081336238223 jual obat aborsi cytotec asli di Tarakan9...obat aborsi Tarakan wa 081336238223 jual obat aborsi cytotec asli di Tarakan9...
obat aborsi Tarakan wa 081336238223 jual obat aborsi cytotec asli di Tarakan9...
yulianti213969
 
如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证
如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证
如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证
zifhagzkk
 
如何办理英国卡迪夫大学毕业证(Cardiff毕业证书)成绩单留信学历认证
如何办理英国卡迪夫大学毕业证(Cardiff毕业证书)成绩单留信学历认证如何办理英国卡迪夫大学毕业证(Cardiff毕业证书)成绩单留信学历认证
如何办理英国卡迪夫大学毕业证(Cardiff毕业证书)成绩单留信学历认证
ju0dztxtn
 

Recently uploaded (20)

edited gordis ebook sixth edition david d.pdf
edited gordis ebook sixth edition david d.pdfedited gordis ebook sixth edition david d.pdf
edited gordis ebook sixth edition david d.pdf
 
SCI8-Q4-MOD11.pdfwrwujrrjfaajerjrajrrarj
SCI8-Q4-MOD11.pdfwrwujrrjfaajerjrajrrarjSCI8-Q4-MOD11.pdfwrwujrrjfaajerjrajrrarj
SCI8-Q4-MOD11.pdfwrwujrrjfaajerjrajrrarj
 
如何办理(UPenn毕业证书)宾夕法尼亚大学毕业证成绩单本科硕士学位证留信学历认证
如何办理(UPenn毕业证书)宾夕法尼亚大学毕业证成绩单本科硕士学位证留信学历认证如何办理(UPenn毕业证书)宾夕法尼亚大学毕业证成绩单本科硕士学位证留信学历认证
如何办理(UPenn毕业证书)宾夕法尼亚大学毕业证成绩单本科硕士学位证留信学历认证
 
Seven tools of quality control.slideshare
Seven tools of quality control.slideshareSeven tools of quality control.slideshare
Seven tools of quality control.slideshare
 
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
 
Abortion pills in Riyadh Saudi Arabia (+966572737505 buy cytotec
Abortion pills in Riyadh Saudi Arabia (+966572737505 buy cytotecAbortion pills in Riyadh Saudi Arabia (+966572737505 buy cytotec
Abortion pills in Riyadh Saudi Arabia (+966572737505 buy cytotec
 
如何办理(UCLA毕业证书)加州大学洛杉矶分校毕业证成绩单学位证留信学历认证原件一样
如何办理(UCLA毕业证书)加州大学洛杉矶分校毕业证成绩单学位证留信学历认证原件一样如何办理(UCLA毕业证书)加州大学洛杉矶分校毕业证成绩单学位证留信学历认证原件一样
如何办理(UCLA毕业证书)加州大学洛杉矶分校毕业证成绩单学位证留信学历认证原件一样
 
Predictive Precipitation: Advanced Rain Forecasting Techniques
Predictive Precipitation: Advanced Rain Forecasting TechniquesPredictive Precipitation: Advanced Rain Forecasting Techniques
Predictive Precipitation: Advanced Rain Forecasting Techniques
 
Displacement, Velocity, Acceleration, and Second Derivatives
Displacement, Velocity, Acceleration, and Second DerivativesDisplacement, Velocity, Acceleration, and Second Derivatives
Displacement, Velocity, Acceleration, and Second Derivatives
 
1:1原版定制伦敦政治经济学院毕业证(LSE毕业证)成绩单学位证书留信学历认证
1:1原版定制伦敦政治经济学院毕业证(LSE毕业证)成绩单学位证书留信学历认证1:1原版定制伦敦政治经济学院毕业证(LSE毕业证)成绩单学位证书留信学历认证
1:1原版定制伦敦政治经济学院毕业证(LSE毕业证)成绩单学位证书留信学历认证
 
如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一
如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一
如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一
 
obat aborsi Bontang wa 081336238223 jual obat aborsi cytotec asli di Bontang6...
obat aborsi Bontang wa 081336238223 jual obat aborsi cytotec asli di Bontang6...obat aborsi Bontang wa 081336238223 jual obat aborsi cytotec asli di Bontang6...
obat aborsi Bontang wa 081336238223 jual obat aborsi cytotec asli di Bontang6...
 
What is Insertion Sort. Its basic information
What is Insertion Sort. Its basic informationWhat is Insertion Sort. Its basic information
What is Insertion Sort. Its basic information
 
Statistics Informed Decisions Using Data 5th edition by Michael Sullivan solu...
Statistics Informed Decisions Using Data 5th edition by Michael Sullivan solu...Statistics Informed Decisions Using Data 5th edition by Michael Sullivan solu...
Statistics Informed Decisions Using Data 5th edition by Michael Sullivan solu...
 
obat aborsi Tarakan wa 081336238223 jual obat aborsi cytotec asli di Tarakan9...
obat aborsi Tarakan wa 081336238223 jual obat aborsi cytotec asli di Tarakan9...obat aborsi Tarakan wa 081336238223 jual obat aborsi cytotec asli di Tarakan9...
obat aborsi Tarakan wa 081336238223 jual obat aborsi cytotec asli di Tarakan9...
 
如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证
如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证
如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证
 
如何办理英国卡迪夫大学毕业证(Cardiff毕业证书)成绩单留信学历认证
如何办理英国卡迪夫大学毕业证(Cardiff毕业证书)成绩单留信学历认证如何办理英国卡迪夫大学毕业证(Cardiff毕业证书)成绩单留信学历认证
如何办理英国卡迪夫大学毕业证(Cardiff毕业证书)成绩单留信学历认证
 
Formulas dax para power bI de microsoft.pdf
Formulas dax para power bI de microsoft.pdfFormulas dax para power bI de microsoft.pdf
Formulas dax para power bI de microsoft.pdf
 
Digital Marketing Demystified: Expert Tips from Samantha Rae Coolbeth
Digital Marketing Demystified: Expert Tips from Samantha Rae CoolbethDigital Marketing Demystified: Expert Tips from Samantha Rae Coolbeth
Digital Marketing Demystified: Expert Tips from Samantha Rae Coolbeth
 
Credit Card Fraud Detection: Safeguarding Transactions in the Digital Age
Credit Card Fraud Detection: Safeguarding Transactions in the Digital AgeCredit Card Fraud Detection: Safeguarding Transactions in the Digital Age
Credit Card Fraud Detection: Safeguarding Transactions in the Digital Age
 

Cloud Based Vehicle Rental Application

  • 1. Cloud Computing (COSC 2626) ProCarRental – Cloud Based Vehicle Rental Application Assignment 02 Student ID Student Name S3735195 Hewayalage Vishva Lahiru Kantha Abeyrathne S3704769 Kodithuwakku Arachchige Iresh Udara Kaushalya
  • 2. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) Contents 1. Signed Contribution Agreement .......................................................................................2 2. Links ..................................................................................................................................2 3. Summary ...........................................................................................................................3 4. Introduction ......................................................................................................................4 5. Related work .....................................................................................................................6 Thrifty...................................................................................................................................6 Kayak ....................................................................................................................................6 6. Software Design/Architecture...........................................................................................7 Database Schema .................................................................................................................7 Software Architecture Diagram............................................................................................7 7. Implementation ................................................................................................................8 7.1 EC2..................................................................................................................................8 7.2 RDS .................................................................................................................................8 7.3 QuickSght........................................................................................................................9 7.4 Elastic Beanstalk ...........................................................................................................10 7.5 S3..................................................................................................................................11 7.6 Simple Email Service (SES)............................................................................................11 7.7 CloudFront....................................................................................................................12 7.8 Route 53 .......................................................................................................................12 7.9 Recognition...................................................................................................................12 8. User Manual....................................................................................................................13 9. References ......................................................................................................................24
  • 3. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) 1. Signed Contribution Agreement ProCarRental – Cloud Based Vehicle Rental Application Student Name: Hewayalage Vishva Lahiru Kantha Abeyrathne Student Name: Kodithuwakku Arachchige Iresh Udara Kaushalya Student ID: S3735195 Student ID: S3704769 Contributions: 1. Front End Development 2. Use of AWS Services Contributions: 1. Front End Development 2. Use of AWS Services Contribution Percentage: 50% Contribution Percentage: 50% By signing below, I certify all information is true and correct to the best of my knowledge. Signature: Date: 24/05/2020 By signing below, I certify all information is true and correct to the best of my knowledge. Signature: Date: 24/05/2020 2. Links Direct link to the hosted web application - http://theprocarrent.com/
  • 4. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) 3. Summary A Vehicle Renting System called ProCarRentals has been designed and developed using ASP.NET programming language to fulfil the requirement of Cloud Computing Assignment 02. Amazon Web Services (AWS) will be use as the core cloud platform and following services of AWS will be in use to function the application. 1. Elastic Compute Cloud (EC2) - As a Virtual Server. 2. Elastic Beanstalk – for deployment of the application. 3. Simple Service Storage (S3) – To store data such as images in the application. 4. Relational Database Service (RDS) – As the main database for storing and retrieval of data. 5. Simple Email Service (SES) – Sending emails to customers. 6. CloudFront – To store static content to achieve low latency, high transfer rate. 7. Route 53 – As a DNA server to handle direct traffic to web server. 8. Rekognition – To recognize the total amount of an invoice with deep learning analysis. 9. QuickSight - As a BI tool to create Dashboard. Our main goals of the project can be stated as follow: • Selection of appropriate cloud tools and technologies in order to formulate the project completion with respect to the initial project proposal. • Maintain a distributed model that contains a distributed architecture with separate processing and storage components. • Create a front-end application (web pages) which is user friendly for clients to interact with. • Achieve fast data processing along with maximizing task efficiency and completion. .
  • 5. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) 4. Introduction Most of the small companies still do not conduct their business on a web platform and do not have a system or a website to manage their daily business operations better. One of the major reasons for that is the cost associated with such a system. It is somewhat expensive to build an e-commerce website and requires more amount to perform the maintenance. However, it is more than effective even for a small business to have a system of their own to handle and control their business operations instead of manual paper work. Therefore, a system that can be accessible only by company will save amount cost for a small-scale company and has the flexibility and control at least from their side. But, with the time, as business grow, they can open their application also for the clients to make their lives easier when dealing with reservations. RentMe is a web-based Vehicle Rental System for Car Rental companies to keep track of their vehicle rental and maintenance information along with a summary of incomes and expenses related to the company. Administrator of the application has the capability of adding new vehicles as well as registering new customers to the system with necessary details. Application allows the administrator to perform vehicle reservations with registered customers, vehicle returns as well as maintenance of the vehicles. There is a feature in the system to effectively analyse the sales of the company with the use of a dashboard representation. This application is developed targeting small scale car rental companies with a considerable number of customers, rather than medium and large-scale companies with tons of customers. This application provides the necessary functionalities to manage such car rental companies with their main operations. With the architecture of this application, it can be easily extended once the company decides it to be. For example, when the customer base increases, company tends to get more requests and it would be difficult for administrators to handle all those simultaneously. In that case, current application can be expanded for customers in order to make their own bookings by performing several functionalities in the application.
  • 6. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) This application is a real-time application in which designing has been done to perform a task within a minimum time frame. For this particular use case, which is an administrator-based application, there will not be many of simultaneous user requests such a client-side application. However, with the existing architecture or with the use of auto-scaling groups and load balancing procedure, this application will respond within a short period of time when the application is expanded to customers. Use of AWS QuickSight can be considered as an improvement compared to most of the similar applications. Those dashboards can be shared with the company owner and also can send reports according to desired frequency level such as weekly or monthly. Amazon Rekognition which is a machine learning based AWS component has been utilized to automate the process of reading and manually adding an invoice amount of the vehicle maintenance to the system.
  • 7. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) 5. Related work Thrifty Thrifty company has a web application which is quite similar to this particular application despite being accessible for the clients. However, Thrifty is a location based rental application as they provide the service to the most part of the country. Figure 5.1 Icon of Thrifty Web Application Kayak Kayak web application also offers functionalities that are similar to ProCarRentals application in some ways. Kayak also runs their queries depending on the location of the customer which is not a functionality in ProCarRentals. Figure 5.2: Icon of Kayak Web Application Apart from mentioned applications, many applications with similar functionalities can be found. But when it comes to comparison, it is somewhat limited as developed application is mainly focused on administrators while all the other applications are open for customers to make their own reservations.
  • 8. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) 6. Software Design/Architecture Database Schema Admin (user_id, firstname, lastname, password, phone_number) Customer (customer_id, firstname, lastname, date_of_birth, address, phone_number, email) Vehicle (vehicle_id, year, make, model, num_of_seats, vehicle_type, status, last_maintenance_date, image) Rental (rental_id, *vehicle_id, *customer_id, rent_date, return_date, late_fee, total) Maintenance (maintenance_id, *vehicle_id, returned_date, total_amount) Software Architecture Diagram Figure 6.1: AWS Architecture Diagram of ProCarRentals
  • 9. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) 7. Implementation 7.1 EC2 Launch an instance Following AWS tutorial can be followed to fulfil this task. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html Connect to Linux Instance Following AWS tutorial will take you to connect to your created Linux instance using SSH. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html 7.2 RDS Creating a DB Instance 1. As the first step, sign in to your AWS Management Console and move to RDS. Following link will take you to RDS. https://console.aws.amazon.com/rds/ 2. Under Navigation pane, choose Databases and select Create database. 3. Then Select Standard Create under Choose a database creation method. 4. In Engine options, select MySQL as the engine. 5. Make sure you tick off Free Tier under Templates. 6. In Settings, at DB Instance identifier, give a name for the instance according to your reference (This name has to be unique across all DB instance in your account). 7. At Credential Settings, provide Master username and Master password. 8. Allow all other settings to be default. 9. Then select Create database option. Your instance will be created. 10. Go to Databases and under RDS and select the created instance. Next, we need to create an inbound rule in the created instance in order to connect to DB instance.
  • 10. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) 11. In the page, move to Connectivity and security, -> Security -> VPC security groups and select a security group. 12. At the Actions tab on the right-hand corner, select Edit inbound rules. 13. In the next page select Add rule. 14. Then select MYSQL/Aurora as Type, TCP as Protocol, 3306 as Port range and provide source as your preference to database access. 15. Finally, click on Save rules. Connecting to DB Instance Follow following tutorial guide to connect created DB instance running MySQL database engine. https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance. html 7.3 QuickSght Creating a QuickSight account 1. At first, sign in to your AWS Management Console and go to QuickSight under Analytics. 2. At the first instance, you have to register for a QuickSight account and select Sign up for QuickSight. 3. Then select Standard or Enterprise account according your preference. 4. In the next page, select your preferred region and provide QuickSight account name. 5. If you wish, you can provide an email address for get important notifications, or else keep default settings and select finish. Creating a new analysis 1. When you log in to QuickSight account, select New analysis button in the top left corner. 2. In the next page, choose New data set icon.
  • 11. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) 3. Under, From New Data Sources, select MySQL and a separate form will be loaded. 4. Fill the required fields according to the connection that you created with DB instance and MySQL workbench. 5. Then select Create data source, connection will be validated, and you can create analysis using the tables in according to the database selection. 7.4 Elastic Beanstalk Creating and deploying .NET applications on Elastic Beanstalk 1. As the first step, sign in to your AWS Management Console and go to Elastic Beanstalk under Compute. 2. Then select Create New Application on the top right-hand corner. 3. Tick off Web Server Environment under Select environment tier. 4. In the next page, provide following details. 5. Give an Environment name according to your preference. 6. Then provide a Domain and check availability and provide a Description optionally. 7. Under Platform, .NET on Windows Server and choose a platform branch according to your preference. 8. Then choose Sample application under Application code. 9. Select under configure more options 10. Select Edit under Capacity. 11. Select Load balanced as Environment type and choose t2.micro as Instance type and click save. 12. Select Edit under Database. 13. Provide Username, password and make sure you select mysql as Engine and click save. 14. Then in the main window select Create environment.
  • 12. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) Following link contains a video demonstration for the .NET application deployment in Elastic Beanstalk (Refer video from 14:00). https://www.youtube.com/watch?v=pihVDe0On0Y 7.5 S3 Creating a S3 Bucket Uploading a file to an S3 Bucket using the AWS SDK for .NET (high-level API) 1. At first, sign in to your AWS Management Console and move to S3 under Storage. 2. Under Bucket name, provide a name according to your preference. 3. Select Region. 4. Keep default settings for Bucket Settings for Block Public Access. 5. Select Create Bucket. Following link contains a video demonstration for Uploading a file to an S3 Bucket using the AWS SDK for .NET. https://www.youtube.com/watch?v=ynhgDYVQTEI 7.6 Simple Email Service (SES) Integration of Amazon Simple Email Service into your .NET Application 1. At first, sign in to your AWS Management Console and move to SES under Customer Engagement. 2. Under Email Addresses, select Verify a New Email Address and provide an email address. 3. You will receive an email and click on the link for activation process. 4. In SMTP Settings, select Create My SMTP Credentials.
  • 13. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) 5. Then follow the video in the link below to use SES to send and email from your application (Refer Video from 03:12). https://www.youtube.com/watch?v=vLcUz11rzT8 7.7 CloudFront Configuring CloudFront Distribution The following AWS tutorial can be accessed to configure a CloudFront distribution. https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GettingSt arted.SimpleDistribution.html CloudFront can be used with ASP.Net as follow. https://aws.amazon.com/blogs/developer/using-amazon-cloudfront-with-asp-net- apps/ 7.8 Route 53 The following AWS tutorial can be used to getting started with Route53 and perform necessary activities. https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html The tutorial below shows the path to Route 53 with AWS SDK for .NET https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/route53-apis- intro.html 7.9 Recognition The following AWS Tutorial with .NET can be used as a reference material for detecting a text from an image. https://docs.aws.amazon.com/rekognition/latest/dg/text-detecting-text- procedure.html
  • 14. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) 8. User Manual User will be prompted to login page once the application is being opened. Then user has to provide username and password credentials to login to the system. Figure 8.1: Login Page of ProCarRentals For new users, please click New User button to proceed for the registration. After filling required fields, the user will be redirected to login page. Figure 8.2: User Registration page of ProCarRentals
  • 15. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) Main page of the application is shown as below where user will find all the vehicles in the system while scrolling down. Figure 8.3: Home page of ProCarRentals User will have the ability to filter vehicles according to their preference using filters shown in the following image. Figure 8.4: Vehicle Filtration Component of ProCarRentals
  • 16. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) User can filter the vehicles based on its Make, Type, Year and Status. Status includes all the scenarios in the use case such as Available, Rented and Under Maintenance. Rented vehicles will be shown under red colour while available and under maintenance vehicle will be displayed with green and yellow colours respectively. Apart from that user can search for vehicle using Rego No without going through all the vehicles top to botom even with the filters. Figure 8.5: Side Bar of ProCarRentals User will find Add New Car link and Add New Customer Link In the top left-hand corner. Both the links will take the user to interfaces where a new vehicle as well as a new customer can be inserted to the application separately.
  • 17. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) User can add all the necessary details for the customer using the interface similar to following image. Figure 8.6: Add New Customer page of ProCarRentals A new vehicle can be inserted in to the system with the use of the interface which is identical to the image below. A separate image of the vehicle can be uploaded to the system along with other required details. Figure 8.7: Add New Car page of ProCarRentals
  • 18. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) Following image shows the interface when a user a select a particular vehicle from the set of vehicles in the home page. All the necessary details along with the image will be displayed according to the selected vehicle. Figure 8.8: Vehicle Details page of ProCarRentals Several operations such as Renting, Returning, Add to Maintenance and Returning from Maintenance can be performed for the chosen vehicle. When the vehicle is in Available status, Customer Return button and Maintenance Return button will be locked. When the user selects Rent this Car option, following interface will be generated and Rent Date, Return Date have to be provided along with the Customer. Then an email will be sent to the customer email address specifying all the relevant details of the reservation.
  • 19. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) Figure 8.9: Rent the Car Window of ProCarRentals Once the car is being rented, it will be in Rented status, Only Customer Return button will be active under vehicle details page. When the user selects Customer Return option in an already rented car, following window will pop up with the total for the rental. Then User has to choose Return the Car option. Figure 8.10: Return the Car Window of ProCarRentals
  • 20. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) For every month, depending on the rental frequencies, vehicles have to be added to maintenance. When a vehicle in the Available status, user can it to a maintenance by clicking Add to Maintenance option in the relevant vehicle details page. Once the vehicle is added to maintenance, it is in Under Maintenance status and only Maintenance Return option can be chosen from the operations related to that particular vehicle. When the user selects Maintenance Return, it will generate following window where an invoice of the maintenance has to be uploaded. After uploading the image, click Return from Maintenance button and vehicle will be returned back and cost for the maintenance will be identified and sent to the database. Figure 8.11: Maintenance Return Window of ProCarRentals
  • 21. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) User also has the capability of managing Vehicles and Customers that are registered with the system. For that, user can select List all vehicles under Vehicles tab and List all customers under Customers tab in order to perform delete operation and update relevant details. Figure 8.12: Expanded Side Bar of ProCarRentals
  • 22. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) For instance, one user selects List all vehicles, the following image will be displayed. Then user can select the required vehicle by clicking on Select this Car. Figure 8.13: Vehicle Management page of ProCarRentals When Select this Car button is pressed, following interface will appear to perform update and delete operation for the selected vehicle. Figure 8.14: Vehicle Details Management page of ProCarRentals
  • 23. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) In the menu bar of the home page, user will find two links such as Revenue and Expenses. Revenue will take user to a QuickSight Dashboard which contains several data visualisations related to revenue generation of the company. Similarly, Expenses link contains a dashboard with several data visualisation related to expenses of the company. In this scenario, user has to be given the permission to view dashboards, and user has to be logged in to QuickSight account as well. Image below shows the dashboard for Revenue and user can play with the visualisations using Customer and Vehicle ID parameters. Figure 8.15: Revenue Analysis Dashboard of ProCarRentals
  • 24. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) Similarly, user can select Expenses link and play with the visualisation using Vehicle ID. Following image shows the dashboard for expenses. Figure 8.16: Expense Analysis Dashboard of ProCarRentals
  • 25. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) 9. References [1] "Getting Started with a Simple CloudFront Distribution - Amazon CloudFront", Docs.aws.amazon.com, 2020. [Online]. Available: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GettingStarte d.SimpleDistribution.html. [Accessed: 16- May- 2020]. [2]"Connecting to your Linux instance using SSH - Amazon Elastic Compute Cloud", Docs.aws.amazon.com, 2020. [Online]. Available: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html . [Accessed: 10- May- 2020]. [3]"Step 1: Create an RDS DB Instance - Amazon Relational Database Service", Docs.aws.amazon.com, 2020. [Online]. Available: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServe rDB.CreateDBInstance.html. [Accessed: 11- May- 2020]. [4]"Connecting to a DB Instance Running the MySQL Database Engine - Amazon Relational Database Service", Docs.aws.amazon.com, 2020. [Online]. Available: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance. html. [Accessed: 11- May- 2020]. [5]"Creating and deploying .NET applications on Elastic Beanstalk - AWS Elastic Beanstalk", Docs.aws.amazon.com, 2020. [Online]. Available: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_NET.html. [Accessed: 10- May- 2020]. [6]"Upload a file to an S3 Bucket using the AWS SDK for .NET (high-level API) - Amazon Simple Storage Service", Docs.aws.amazon.com, 2020. [Online]. Available: https://docs.aws.amazon.com/AmazonS3/latest/dev/HLuploadFileDotNet.html. [Accessed: 12- May- 2020].
  • 26. Vishva Abeyrathne (S3735195) Iresh Udara Kaushalya (S3704769) [7]"Send an Email Using the AWS SDK for .NET - Amazon Simple Email Service", Docs.aws.amazon.com, 2020. [Online]. Available: https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-using-sdk-net.html. [Accessed: 14- May- 2020]. [8]"Getting Started with a Simple CloudFront Distribution - Amazon CloudFront", Docs.aws.amazon.com, 2020. [Online]. Available: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GettingStarte d.SimpleDistribution.html. [Accessed: 16- May- 2020]. [9]"Using Amazon CloudFront with ASP.NET Apps | Amazon Web Services", Amazon Web Services, 2020. [Online]. Available: https://aws.amazon.com/blogs/developer/using-amazon-cloudfront-with-asp-net- apps/. [Accessed: 16- May- 2020]. [10]"Getting started with Amazon Route 53 - Amazon Route 53", Docs.aws.amazon.com, 2020. [Online]. Available: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html. [Accessed: 17- May- 2020]. [11]"Amazon Route 53 Programming with the AWS SDK for .NET - AWS SDK for .NET", Docs.aws.amazon.com, 2020. [Online]. Available: https://docs.aws.amazon.com/sdk-for- net/v2/developer-guide/route53-apis-intro.html. [Accessed: 17- May- 2020]. [12]"Detecting Text in an Image - Amazon Rekognition", Docs.aws.amazon.com, 2020. [Online]. Available: https://docs.aws.amazon.com/rekognition/latest/dg/text-detecting- text-procedure.html. [Accessed: 22- May- 2020].