Check out the live app here.
Quick Links:
Introduction
Functionality and Features
Running the Project
Terra l'Hotel is a pixel perfect full stack clone of the Tablet Hotels website from 2022. It is created for educational purposes only. Please do not enter any sensitive data while exploring Terra l'Hotel.
- Frontend:
React and Reduxreact-reduxredux-thunkreact hooks
- Backend:
Ruby on Railsbcrypt- user authentication
- Database:
PostgreSQL - Languages
JavascriptRubyHTML and CSS
- Bundlers and Compilers
webpack- module bundlerbabel- JavaScript ES6 compliler
- Additional APIs:
Google Maps API
- Hosting:
Heroku
There are completed features for Terra l'Hotel:
UserauthenticationHotellisting and detailsReservationcreation, lists, editing and cancellationReviewcreation, lists, editing and deletion
Key features for the completed project, including 2 full CRUD cycles:
Users are able to register for an account, login, and logout as needed on the website. The user authentication on the backend uses Ruby on Rails with BCrypt to secure password information.
- User authentication - register, signin, logout
- Ability to:
- View hotels and hotel details
- Create, Read, Update and Destroy reservations
- Create, Read, Update and Destroy reviews
- Favorite hotels
Users are able to search, view listings and details.
Searchableby hotel name, city, state, or country- Listings can be further filtered
Showhotel details- Basic information: name, location, description
- Accomadation informtion: amentities, total number of rooms at the property, room occupancy and size
- Media: hotel and room images, location on Google Maps
Users are able to create, read, update and destroy reservation entries.
- Reservation dates are
selectablein the hotel details page to book a hotel room - Reservations can be edited and cancelled from the reservation listing page
- To create a reservation, a user must be logged in
- User is redirected to reservation listings after booking
- Hotel information for booking is dervived from the hotel details page, not the user input
Users are able to create, read, update and destroy review entries. Users can view all reviews for any hotel, and only edit and delete their own reviews.
- Reviews for a hotel are shown on the hotel's details page
- Reviews for a hotel can be written from the user's reservation page
- Reviews are shown and can be edited or deleted from the user's reviews listing page
- To create a reservation, a user must be logged in and the dates of the stay must be before the current date
On the home page, there is a search form where users are able to search for hotels by name or location (city, state, and country). If the search returns zero entries, the web application will return all listings available in the database.
If the project is cloned and you want to run it locally, a PostgreSQL server must be set up and seeded using:
bundle exec rails db:create db:migrate
bundle exec rails db:seed
Two terminals are needed to run the Rails server and to start npm:
rails s
and
npm run watch
The project can then be viewed at localhost:3000.
