/mogo

A web application where people share authentic Korean restaurants in Berlin.

Primary LanguageJavaScript

MOGOšŸ±

Mogo means "Eat!" in Korean. This application is for people who have a craving for good authentic Korean Restaurants in Berlin. In this application people can share their favorite restaurants and their opinions about the restaurants.

  • User can see a list of shared restaurants, search by its name and results will dynamically appear.

  • User can share their favorite restaurants with image and description.

  • User can delete or modify restaurants by confirming with the password they set.

  • User can leave comments in restaurant's page and sign up for the newsletter.

How to run

Backend

First of all, please make sure MongoDB is running.

$ mongod
$ mongo
$ cd backend
$ npm i
$ nodemon index.js

http://localhost:3000

Frontend


$ cd frontend
$ npm i
$ npm run serve

http://localhost:8080/

Users can

  • C : share a new restaurant and write comments.
  • R : see posted restaurants and comments.
  • U : update information of restaurants.
  • D : delete their posts by confirming their password.
  • Bridging APIs : sing in for newsletter. (Mailchimp API used)

Details

  • Search restaurants by name.
  • Upload image by url.
  • Leave comments and see them right away.
  • Delete their posts only by confirmation with password.
  • In case they put wrong password they should get informed.
  • Sign up for newsletter and get an alert of confirmation.
  • Like restaurants.
  • Check out most popular 3 restaurants based on the number of likes.
  • Responsive design.
  • When users don't upload an image default image should show up.

Backend

Major frameworks used for backend :

  • Node.js
  • Express
  • MongoDB
  • Axios

Frontend

Major frameworks used for frontend :

  • Vue.js
  • Vuex
  • Pug
  • Vuetify

API

To be able to communicate with users better. Users can sign up for newsletter. For that Mailchimp API is used.

Test

For testing application Avajs/Ava has been used.

**Commands to run tests **

  • cd backend
  • npm run test to run AVA, which is a test runner for Node.js.
  • npm run test-coverage to get the test coverage with NYC in the CLI.
  • nyc report --reporter=html to get the test coverage report.