Files
helpdesk/README.md
T

2.5 KiB

HelpDesk ICHN (Frontend)

Frontend Next.js del sistema de HelpDesk (estilo Freshdesk/Zammad).

El backend vive en el proyecto principal: ICHN/sam — backend/SAM.API/Controllers/HelpdeskController.cs (ruta /api/helpdesk/*, datos en schema helpdesk.* de la DB compartida). Este repo es solo frontend.

Estructura

helpdesk/
├── frontend/                   # Next.js 16 + Bootstrap 5
│   └── src/
│       ├── app/               # App Router pages
│       │   ├── (auth)/        # Login
│       │   └── (app)/         # Dashboard, Tickets, KB, Settings
│       ├── components/        # UI reutilizable
│       └── lib/               # API client, auth context
├── gateway/                    # (legado, no se usa en deploy)
├── scripts/                    # (legado, no se usa en deploy)
├── docker-compose.yml          # Solo frontend (red sam-net)
└── README.md

Stack

Componente Tecnología
Frontend Next.js 16 (App Router)
UI Bootstrap 5 + React-Bootstrap
Auth Bearer token propio del backend
Icons / Font Bootstrap Icons / Fira Sans

Desarrollo Local

cd frontend
pnpm install
pnpm dev
# Frontend en http://localhost:3000

Variable de entorno (frontend/.env.local, no versionado):

NEXT_PUBLIC_API_URL=https://api.ichn.local   # dev (.254)
# NEXT_PUBLIC_API_URL=https://api.devops.norteamericano.cl  # prod (.4)

Auth: login con idUsuario + password (valida contra sige_sam_v3.usuario en el backend). El primer integrante del equipo queda admin (bootstrap).

Deploy

Lo publica el deployer de SAM desde este repo (módulo helpdesk): push a main → webhook Gitea → build + up en .4 (https://helpdesk.devops.norteamericano.cl).

Endpoints que consume (backend SAM)

Base: NEXT_PUBLIC_API_URL/api/helpdesk

  • POST /login {idUsuario, password} · GET /me
  • GET /tickets?... · GET /ticket/{id} · POST /tickets · PUT /ticket/{id} (+ /status, /assign) · DELETE /ticket/{id}
  • GET|POST /comments/{ticketId}
  • GET /kb/published · GET /kb/search?q= · GET /kb/categories
  • GET /stats
  • GET|POST /groups · PUT|DELETE /groups/{id} (admin)
  • GET|POST /users · PUT /users/{id} (admin)
  • GET|POST /sla · PUT /sla/{id} (admin)
  • GET /email/templates · PUT /email/templates/{key} · GET /email/log · POST /email/test (admin)