Git Product home page Git Product logo

youbble_yelp's Introduction

Summary

This is backend for the application. This application talk to Yelp Api to retrieve the data. The frontend call this app to request for Yelp data. The communication between the frontend and backend is authenticated using AuthO.

Projects

Backend

This is the backend project. It is written in NodeJS. It uses ExpressJS as the web framework. It uses AuthO for authentication. It uses Yelp Api to retrieve the data. It uses MongoDB to store the data. It uses Mongoose as the ORM. It uses Jest as the test framework. [TODO] It uses Supertest as the test library. It uses Nock as the mock library. It uses Winston as the logging library. It uses Morgan as the request logging library. It uses Express-JWT as the authentication library. It uses dotenv as the environment variable library. It uses cors as the cors library. It uses helmet as the security library. It uses compression as the compression library. It uses express-rate-limit as the rate limiting library. It uses express-mongo-sanitize as the mongo sanitize library. It uses express-xss-clean as the xss clean library. It uses hpp as the http parameter pollution library. It uses express-validator as the validation library. It uses nodemon as the development server. It uses eslint as the linting library. It uses prettier as the code formatter. It uses husky as the git hook library. It uses lint-staged as the linting library. It uses concurrently as the library to run multiple commands concurrently. It uses cross-env as the library to set environment variables. It uses rimraf as the library to remove files and folders. It uses win-node-env as the library to set environment variables in Windows. It uses supertest-mongoose as the library to test mongoose. It uses supertest-session as the library to test session. It uses supertest-session as the library to test session. The docker file is available in the root folder. The docker file creates a simple node 14 image. The docker file copies the backend project to the image. The docker file installs the dependencies. The docker file exposes port 8080. The docker file runs the backend project.

Frontend

This is the frontend project. It is written in ReactJS. It uses React Router as the routing library. It uses AuthO for authentication. It uses styled component as the UI library. It uses Jest as the test framework. [TODO] It uses Supertest as the test library. It uses Nock as the mock library. It uses Winston as the logging library. It uses Morgan as the request logging library. It uses Express-JWT as the authentication library. It uses dotenv as the environment variable library. It uses cors as the cors library. It uses helmet as the security library. It uses compression as the compression library. It uses express-rate-limit as the rate limiting library. It uses express-mongo-sanitize as the mongo sanitize library. It uses express-xss-clean as the xss clean library. It uses hpp as the http parameter pollution library. It uses express-validator as the validation library. It uses nodemon as the development server. It uses eslint as the linting library. It uses prettier as the code formatter. It uses husky as the git hook library. It uses lint-staged as the linting library. It uses concurrently as the library to run multiple commands concurrently. It uses cross-env as the library to set environment variables. It uses rimraf as the library to remove files and folders. It uses win-node-env as the library to set environment variables in Windows. It uses supertest-mongoose as the library to test mongoose. It uses supertest-session as the library to test session. It uses supertest-session as the library to test session. The docker file is available in the root folder. The docker file creates a simple node 14 image. The docker file copies the frontend project to the image. The docker file installs the dependencies. The docker file exposes port 3000. The docker file runs the frontend project.

Docker compose

The docker compose file is available in the root folder. The docker compose file creates a network. The docker compose file creates a mongodb container. The docker compose file creates a backend container. The docker compose file creates a frontend container. The docker compose file exposes port 3000. The docker compose file exposes port 8080. The docker compose file exposes port 27017.

Development

Authentication

AuthO assymetric authentication is used. The auth bearer token is included in the header in every request from frontend to backend. express-jwt library is used to verify the authentication token. To verify the token, following environment variables must be available in backend.

The frontend must be configured to use the same AuthO tenant. The frontend must be configured to use the same audience as the backend. The frontend must be configured to use the same domain as the backend.

  • REACT_APP_AUTH0_DOMAIN: this is the domain of the AuthO tenant. Example: dev-xxxxxx.us.auth0.com
  • REACT_APP_AUTH0_AUDIENCE: this is the audience of the AuthO tenant. Example: https://dev-xxxxxx.us.auth0.com/api/v2/
  • REACT_APP_CLIENT_ID: this is the client id of the AuthO tenant. Example: 1234567890

Yelp Api

Yelp Api is used to retrieve the data. To use Yelp Api, following environment variables must be available in backend

  • YELP_API_KEY: this is the api key of the Yelp Api. Example: 1234567890

youbble_yelp's People

Contributors

kdkarki avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.