Skip to content

Sistema de gestão da Academia Jaiu feita em Go + templ + HTMX + Tailwind + chi.

License

Notifications You must be signed in to change notification settings

PabloPavan/jaiu

Repository files navigation

Jaiu

Sistema de gestao de academia (MVP) com Go + templ + HTMX + Tailwind + chi.

Stack

  • Go 1.22
  • templ (componentes de UI)
  • HTMX para interacoes dinamicas
  • Tailwind CSS (CDN no MVP, com build opcional)
  • chi para roteamento HTTP
  • Postgres
  • sqlc + migrations

Estrutura

cmd/server           # entrada da aplicacao
internal/app         # bootstrap da aplicacao
internal/adapter     # adaptadores (db, etc)
internal/http        # rotas e handlers
internal/ports       # portas (interfaces)
internal/service     # casos de uso
internal/view        # componentes (templ)
internal/domain      # entidades e enums de dominio
db/migrations        # migrations SQL
db/queries           # queries sqlc
db/schema.sql        # schema para sqlc
sqlc.yaml            # config do sqlc
web/static           # css/js estatico
web/tailwind         # config do Tailwind (build opcional)

Modulos cobertos

  • Alunos
  • Planos
  • Assinaturas
  • Pagamentos
  • Relatorios
  • Usuarios e autenticacao (tela inicial)

Rodando localmente

export DATABASE_URL="postgres://jaiu:secret@localhost:5432/jaiu?sslmode=disable"
go run ./cmd/server

Acesse: http://localhost:8080

Docker

Base (db + redis):

docker compose up

Prod (binario gerado):

docker compose -f docker-compose.yml -f docker-compose.prod.yml up --build

Dev (air + templ + debug):

docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build

O dev expoe o debug do delve em localhost:40000.

Tailwind

O layout usa o CDN do Tailwind apenas em ambientes locais (APP_ENV=local/dev/test). Para prod, gere o CSS:

./scripts/tailwind.sh

Isso gera web/static/css/app.css. Garanta que o build rode o script e que APP_ENV esteja como production/prod para nao carregar o CDN.

templ

Gere os componentes a partir dos arquivos .templ:

templ generate

Se o binario templ nao estiver instalado:

go install github.com/a-h/templ/cmd/templ@latest
export PATH="$PATH:$(go env GOPATH)/bin"

Atalho:

./scripts/templ.sh

Se preferir rodar via Docker:

docker run --rm -v "$PWD":/workspace -w /workspace ghcr.io/a-h/templ:latest generate

Migrations

docker compose -f docker-compose.yml --profile migrate run --rm migrate

sqlc

./scripts/sqlc.sh

Se o binario sqlc nao estiver instalado:

go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest
export PATH="$PATH:$(go env GOPATH)/bin"

Ou rode via Docker:

docker run --rm -v "$PWD":/workspace -w /workspace sqlc/sqlc:1.26.0 generate

Seed de usuario

export DATABASE_URL="postgres://jaiu:secret@localhost:5432/jaiu?sslmode=disable"
go run ./cmd/seed-user -email admin@academia.com -password 123456 -name "Admin" -role admin

Proximos passos sugeridos

  • CRUDs completos com validacoes
  • Autenticacao (admin/operador) e controle de acesso
  • Relatorios com filtros por periodo

About

Sistema de gestão da Academia Jaiu feita em Go + templ + HTMX + Tailwind + chi.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published