Una empresa dedicada a la logística de envíos de paquetes comenzará a operar en todo el territorio nacional y nos ha encargado el desarrollo de un sistema de gestión interna y comunicación con clientes. Se busca hacer especial énfasis en la trazabilidad de envíos y una comunicación fluida y eficiente con los clientes.
La empresa cuenta con múltiples agencias, cada una identificada por:
- 🏷️ Nombre
- 📍 Dirección postal
- 🌍 Ubicación (coordenadas de latitud y longitud)
El sistema manejará distintos roles de usuario, diferenciando empleados de clientes:
- 🛠️ Administrador: Gestiona empleados y operaciones generales del sistema.
- 📦 Funcionario: Maneja envíos y el seguimiento de paquetes.
- 👤 Cliente: Realiza envíos y consulta su estado.
Los usuarios se registran con sus datos personales, email y contraseña.
Cada envío posee:
- 🆔 ID único
- 🔎 Número de tracking
- 🏢 Agencia de destino o dirección postal
- 👨💼 Empleado que toma el pedido
- 👤 Cliente que lo realiza
- ⚖️ Peso del paquete
- 🚦 Estado:
EN_PROCESO
|FINALIZADO
- Común: Se entrega en una agencia para retiro en persona.
- Urgente: Se entrega a una dirección postal específica, y su eficiencia se mide por si la entrega ocurre en menos de 24 horas desde su salida.
Cada envío contará con etapas de seguimiento, indicando su recorrido desde la agencia de origen hasta el cliente. Los empleados pueden ingresar comentarios con:
- 📅 Fecha de registro
- 👨💼 Empleado que realizó el comentario
- 📝 Estados posibles:
"Ingresado en agencia de origen"
,"En camino"
,"Listo para retirar"
y otros definidos por los empleados.
- Solo los empleados podrán acceder con sus credenciales.
- Se habilitarán funcionalidades según el rol (
Administrador
,Funcionario
).
- CRUD de empleados (alta, edición y baja).
- Todas las acciones deberán ser auditables, registrando fecha, acción y usuario.
- Registro de tipo de envío, email del cliente, agencia de destino o dirección postal, y peso del paquete.
- Se guardan valores predeterminados.
- Listado de envíos en proceso.
- Posibilidad de finalizar agregando fecha de entrega.
- Listado de envíos en proceso.
- Posibilidad de agregar estado de seguimiento.
- API pública que permite consultar los detalles de un envío mediante su número de tracking.
- Se probará con Postman o Swagger.
En esta fase, se implementarán funcionalidades dirigidas a clientes de la agencia, exponiéndolas mediante endpoints en una Web API Restful y consumiéndolas desde una aplicación MVC con HttpClient.
- Permite consultar el detalle completo de un envío por su número de tracking, incluyendo seguimientos registrados.
- Se implementará autenticación con JWT. Inicialmente los endpoints estarán abiertos y luego se agregarán restricciones.
- El cliente podrá iniciar sesión desde la aplicación Cliente HTTP.
- Los clientes podrán modificar su contraseña ingresando la actual y la nueva (solo si la actual es válida).
- Muestra un historial de envíos ordenado por fecha de creación, con acceso a los seguimientos en una vista separada.
- Permite filtrar envíos por fecha de inicio, fecha de fin y estado.
- Resultados ordenados por número de tracking.
- Se podrá buscar envíos que contengan una palabra clave en sus comentarios de seguimiento.
- Ejemplo:
"Demorado"
o"En camino"
.
✔ Se expondrán los endpoints RESTful adecuados. ✔ La API estará documentada en Swagger.
✔ Se desarrollará una aplicación MVC usando HttpClient. ✔ La solución del cliente estará separada de la API.
✔ Se generarán datos de prueba con ChatGPT. ✔ Se documentará el proceso con:
- 📷 Capturas de prompts utilizados.
- 📜 Scripts de inserts con datos coherentes.