Proof of concept web app that recommends local restaurants to users. Powering this is a custom recommendation engine that takes a user's historical choices into account in its machine learning algorithm.
The frontend is built in React, and the server is built in Node/Express. Firebase is used for user and user data storage.
After cloning the repo to your system, running npm run dev
will install dependencies, then start the Webpack Dev Server with a bundle that features live incremental builds. Navigate to http://localhost:8080 to see the web app in development.
The development environment for this repo is using Node 6.0.0 and npm 3.8.6.
If node and npm are not installed on your system, it is recommended to install nvm to switch between versions.
Edit files in ./app/
folder, this is the entry point for the Webpack bundle. Built bundle will be written to ./dist
folder.
If any changes need to be made to the main html wrapper at ./index.html
, they will be copied to the ./dist
folder on build.
Start development server with live Webpack incremental builds:
npm run serve
Start production server and build Webpack bundle:
npm run serve:dist
Start production server only:
npm start
Start dev server from fresh state with install:
npm run dev
Simulate Heroku deployment behavior with fresh install and build:
npm run prod
Run Mocha/Chai Unit Tests:
npm run mocha
To run tests continuously:
npm run mocha:watch
Run ESLint:
npm run lint
Run both unit tests and linting:
npm test
Merges to master
branch are automatically deployed on Heroku at https://yelp-rec.herokuapp.com/. Travis CI is implemented in the deployment workflow.
- React - Frontend
- Material-UI - UI Components
- Babel - JSX and ES2015 Transpiling
- Yelp - Yelp API wrapper NPM module
- Express - Server
- Firebase - Database
- Mocha, Chai - Unit Testing
- Webpack - Bundles and Builds
- Travis CI - Continuous Integration
- Cliff Saporta Cheng - ccfcheng
This project is licensed under the MIT License - see the LICENSE file for details