timruffles/fixit

★ 0Forks 0GoGitHub ↗Compare

README

Fixit

Community software for fixing things - a web application built with Go, PostgreSQL, and Tailwind CSS.

Architecture

  • cmd/ - Application binaries/entrypoints
  • web/ - HTTP handlers, templates, and web-facing code
  • engine/ - Business logic, repositories, and database operations

The application uses:

Prerequisites

Install the following dependencies:

  • Go 1.24+: Download Go
  • Docker & Docker Compose: Install Docker
  • Air (for hot reload): go install github.com/cosmtrek/air@latest
  • Flyctl (for deployment): brew install flyctl

Getting Started

  1. Clone and setup:

    git clone <repository-url>
    cd fixit
  2. Start the database:

    docker-compose up -d
  3. Generate Ent code:

    go generate ./engine/ent
  4. Install dependencies:

    go mod download
  5. Run with hot reload:

    air

    Or run directly:

    go run cmd/server/main.go

Development

Database

  • PostgreSQL runs in Docker via docker-compose.yml
  • Primary keys use UUIDv7 (application-generated)
  • Integration tests use separate fixit_test database

Testing

# Run integration tests
go test ./web/integration -v

# Run all tests
go test ./...

Code Generation

# Generate Ent schema code
go generate ./engine/ent

Contributors

timruffles

Issues