Dozenten Bingo für Web-Engineering
  • Go 76.2%
  • CSS 10.5%
  • Vue 7.7%
  • Just 2.3%
  • PLpgSQL 1.8%
  • Other 1.5%
Find a file
2026-05-14 11:20:43 +02:00
backend test: update all handler tests for new schema, add games and game_cells tests 2026-05-13 12:53:52 +02:00
frontend Merge branch 'main' of https://github.com/OfficerYoda/dozingo 2026-05-14 11:20:43 +02:00
.env.example restructure: split .env.example and README for monorepo 2026-05-06 23:58:42 +02:00
.gitignore ds store gitignore 2026-05-07 14:37:42 +02:00
.mise.toml chore: downgrade go from 1.26 to 1.25 2026-04-22 11:21:30 +02:00
docker-compose.yml restructure: move backend code into backend/ directory 2026-05-06 23:54:23 +02:00
justfile restructure: split justfile into root + backend/frontend modules 2026-05-06 23:57:43 +02:00
README.md restructure: split .env.example and README for monorepo 2026-05-06 23:58:42 +02:00

Dozingo

A bingo game for university lectures.


Repository Structure

This is a monorepo containing both the backend and frontend:

dozingo/
├── backend/    ← Go API server (see backend/README.md)
├── frontend/   ← Web frontend (see frontend/README.md)
├── justfile    ← Project-wide commands + submodule imports
└── docker-compose.yml ← Shared infrastructure (PostgreSQL)

Prerequisites

Install these two things manually. Everything else is handled by mise (a tool version manager), Docker, and package managers.

Tool What it's for Install
mise Manages all dev tools (Go, just, sqlc, golang-migrate, linter) brew install mise or see docs
Docker (with Compose) Runs PostgreSQL locally brew install docker or see docs

How it works: Tool versions are pinned in .mise.toml at the project root. Running mise install (or just setup) installs exactly the right versions of Go, just, sqlc, golang-migrate, and golangci-lint. No more "works on my machine" issues.

Activating mise (one-time)

After installing mise, you need to activate it in your shell so that tools are available automatically. Run one of these depending on your shell, then restart your terminal:

# bash
echo 'eval "$(mise activate bash)"' >> ~/.bashrc

# zsh
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc

# fish
echo 'mise activate fish | source' >> ~/.config/fish/config.fish

Verify everything works:

mise --version       # any recent version
docker --version     # any recent version

Getting Started

# 1. Clone the project
git clone https://github.com/officeryoda/dozingo.git
cd dozingo

# 2. Install all tools (Go, just, sqlc, etc.)
mise install

# 3. Run first-time setup (infra, migrations, codegen, deps)
just setup

# 4. Start the backend server
just backend run

The API server runs at http://localhost:4242

API docs are at http://localhost:4242/docs

Available Commands

Run just (with no arguments) to see top-level commands. Run just --list --list-submodules to see all commands including submodules.

Root commands (infrastructure)

just setup          # First-time setup (tools, infra, backend setup)
just tools          # Install/update project tools via mise
just infra-up       # Start postgres
just infra-down     # Stop postgres
just infra-reset    # Wipe database and restart from scratch
just db-shell       # Open a psql shell to the local database

Backend commands (just backend <command>)

just backend run             # Start the Go server
just backend test            # Run all tests
just backend lint            # Run linter
just backend migrate-up      # Apply pending migrations
just backend migrate-down    # Roll back the last migration
just backend migrate-create  # Create a new migration file
just backend generate        # Regenerate Go code from SQL
just backend seed            # Seed database with sample data
just backend setup           # Backend-specific setup (env, migrations, codegen)

Frontend commands (just frontend <command>)

just frontend run    # Serve the frontend locally
just frontend build  # Build for production
just frontend test   # Run tests