Corp/README.es.md

3.8 KiB

Idioma: English | Русский | Deutsch | Español

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 y frontend/package.json.

Documentación y contratos

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

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.

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:

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:

cd backend
celery -A eusrr_backend worker -l info
celery -A eusrr_backend beat -l info

Frontend:

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

cd backend
pytest
python manage.py check
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.