A Fullstack GraphQL Airbnb Clone with React and React Native
Branch: master
Clone or download
Latest commit 75efa27 Feb 12, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
packages Update ListingForm.tsx Feb 12, 2019
.dockerignore docker Jun 22, 2018
.gitignore upload images from frontend Jul 24, 2018
Dockerfile docker Jun 22, 2018
LICENSE Create LICENSE Jan 28, 2019
Procfile get ready for heroku deploy Aug 22, 2018
README.md Update README.md Sep 26, 2018
deploy_server_do.sh heroku stuff Jun 25, 2018
deploy_web.sh netlify Jun 25, 2018
lerna.json add deployment script do Jun 23, 2018
mock.sql fix pictureUrl resolver Aug 30, 2018
ormconfig.json spell graphql correctly Aug 19, 2018
package.json fix netlify deploys Aug 29, 2018
postinstall.sh fix netlify deploys Aug 29, 2018
tslint.json tslint and auth demo Jul 17, 2018
yarn.lock upgrading to typescript 3 Sep 6, 2018

README.md

fullstack-graphql-airbnb-clone

A Fullstack GraphQL Airbnb Clone with React and React Native.

Packages

This project is made up of 5 packages that share code using Yarn Workspaces.

  • web (React.js website)
  • app (React Native app)
  • server (GraphQL Typescript server)
  • common (Code shared between web, app, and server)
  • controller (Components shared between web and app)

Installation

  1. Clone project
git clone https://github.com/benawad/fullstack-graphql-airbnb-clone.git
  1. cd into folder
cd fullstack-graphql-airbnb-clone
  1. Download dependencies
yarn
  1. Start PostgreSQL server
  2. Create database called graphql-ts-server-boilerplate
createdb graphql-ts-server-boilerplate
  1. Add a user with the username postgres and and no password. (You can change what these values are in the ormconfig.json)

  2. Connect to the database with psql and add the uuid extension:

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
  1. Install and start Redis

  2. In packages/server create a file called .env and add the following line inside: FRONTEND_HOST=http://localhost:3000

  3. Run yarn build in packages/common

  4. Run yarn build in packages/controller

  5. Get Google Maps API key and put it here https://github.com/benawad/fullstack-graphql-airbnb-clone/blob/master/packages/web/public/index.html#L14 Videos doing that: https://youtu.be/-QQnzDVcTCo and https://youtu.be/xLlIgokKiLc

Usage

  1. Start server yarn start in packages/server

  2. Now you can run yarn start in packages/web or packages/app to start the website or app.

  3. How to get credentials working in graphql playground: https://youtu.be/oM-EmNdhwI4?t=8m39s

Deploy

Server

  1. https://www.youtube.com/watch?v=qQAozc1MkdU
  2. https://www.youtube.com/watch?v=0t-rE5wUP-E

Website

  1. https://www.youtube.com/watch?v=FiU3SHEaFwk
  2. https://www.youtube.com/watch?v=vPu1sfuYFzw
  3. https://www.youtube.com/watch?v=Ry6Zobb-kaw

Features

  1. Website register/login
  2. Deploy backend and frontend
  3. App register/login
  4. Website and App forgot password
  5. Website and App create listing
  6. Website and App view listings
  7. logout
  8. Website chat