Desarrollador Java/AngularJS para Sistema de Consecutivos

Job ID: 39422281

Budget: $250 – $750 USD

Buscamos un desarrollador con experiencia en Java (Spring Boot), manejo de bases de datos NoSQL (MongoDB) y desarrollo frontend con AngularJS para construir un sistema distribuido que permita generar, gestionar y validar números consecutivos únicos para documentos oficiales. El sistema debe separar claramente roles de Administrador y Cliente, ofrecer alta disponibilidad, respuesta en tiempo real y mantener un historial ordenado por fecha. El plazo de desarrollo es de 1 a 2 semanas.

Backend (Java 11+ & Spring Boot):

- Login sin contraseña (lista de usuarios predefinidos).

Endpoints REST:

- Generar consecutivo (único por año).

- Subir evidencia (PDF/IMG, ≤5 MB) y cambiar estado.

- Listar consecutivos del Cliente; listar pendientes para Admin.

- Validar/Rechazar y mantener consecutivo reservado si se rechaza.

- Consulta de histórico (acciones con fecha, usuario y detalle).

- Seguridad básica con JWT para roles CLIENTE/ADMIN.

- Almacenamiento de archivos en carpeta /uploads/evidencias/ y rutas en MongoDB.

- Operación atómica para evitar duplicados (findAndModify en MongoDB).

Frontend (AngularJS 1.x):

- Login sencillo (selección de usuario).

Dashboard Cliente:

- “Solicitar consecutivo” + listado propio con estados.

- Subida de evidencia asociada al consecutivo.

Dashboard Administrador:

- Listado de pendientes (estado “Evidencia”).

- Botones “Aprobar”/“Rechazar”.

- Vista de histórico (filtrable por fecha/usuario).

- Comunicación con API vía HTTP/JSON; interfaz funcional y minimalista.

Base de Datos (MongoDB):

- Colecciones: Usuarios (rol), Consecutivos (número, año, usuario, descripción, estado, evidencia, fechas) y Histórico (acciones detalladas).

- Índices por año en Consecutivos y por fecha en Histórico.

Documentación y Pruebas Básicas:

- Incluir README con pasos de instalación, variables de entorno (URL de MongoDB, lista de usuarios), instrucciones de despliegue en Tomcat.

- Ejemplos de documentos en MongoDB (Admin/Cliente).

- Al menos 3–5 pruebas unitarias en backend (JUnit 5) para generación de consecutivos y cambios de estado.