Corp/README.es.md

121 lines
3.8 KiB
Markdown

**Idioma:** [English](README.md) | [Русский](README.ru.md) | [Deutsch](README.de.md) | [Español](README.es.md)
# EUSRR
EUSRR es un portal empresarial interno para empleados, solicitudes, documentos,
compras, planificación, asistencia y comunicación en tiempo real. La aplicación
actual consta de un backend ASGI Django/DRF y un frontend Next.js.
## Funcionalidad
- directorio de empleados, departamentos, puestos, permisos y sincronización LDAP/AD opcional;
- solicitudes, aprobaciones, tareas y cambios de estado con notificaciones;
- documentos, adjuntos, comentarios y confirmaciones;
- compras, rutas de aprobación, presupuestos e inventario;
- calendarios, eventos compartidos y análisis de asistencia mediante LogStorm;
- chats, reacciones, encuestas y notificaciones por una conexión WebSocket autenticada;
- entrega mediante WebSocket, correo electrónico y Web Push.
## Stack
- Backend: Python 3.13, Django 5.2, Django REST Framework, Channels y Daphne.
- Datos y tareas: PostgreSQL, Redis, Celery y Celery Beat.
- Frontend: Next.js 16, React 19, TypeScript, Tailwind CSS, TanStack Table y Recharts.
- Integraciones: LDAP/Active Directory, Web Push y LogStorm.
- Pruebas: pytest/pytest-django, Node test runner, ESLint y build de producción Next.js.
Las versiones fijadas están en [`backend/requirements.txt`](backend/requirements.txt)
y [`frontend/package.json`](frontend/package.json).
## Documentación y contratos
- [Índice de documentación](docs/README.md)
- [HTTP API](docs/guides/API.md)
- [LDAP y Active Directory](docs/guides/LDAP.md)
- [WebSocket y tiempo real](docs/guides/WEBSOCKET.md)
- [Notificaciones](docs/guides/NOTIFICATIONS.md)
Con el backend iniciado, Swagger está en `/api/docs/`, ReDoc en `/api/redoc/`,
OpenAPI en `/api/schema/`, la documentación WebSocket en `/api/ws/docs/` y
AsyncAPI en `/api/ws/schema/`, todos en el puerto 8000.
## Estructura
```text
backend/ Aplicaciones Django, REST API, tareas Celery, migraciones y pruebas backend
frontend/ Aplicación Next.js y pruebas frontend
docs/ Guías actualizadas de API, integraciones, operaciones y desarrollo
```
## Desarrollo local
Se requieren Python 3.13, Node.js 20 o posterior, PostgreSQL y Redis.
`backend/docker-compose.yml` solo crea un entorno Samba AD de pruebas; no es un
stack completo de la aplicación.
```bash
cp .env.example .env
```
El ejemplo utiliza los hostnames de servicio `db` y `redis`. Si los servicios se
ejecutan localmente, cambia `DB_HOST` y `REDIS_HOST` a `127.0.0.1`, establece
`DEBUG=True` y proporciona una base PostgreSQL y credenciales válidas. LDAP está
desactivado en el ejemplo.
Backend:
```bash
cd backend
python3.13 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python manage.py migrate
daphne -b 0.0.0.0 -p 8000 eusrr_backend.asgi:application
```
Celery para notificaciones asíncronas y otras tareas en segundo plano:
```bash
cd backend
celery -A eusrr_backend worker -l info
celery -A eusrr_backend beat -l info
```
Frontend:
```bash
cd frontend
cp .env.example .env.local
npm install
npm run dev
```
Abre `http://localhost:3000`. Next.js redirige las solicitudes HTTP del browser
a `NEXT_PUBLIC_BACKEND_URL`; realtime utiliza el endpoint `/ws/` del backend.
## Verificación
```bash
cd backend
pytest
python manage.py check
```
```bash
cd frontend
npm test
npm run lint
npm run build
```
## Seguridad y datos
Los archivos de entorno, bases locales, uploads, certificados, builds generados
y dependencias se ignoran en Git. No deben añadirse datos de producción ni
secrets al repositorio.
Los settings legacy todavía contienen valores fallback para LDAP y VAPID. Fuera
de un entorno aislado deben sobrescribirse todas las credenciales mediante
variables de entorno y rotarse cualquier clave que haya estado en el código.
También deben revisarse los dominios, branding y DN específicos de la empresa.