Initial commit: HelpDesk ICHN - .NET 10 backend + Next.js 16 frontend
This commit is contained in:
commit
359f0caf85
90 files changed
+13395
No files matched your search
@@ -0,0 +1,176 @@
|
||||
# HelpDesk ICHN
|
||||
|
||||
Sistema de HelpDesk inspirado en Freshdesk/Zammad, construido con .NET 10 + Next.js 15 + PostgreSQL.
|
||||
|
||||
## Arquitectura
|
||||
|
||||
```
|
||||
helpdesk/
|
||||
├── backend/ # .NET 10 API
|
||||
│ ├── HelpDesk.API/ # Web API (controllers, services, middleware)
|
||||
│ ├── HelpDesk.Data/ # EF Core DbContext + Repositories
|
||||
│ ├── HelpDesk.Models/ # Entities, Enums, DTOs
|
||||
│ └── HelpDesk.sln
|
||||
├── frontend/ # Next.js 15 + Bootstrap 5
|
||||
│ └── src/
|
||||
│ ├── app/ # App Router pages
|
||||
│ │ ├── (auth)/ # Login, Register
|
||||
│ │ └── (app)/ # Dashboard, Tickets, KB, Users
|
||||
│ ├── components/ # Reusable UI components
|
||||
│ └── lib/ # API client, auth context
|
||||
├── gateway/ # Caddy reverse proxy
|
||||
├── scripts/ # DB init scripts
|
||||
├── docker-compose.yml # Full stack orchestration
|
||||
└── README.md
|
||||
```
|
||||
|
||||
## Stack
|
||||
|
||||
| Componente | Tecnología |
|
||||
|--------------------|--------------------------|
|
||||
| Backend API | .NET 10, C# 13 |
|
||||
| ORM | Entity Framework Core 10 |
|
||||
| Database | PostgreSQL 16 |
|
||||
| Cache | Redis 7 |
|
||||
| Frontend | Next.js 15 (App Router) |
|
||||
| UI Framework | Bootstrap 5 + React-Bootstrap |
|
||||
| Authentication | JWT Bearer |
|
||||
| Reverse Proxy | Caddy 2 |
|
||||
| Icons | Bootstrap Icons |
|
||||
| Font | Fira Sans (matching SAM) |
|
||||
|
||||
## Paleta de Colores (SAM)
|
||||
|
||||
| Variable | Valor | Uso |
|
||||
|----------------|-----------|------------------------------|
|
||||
| Primary | #00285d | Navbar, sidebar, headings |
|
||||
| Primary Light | #1a3f7a | Hover states, gradients |
|
||||
| Gradient | #00285d → #1a4a8a | Sidebar, buttons, headers |
|
||||
| Background | #f0f2f5 | Page background |
|
||||
| Card Shadow | rgba(0,0,0,0.08) | Card elevation |
|
||||
|
||||
## Desarrollo Local
|
||||
|
||||
### Prerequisitos
|
||||
- .NET 10 SDK
|
||||
- Node.js 24+
|
||||
- PostgreSQL 16 (o usar Docker)
|
||||
- Redis (o usar Docker)
|
||||
|
||||
### Backend
|
||||
```bash
|
||||
cd backend
|
||||
dotnet restore
|
||||
dotnet run --project HelpDesk.API
|
||||
# API en http://localhost:5000
|
||||
# Swagger en http://localhost:5000/swagger
|
||||
```
|
||||
|
||||
### Frontend
|
||||
```bash
|
||||
cd frontend
|
||||
npm install
|
||||
npm run dev
|
||||
# Frontend en http://localhost:3000
|
||||
```
|
||||
|
||||
### Docker (todo junto)
|
||||
```bash
|
||||
docker compose up -d
|
||||
# Caddy: http://localhost:8080
|
||||
# API: http://localhost:5000
|
||||
# Frontend: http://localhost:3000
|
||||
# PostgreSQL: localhost:5433
|
||||
# Redis: localhost:6381
|
||||
```
|
||||
|
||||
## Datos por Defecto
|
||||
|
||||
### Usuario Admin
|
||||
- Email: admin@helpdesk.local
|
||||
- Password: Admin123!
|
||||
- Rol: SuperAdmin
|
||||
|
||||
### Grupos
|
||||
- Soporte General
|
||||
- Ventas
|
||||
- Desarrollo
|
||||
|
||||
### Políticas SLA
|
||||
- Estándar: Primera respuesta 4h, Resolución 24h
|
||||
- Premium: Primera respuesta 1h, Resolución 8h
|
||||
|
||||
## Endpoints API Principales
|
||||
|
||||
### Auth
|
||||
- `POST /api/auth/login` - Iniciar sesión
|
||||
- `POST /api/auth/register` - Registrar usuario
|
||||
- `GET /api/auth/me` - Usuario actual
|
||||
|
||||
### Tickets
|
||||
- `GET /api/tickets` - Listar tickets (filtros: status, priority, assigneeId, search)
|
||||
- `GET /api/tickets/{id}` - Detalle de ticket
|
||||
- `POST /api/tickets` - Crear ticket
|
||||
- `PUT /api/tickets/{id}` - Actualizar ticket
|
||||
- `DELETE /api/tickets/{id}` - Eliminar ticket
|
||||
- `PUT /api/tickets/{id}/status` - Cambiar estado
|
||||
- `PUT /api/tickets/{id}/assign` - Asignar agente
|
||||
- `POST /api/tickets/{id}/comments` - Agregar comentario
|
||||
- `GET /api/tickets/stats` - Estadísticas
|
||||
|
||||
### Knowledge Base
|
||||
- `GET /api/kb/articles/published` - Artículos publicados
|
||||
- `GET /api/kb/search?q=termo` - Buscar artículos
|
||||
|
||||
### Dashboard
|
||||
- `GET /api/dashboard/stats` - Estadísticas del dashboard
|
||||
|
||||
### Users
|
||||
- `GET /api/users` - Listar usuarios
|
||||
- `GET /api/users/agents` - Listar agentes
|
||||
|
||||
### Groups
|
||||
- `GET /api/groups` - Listar grupos
|
||||
|
||||
### SLA
|
||||
- `GET /api/sla` - Listar políticas SLA
|
||||
|
||||
## Funcionalidades
|
||||
|
||||
### Gestión de Tickets
|
||||
- Crear, editar, eliminar tickets
|
||||
- Estados: Abierto → En Progreso → Pendiente (Cliente/Agente) → Resuelto → Cerrado
|
||||
- Prioridades: Baja, Media, Alta, Urgente
|
||||
- Asignación a agentes y grupos
|
||||
- Comentarios públicos e internos
|
||||
- Historial de actividad
|
||||
- Número de ticket automático (#XXXX)
|
||||
|
||||
### Dashboard
|
||||
- Resumen de tickets por estado
|
||||
- Distribución por prioridad
|
||||
- Tiempo promedio de respuesta
|
||||
- Carga de trabajo por agente
|
||||
- Tickets recientes
|
||||
|
||||
### Knowledge Base
|
||||
- Artículos organizados por categorías
|
||||
- Búsqueda de artículos
|
||||
- Contador de vistas
|
||||
- Publicar/ocultar artículos
|
||||
|
||||
### Autenticación
|
||||
- JWT Bearer tokens
|
||||
- Roles: SuperAdmin, Admin, Agente, Cliente
|
||||
- Registro de nuevos usuarios
|
||||
- Políticas de autorización por rol
|
||||
|
||||
## Diseño
|
||||
|
||||
Inspirado en la interfaz de SAM (sam.norteamericano.cl):
|
||||
- Sidebar azul oscuro con gradiente
|
||||
- Tarjetas blancas con sombras suaves
|
||||
- Fondo gris claro
|
||||
- Tipografía Fira Sans
|
||||
- Badges de color para estados y prioridades
|
||||
- Layout responsive (mobile-first)
|
||||
Reference in new issue
Block a user