No description
  • Go 75.4%
  • HTML 14.1%
  • CSS 10.2%
  • Nix 0.3%
Find a file
2026-07-16 22:21:59 +03:00
cmd Package schedule library, add Category type, move classifier to internal, add tests 2026-07-16 22:19:20 +03:00
internal Package schedule library, add Category type, move classifier to internal, add tests 2026-07-16 22:19:20 +03:00
pkg/schedule Package schedule library, add Category type, move classifier to internal, add tests 2026-07-16 22:19:20 +03:00
.gitignore Package schedule library, add Category type, move classifier to internal, add tests 2026-07-16 22:19:20 +03:00
AGENTS.md Package schedule library, add Category type, move classifier to internal, add tests 2026-07-16 22:19:20 +03:00
devenv.lock Initial commit: ORM timetable app with slot editor and event CRUD 2026-07-15 20:12:30 +03:00
devenv.nix Initial commit: ORM timetable app with slot editor and event CRUD 2026-07-15 20:12:30 +03:00
devenv.yaml Initial commit: ORM timetable app with slot editor and event CRUD 2026-07-15 20:12:30 +03:00
go.mod Initial commit: ORM timetable app with slot editor and event CRUD 2026-07-15 20:12:30 +03:00
go.sum Initial commit: ORM timetable app with slot editor and event CRUD 2026-07-15 20:12:30 +03:00
README.md Add README 2026-07-16 22:21:59 +03:00
timetable.md Initial commit: ORM timetable app with slot editor and event CRUD 2026-07-15 20:12:30 +03:00

ug-timetable

Summer school timetable editor — Go + GORM + SQLite + HTMX.

Quick start

# Dev server (writeable, for editing)
go build -o server ./cmd/server/
./server timetable.db
# → http://localhost:8080

# Prod server (read-only)
go build -tags readonly -ldflags="-s -w" -o server ./cmd/server/

Migrate from CSV

go build -o migrate ./cmd/migrate/
./migrate data/schedule.csv timetable.db

Deploy

Built for ARM64 Linux on RPi (192.168.1.6), see AGENTS.md.

Library

The core schedule logic lives in pkg/schedule/ and can be imported separately:

import "github.com/denis/ug-timetable/pkg/schedule"

db, _ := schedule.Open("timetable.db")
svc := schedule.New(db)
sched, _ := svc.GetSchedule(1)