Sample app ================== ## Requirements * Golang (tested on 1.8+) * Docker (tested on 17.04.0-ce) * Mongodb (tested on 3.4.2+) ## Building ``` git clone http://dev.hexasoftware.com/stdio/sampleapp.git cd sampleapp make ``` ## Structure: customersvc logic is separated from the 'webapp' mostly because I tend to separate reusable logic into packages/modules/etc this way is possible to create a simple CLI app consuming the customersvc logic ``` .. └── app : GOPATH ├── docker │   ├── docker-compose.yml │   ├── Dockerfile.build │   └── Dockerfile.dist ├── Makefile ├── README.md └── src └── sampleapp ├── cmd │   └── server │   └── main.go ├── customerhandlers.go ├── customersvc │   ├── customer.go │   ├── customersvc.go │   └── customersvc_test.go ├── routes.go ├── sampleapp.go ├── sampleapp_test.go ├── testutils │   └── testutils.go └── utils.go ``` Depending on situation I often create go-getable packages Sometimes a project is small enough to fit both backend/frontend in it ``` Project + Backend : GOPATH +src + Frontend + Web ```