Initial commit: TicketingSystem
Some checks failed
Build & Push / Build Client (push) Failing after 9s
Build & Push / Build Server (push) Failing after 28s

Internal ticketing app with CTI routing, severity levels, and n8n integration.

Stack: Express + TypeScript + Prisma + PostgreSQL / React + Vite + Tailwind
- JWT auth for users, API key auth for service accounts (Goddard/n8n)
- CTI hierarchy (Category > Type > Item) for ticket routing
- Severity 1-5, auto-close resolved tickets after 14 days
- Gitea Actions CI/CD building separate server/client images
- Production docker-compose.yml with Traefik integration

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-30 19:38:32 -04:00
commit 21894fad7a
50 changed files with 3293 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
import { TicketStatus } from '../types'
const config: Record<TicketStatus, { label: string; className: string }> = {
OPEN: { label: 'Open', className: 'bg-blue-100 text-blue-800 border-blue-200' },
IN_PROGRESS: { label: 'In Progress', className: 'bg-yellow-100 text-yellow-800 border-yellow-200' },
RESOLVED: { label: 'Resolved', className: 'bg-green-100 text-green-800 border-green-200' },
CLOSED: { label: 'Closed', className: 'bg-gray-100 text-gray-500 border-gray-200' },
}
export default function StatusBadge({ status }: { status: TicketStatus }) {
const { label, className } = config[status]
return (
<span className={`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium border ${className}`}>
{label}
</span>
)
}