mirror of
https://github.com/mosh-hamedani/helpdesk.git
synced 2026-05-21 11:58:19 +02:00
1.9 KiB
1.9 KiB
****# Helpdesk - AI-Powered Ticket Management System
Project Overview
A ticket management system that uses AI to classify, respond to, and route support tickets. See project-scope.md for full requirements and implementation-plan.md for phased task breakdown.
Tech Stack
- Frontend: React + TypeScript + Vite (port 5173) + shadcn/ui
- Backend: Express + TypeScript + Bun (port 3000)
- Database: PostgreSQL with Prisma ORM
- AI: Claude API (Anthropic)
- Auth: Better Auth (email/password, database sessions)
Project Structure
/client - React frontend (Vite)
/server - Express backend
Development
# Start server
cd server && bun run dev
# Start client
cd client && bun run dev
The client proxies /api/* requests to the server via Vite config.
Key Conventions
- Use Bun as the runtime and package manager (not npm/yarn)
- Use TypeScript throughout
- Use context7 MCP server to fetch up-to-date documentation for libraries
- Use shadcn/ui components for all UI (import from
@/components/ui/*) - Use the
@/path alias for imports (maps to./src/) - Use shadcn's semantic color tokens (e.g.
bg-background,text-muted-foreground,text-destructive) instead of hardcoded Tailwind colors
Authentication
- Library: Better Auth with Prisma adapter
- Server config:
server/src/lib/auth.ts— mounted at/api/auth/{*any}(must be beforeexpress.json()) - Client config:
client/src/lib/auth-client.ts— exportssignIn,signOut,useSession - Middleware:
server/src/middleware/require-auth.ts—requireAuthguard that setsreq.userandreq.session - Route protection (client):
ProtectedRoutecomponent wraps authenticated routes; redirects to/loginif unauthenticated - Sign-up is disabled — users are seeded via
prisma/seed.ts - User roles:
adminandagent(defined as Prisma enum, defaultagent)