Skip to content

"Aims to reduce the pain-points of diners and overhead costs of restaurant owners through facilitated reservation system with options to pre-order menu items and queue order requests straight to the kitchen"

Notifications You must be signed in to change notification settings

seintun/dinesty.ninja-golang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dinesty.ninja (Skip the wait, Enjoy the meal)

Powered by React Native, Go, MongoDB, Docker, AWS EC2, Firebase Authentication, Yelp API

Demo:

GIF of browsing the restaurant and menu GIF of placing reservation

App at a glance:

Image of home screen

Wireframing Prototypes:

Image of home screen Image of menu screen

Setup GO developer environment with Homebrew

https://golang.org/doc/install

$ brew install go

Create Workspace Directories

$ mkdir -p ~/go/{pkg,src,bin}
$ mkdir -p ~/go/src/github.com/seintun
$ cd ~/go/src/github.com/seintun && git clone https://github.com/seintun/dinesty.ninja-backend.git
$ cd dinesty.ninja-backend && touch config.toml

Set Environment variables (Depends if you use Bash or Zsh):

Bash

$ cd ~ && echo "export GOPATH=$HOME/go" >> .bash_profile && source ~/.bash_profile

(or) Zsh

$ cd ~ && echo "export GOPATH=$HOME/go" >> .zshrc && source ~/.zshrc

Installing dependencies

$ go get github.com/gorilla/handlers github.com/gorilla/mux gopkg.in/mgo.v2 gopkg.in/mgo.v2/bson github.com/BurntSushi/toml

Gorilla Mux (HTTP request multiplexer)

Used for routing and CRUD Restful API

Gorilla Handlers (HTTP middleware)

Used for HTTP logging

MGo (MongoDB)

Used for dialing to MongoDB server

MGo BSON (BSON)

Used for creating BSON ObjectID

Storing config keys (TOML)

Used for reading config.toml file of mLab server and Yelp API key

Place the following line inside config.toml

server="<INSERT YOUR SECRET mLAB userInfo HERE INSIDE THE QUOTES>"
database="dinesty_ninja_db"

yelpURL="https://api.yelp.com/v3/businesses/"
yelpKey="<INSERT YOUR YELP API KEY HERE INSIDE THE QUOTES>"

Setting up Config with mLab (inside ./config.toml)

  1. Create/Login account at https://www.yelp.com
  2. Visit https://www.yelp.com/developers/v3/manage_app to obtain your API key
  3. Fill-out form under Create New App for testing
  4. Copy API Key after completion
  5. Replace

Setting up Config with Yelp API (inside ./config.toml)

  1. Create/Login account at https://mlab.com
  2. Create a database name: dinesty_ninja_db
  3. Replace server="" in the format of
mongodb://<dbuser>:<dbpassword>@ds0000.mlab.com:0000/dinesty_ninja_db

Run the GO server at port 8080

$ go run main.go

About

"Aims to reduce the pain-points of diners and overhead costs of restaurant owners through facilitated reservation system with options to pre-order menu items and queue order requests straight to the kitchen"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages