Introduction
In this project, you are going to create a complete hotel reservation application with the AWS knowledge you have.
Following services from AWS can be used for the startup project:
- S3 - to save and read raw data
- Glue
- Lambda
- API Gateway
- Secrets Manager - for storing access credentials
- CloudWatch - for logging, monitoring and alerting
Furthermore the project will make use of:
- Python
- AWS CDK (Optional, only if it speeds up your development process)
- Spark
Data Set
Problem
Overview
In our hotel reservation business, we rent Airbnb rooms to people. Whenever a customer is looking for a place in a particular neighborhood, she/he uses our application to find available places to rent. We focus on providing an analytics solution to be able to easily query the data.
Start by examining the business and data set, look for insights we can get from the data. To get some inspiration look at this dashboard by Airbnb itself.
Finally the choices are up to you, browse the data. Make some assumptions about the business and how you would like to use the data and implement your solution.
requirements:
- Airbnb data set should be ingested into AWS account
- Business owners should be able to browse data (some thing like this). This can be done in different ways:
- API
- Dashboard
- Users can get available places in a neighborhood. This should be an API that uses the data set to service requests.
- Users can Book a room → reserve a {room} from {check in date} to {check out date}
Optional Requirements
If you have more time and want to discover more AWS services you can try design and implementation of the following:
- Query→ return list of available rooms in the given {area} from {check in date} to {check out date}
- Host→ make your {room} available for rent for a {price}. for the list of segments of dates (ex: [(2022-1-1, 2022-2-3), (2022-3-4, 2022-4-5)])
- Cancel(optional)→ make a {calendar_id} available again
- implement transformations with using Spark and Scala
- you can get the listings neighbourhood from AWS Location Service using listing’s longitude and latitude. (Current data set contains every listing’s neighbourhood) Also you can have a look at these 2 too; but Amazon Location Service is a preferred way:
- You can use AWS ElastiCache (Redis) to cache the result of one the APIs. (Probably, you can cache the result of query related API)
Resources
For serverless
AWS Developer course on acloudguru
CDK samples
Architectures
We are not providing details about related links and architectures here for you to think about them and have a search about it :) But if you want to see architectures and related links anyway or you want to evaluate your answers, have a look at this page.