Helpdesk pro školy. Studenti zakládají tikety, učitelé a správci je prioritizují, údržbáři řeší. Správci spravují celý systém za běhu bez restartu serveru.
| Role | Popis |
|---|---|
student |
Zakládá tikety, hlasuje o prioritě |
staff |
Schvaluje urgentní priority a nové uživatele |
maintainer |
Přijímá přiřazení, řeší tikety |
admin |
Plný přístup — uživatelé, stavy, pozvánky, konfigurace |
Nový uživatel žádající o roli staff nebo maintainer čeká ve stavu pending na schválení.
git clone https://github.com/StepanKomis/Ticketa.git
cd Ticketa
cp .env.example .env # doplňte PG_USER a PG_PASSWORD
cp config/ticketa.yaml.example config/ticketa.yaml
make docker-build
make deployAplikace běží na http://localhost:8080, API dokumentace (Swagger) na http://localhost:8080/docs.
Migrace proběhnou automaticky při prvním spuštění.
.env — přístupy k databázi a port serveru (SERVER_PORT, COOKIE_SECURE pro HTTPS).
config/ticketa.yaml — runtime nastavení logování a stavů tiketů. Soubor je volume-mountován; změny přes admin UI jsou zapsány zpět a přežijí restart.
Potřebujete: Go 1.25+, Node.js 22+, Docker, sqlc.
# databáze
docker compose up -d database
# backend (API bez frontendu)
make build && ./build/ticketa
# frontend (React dev server s proxy na Go)
cd client && npm install && npm startPo změně SQL dotazů: make sqlc. Nová migrace = soubor UP_000N.sql v src/database/postgres/migrations/up/ + záznam v migrations.go.
- Tikety — CRUD, priority, hlasování, kategorie, lokace, history
- Komentáře s odpověďmi a soft-delete
- Role a schvalovací workflow (
pending→staff/maintainer) - In-app notifikace (vyřešení, smazání, přiřazení, schválení role/priority)
- E-mailové notifikace (SMTP) pro všechny in-app události
- Uživatelská nastavení oznámení — opt-out e-mailu per typ, celoškolní broadcast pro urgentní tikety
- Soft-delete tiketů (přístupné přes přímou URL, viditelné pro staff/admin)
- Admin panel — uživatelé, pozvánky, stavy tiketů, runtime konfigurace
- Activity log
- Docker nasazení na
scratchimage (~15 MB)
- Reporty a statistiky (počty tiketů, průměrná doba řešení, vytížení údržbářů)
- Adresář uživatelů pro staff
- LDAP/AD přihlášení (schéma připraveno)
- Vícejazyčnost (i18n)