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.
A user may declare zero or more other users as ‘trusted’ or ‘untrusted'
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.
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.
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)