samantha joy whelpley

🏠 bnb

A full-stack home-rental system built with Angular/Ionic, Node.js, Express, and MySQL.

iXperience

Overview

For my iXperience Full Stack Coding course, the final project was to create a functioning home-rental system replicating the main services of Airbnb. This was my first full stack project, as well as the first time I used Angular or built an API! I built 5 components for this project:

  1. Consumer mobile app - allows users to join, view listed properties, and create bookings.
  2. Provider mobile app - allows users to join, create and update their rental property listings, and manage booking requests.
  3. Admin panel web app - allows admins to view all registered app users, listings and booking requests.
  4. REST API - for communication between the applications and database.
  5. MySQL database - for storing account information, listings, and bookings.

Tech Stack

The consumer and provider apps are build with Angular's Ionic framework, with Node.js for the backend. The admin panel is built with Angular. The API uses Express and connects to a MySQL database.

Timeline

July to August 2019 (~5 weeks)


Description

On each app, users are first prompted to log in. Users of the Consumer and Provider apps are also able to register an account, but this is not a feature on the Admin panel for security purposes. All users are authenticated by the API using JWT (JSON Web Tokens). Passwords are hashed using bcrypt.

Consumer bnb app

Screens from bnb consumer app: Explore, Listing Details, and Trips.

Provider bnb app

Screens from bnb provider app: Listings, Listing Details, Booking Requests, and Edit Listing.

Admin panel

Screen from bnb admin panel: Listings.

Feel free to also check out my code for the API and the database.

Next Steps

My future goals for this project would be to add to the design and features. I would love to create better branding and have all applications follow a unique, cohesive design. The grading of this project was on functionality alone, so I did not spend a lot of time on the UI/UX. Regarding features: