Files
helpdesk/README.md
T

73 lines
2.5 KiB
Markdown

# 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
```bash
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)