SQL database to power an AirBnB-like service
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


AirBnB SQL Database

Java project to replicate some of the functions that would power an AirBnB style application.



Ability to register and login an exiting user.

Create and edit a housing

Ability to create a housing and allow a user to edit the details of their listed housings.


Ability to reserve a housing for a specified amount of time.


Ability to record a user visited the housing, requires a reservation to the housing.


Ability for a user to favorite and unfavorite a housing.

Feedback for a Stay

If a user has visited a housing they can leave feedback on their stay.

Feedback Useful Ratings

Users can mark feedback left by a user as helpful/unhelpful.

Trust Users

A user may declare zero or more other users as ‘trusted’ or ‘untrusted'

Housing Browsing

Users may search for housings by asking conjunctive queries on the price (a range), and/or address (at CITY or State level), and/or name by keywords, and/or category. Your system should allow the user to specify that the results are to be sorted (a) by price, or (b) by the average numerical score of the feedbacks, or (c) by the average numerical score of the trusted user feedbacks.

Find Useful Feedbacks For a Housing

A user could ask for the top n most ‘useful’ feedbacks. The value of n is user-specified (say, 5, or 10). The ‘usefulness’ of a feedback is its average ‘usefulness’ score.

Housing Suggestions

Like most e-commerce websites, when a user records his/her reservations to a housing ‘A’, your system should give a list of other suggested housings. housing ‘B’ is suggested, if there exist a user ‘X’ that visited both ‘A’ and ‘B’. The suggested housings should be sorted on decreasing total visit count (i.e., most popular first); count only visits by users like ‘X’.

Two Degrees of Separation

Given two user names (logins), determine their ‘degree of separation’, defined as follows: Two users ‘A’ and ‘B’ are 1-degree away if they have both favorited at least one common housing; they are 2-degrees away if there exists an user ‘C’ who is 1-degree away from each of ‘A’ and ‘B’, AND ‘A’ and ‘B’ are not 1-degree away at the same time.


The list of the m (say m = 5) most popular housings (in terms of total visits) for each category.

The list of m most expensive housings (defined by the average cost per person of all visits to a housing) for each category.

Tthe list of m highly rated housings (defined by the average scores from all feedbacks a housing has received) for each category.

User Awards

The top m most ‘trusted’ users (the trust score of a user is the count of users ‘trusting’ him/her, minus the count of users ‘not-trusting’ him/her)

The top m most ‘useful’ users (the usefulness score of a user is the average ‘usefulness’ of all of his/her feedbacks combined)