- Go
- [gin] ( https://github.com/gin-gonic/gin )
- [mongodb] ( https://www.mongodb.com/ )
- [mongo-go-driver] ( https://github.com/mongodb/mongo-go-driver )
- [oauth2] ( https://github.com/golang/oauth2 )
- [check] ( https://godoc.org/gopkg.in/check.v1 )
- [godotenv] ( https://github.com/joho/godotenv )
- [go-oauth2/gin-server] ( github.com/go-oauth2/gin-server )
- [cors] ( github.com/gin-contrib/cors )
By default, your project's structure will look like this:
/controllers: contains the core code of your application./database: contains mongo-go-driver connector./helpers: contains helpers functions of your application./middlewares: contains middlewares of your application./routes: directory contains RESTful api routes of your application./tests: contains tests of your application./types: contains the types/structures of your application.
letsGo uses godotenv for setting environment variables. The root directory of your application will contain a .env.example file.
copy and rename it to .env to set your environment variables.
You need to create a .env.testing file from .env.example for running tests.
- clone letsGo
- change package name in
go.modto your package name - change the internal package (controllers, tests, helpers etc.) paths as per your requirement
- setup
.envand.env.testing - run
go mod downloadto install dependencies
go get github.com/letsgo-framework/letsgo-cli
letsgo-cli init <import_namespace> <project_name>- letsgo-cli init github.com myapp
Generates a new project called myapp in yourGOPATHinsidegithub.comand installs the default plugins through the glide.
go test -v -coverpkg=./... -coverprofile=coverage.out ./...
goveralls -coverprofile=coverage.out -service=travis-ci -repotoken $COVERALLS_TOKEN
letsgo uses Go OAuth2 (https://godoc.org/golang.org/x/oauth2) for authentication.
sudo docker run --rm -v "$PWD":/go/src/github.com/letsgo-framework/letsgo -w /go/src/github.com/letsgo-framework/letsgo iron/go:dev go build -o letsgo
sudo docker build -t sab94/letsgo .
sudo docker run --rm -p 8080:8080 sab94/letsgo