Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Roomer

A small web app for booking focus pods by the hour. Pick a day, see which pods are free, grab a slot.

Built with Go, Echo, GORM, SQLite, Templ, HTMX, and Goose migrations.

Features

  • Day-view booking grid — pods as columns, hourly slots (08:00–17:00) as rows
  • One-click booking with an inline HTMX form, no page reloads
  • Conflict detection so a slot can't be booked twice
  • Cancel bookings straight from the grid
  • Pod management: add and list pods
  • Single binary: templates compiled in, migrations embedded and applied on startup

Getting started

Requires Go 1.25+.

make dev     # hot-reload development server (air + loggo) on :8080
make run     # or: plain run without hot reload

The SQLite database (roomer.db) is created and migrated automatically on first start, including a few seed pods.

Development

make test             # run tests
make lint             # vet, staticcheck, golangci-lint, nilaway
make sec              # gosec, govulncheck
make build            # production binary
make generate         # regenerate Go code from .templ files
make migrate-status   # migration status
make migrate-down     # roll back last migration

Templates are .templ files that generate *_templ.go — edit the .templ files, never the generated code.

Routes

Method Route Purpose
GET / Booking calendar grid
GET /bookings/form Booking creation form
POST /bookings Create booking
DELETE /bookings/:id Cancel booking (HTMX)
GET /pods Pod management
POST /pods Create pod

Project layout

main.go            entry point, embeds migrations, starts server on :8080
migrations/        Goose SQL migrations (embedded at compile time)
internal/
  app/             wiring and database setup
  bookings/        booking domain, repository, usecase, handlers, templates
  pods/            pod domain, repository, usecase, handlers, templates
  shared/          layout template and render helpers

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages