database/migrations | ||
pkg | ||
static | ||
templates | ||
vendor | ||
.gitignore | ||
docker-compose.yml | ||
go.mod | ||
go.sum | ||
layoutmiddleware.go | ||
main.go | ||
readme.md |
Sample Webapplication in Go
Sample Webapplication in go, create a kind of skeleton for monolith webapplicaion. Useed to create a small MVP Project.
Structur
Create (self contained) pkg for a group of pages. The pkg included the View and Go files for the Pages e.g. user pages.
Including Packages
- https://github.com/go-chi/chi -> Routing and middelware
- https://github.com/go-chi/jwtauth -> For JWT Auth
- https://github.com/golang-migrate/migrate -> for mysql migration
- https://github.com/urfave/cli -> for cli commands like migration
Features
Global Layout
The "globale layout" is put arround each response from a pkg web response. It read the response buffer from and use the content to parse the layout.tmpl. It works via middelware
JWT-Auth
todo
Migrations
Its possitlbe to execute the migrations via go run ./ migrate
. It execute the migration files in database/migrations/*.sql
One Binary
Everything (include templaes and migration) can be added in one binary
Make commands
todo
Dev
Test für das entwickeln von Monolith webanwendung mit html gui in go.
Es gibt unabhängige packages im pkg ordner die eine oder mehrere seiten beinhalten können. Jedes pkg beinhaltet alles um funktionieren zu können.
Das layout gibt es einmal zentral und wird per chi middelware reingereicht.
Alles ist in einem binary
next steps
- conifg per env
- makefile
- ci/Cd bis docker image bauen