Modern Web Application with Golang "Keep it simple, stupid"
- HTTP Middleware Echo
- Language Go +1.8
- ORM library gorm
- Configuration env
- Load ENV variables from .env file godotenv
- Payload validation validator
- Templating Go Templates
- Frontend module bundler rollupjs
- Stylesheet language sass
- Redis Cache Redis
- Localization gotext
$ go get ./...
$ docker-compose up
$ go run main.go
- IDE plugin vscode-go
- Administration of postgresql database pgAdmin
- REST client Postman
- Go testing in the browser go-convey
- Benchmarking bombardier
$ godoc github.com/starptech/go-web/controller
$ godoc -http=:6060
Visit localhost:6060 and search for go-web
$ bombardier -c 10 -n 10000 http://localhost:8080/feed
$ bombardier -c 10 -n 10000 http://localhost:8080/users/1
$ bombardier -c 10 -n 10000 http://localhost:8080/users/1/details
Each of the items should be implemented with the easiest approach.
- Testsuite
- Parameter Validation
- Configuration
- Load ENV variables from .env file
- Add Graylog logger
- Structured logging
- Frontend build pipeline
- Postgresql models
- Gracefully shutdown
- Consistent error-handling
- Web Development with Custom elements
- Templating
- Correct linking with the app bundles
- Metric endpoint (Prometheus)
- Healthcheck endpoint
- Distributed cache with Redis
- Localization in templates and handlers
- JWT
- Benchmarks
- Integration tests
- Unit tests
- Using interface for db, cache (better testable)
- Setup Travis CI with static code analysis
- Code documentation
godoc
- Rollup bundles with hashs
- Implement sample feed machanism (timestamp based)