Skip to content

Airbnb-styled service-oriented architecture app that generates, persists, and displays product data. Built with MERN using MongoDB, React Styled Components, & React Router DOM. 🏠 ✔️

jhou12/airbnb-soa-reviews-app

Repository files navigation

Fullstack Airbnb-Styled SOA Reviews Module

Service-Oriented Architecture app modeled from the Airbnb Reviews service, built to:

  • seed and persist data (averages, users, and reviews) for 100 unique product IDs,
  • run alongside other services via proxy server,
  • display a full page of data per each unique product ID,
  • run locally, or be deployed via Amazon EC2.

Built with the MERN stack using MongoDB, as well as React Styled-Components and React Router DOM.

Default view:

Modal view:

Setup on Local

  1. git clone
  2. install dependencies with npm install
  3. seed database with npm run seed
  4. start server with npm run start
  5. build bundle with npm run build
  6. verify app up and running at localhost:3001/rooms/:id (for id values 0-99)
  7. for development, start webpack with npm run react-dev

Setup on EC2

  1. create and launch EC2 instance with Ubuntu AMI on t2 micro (or preferred settings)
  2. edit Instance Inbound Rules by adding "All Traffic" from "Anywhere," or preferred security settings
  3. add pem key to root and .gitignore, and in Terminal make pem private with chmod 400 [.pem file]
  4. connect to instance with ssh -i "[pemKeyName].pem" ubuntu@[Public IPv4 DNS] NOTE: Public IPv4 address will change every time instance shuts down. To avoid repeated IP changes during development, restart instance instead of shutting down.
  5. install Node on Ubuntu with
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
. ~/.nvm/nvm.sh
nvm install node
  1. install Git on Ubuntu with sudo apt-get install
  2. git clone repo
  3. install dependencies with npm install
  4. install MySQL with
sudo apt update
sudo apt-get install mysql-server -y
sudo mysql
create database [name]
  1. add MySQL credentials (SQL_USER, SQL_PASS, & SQL_DB) to root .env file with sudo vim .env
  2. seed database with npm run seed
  3. start server with npm run start
  4. verify app up and running at url http://[Public IPv4 DNS]:3001/rooms/:id (for id values 0-99). NOTE: must use http, not https, or will return error
  5. to stop instance, go to instance page and click Instance State > Stop Instance.

Setup with Proxy

Complete local or EC2 setup, and follow setup instructions for proxy.

Related Projects

About

Airbnb-styled service-oriented architecture app that generates, persists, and displays product data. Built with MERN using MongoDB, React Styled Components, & React Router DOM. 🏠 ✔️

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published