{"id":29302011,"url":"https://github.com/pkgzx/sysdeliveryauthapi","last_synced_at":"2026-05-16T22:35:55.551Z","repository":{"id":268190268,"uuid":"903491591","full_name":"pkgzx/sysDeliveryAuthApi","owner":"pkgzx","description":"Authentication Service of Delivery Sistem","archived":false,"fork":false,"pushed_at":"2024-12-24T02:37:01.000Z","size":1029,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-22T18:42:42.927Z","etag":null,"topics":["authentication","delivery","gps","microservice","nestjs"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pkgzx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-14T18:28:10.000Z","updated_at":"2024-12-17T02:46:33.000Z","dependencies_parsed_at":"2024-12-15T03:19:24.027Z","dependency_job_id":"34bd9dd8-4168-4fd4-a232-1f881b32a871","html_url":"https://github.com/pkgzx/sysDeliveryAuthApi","commit_stats":null,"previous_names":["ghostriderdev/sysdeliveryauthapi","pkgzx/sysdeliveryauthapi"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pkgzx/sysDeliveryAuthApi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkgzx%2FsysDeliveryAuthApi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkgzx%2FsysDeliveryAuthApi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkgzx%2FsysDeliveryAuthApi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkgzx%2FsysDeliveryAuthApi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pkgzx","download_url":"https://codeload.github.com/pkgzx/sysDeliveryAuthApi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkgzx%2FsysDeliveryAuthApi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33121337,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T18:38:32.183Z","status":"ssl_error","status_checked_at":"2026-05-16T18:38:29.903Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication","delivery","gps","microservice","nestjs"],"created_at":"2025-07-06T23:09:26.301Z","updated_at":"2026-05-16T22:35:55.536Z","avatar_url":"https://github.com/pkgzx.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sistema de Delivery\n\n## Análisis del Sistema\n\nEl sistema de Delivery/Logística debe permitir:\n1. **Seguimiento de repartos**: Los usuarios pueden ver el estado actual de sus pedidos y su ubicación.\n2. **Optimización de rutas**: El sistema debe calcular las rutas más eficientes para los repartidores basándose en diferentes factores como el tráfico y la distancia.\n3. **Gestión de repartidores**: Incluir la asignación de pedidos, el seguimiento de su ubicación y la gestión de su disponibilidad.\n4. **Estimación de tiempos**: Proveer estimaciones precisas del tiempo de entrega a los clientes.\n5. **Notificaciones en tiempo real**: Informar a los usuarios sobre el estado de su pedido mediante notificaciones por Whatsaap, SMS o correo electrónico.\n\n### Requerimientos Funcionales\n1. Usuarios pueden crear, ver y gestionar sus pedidos.\n2. El sistema debe registrar y mostrar el estado y la ubicación del pedido en tiempo real.\n3. Repartidores pueden ver y actualizar el estado de los pedidos asignados.\n4. El sistema debe optimizar y asignar rutas a los repartidores.\n5. Notificaciones en tiempo real deben ser enviadas a los clientes sobre el estado de sus pedidos.\n6. Administradores pueden gestionar repartidores, pedidos y rutas.\n\n### Requerimientos No Funcionales\n1. **Escalabilidad**: El sistema debe manejar un gran número de usuarios y pedidos.\n2. **Disponibilidad**: Alta disponibilidad para asegurar que el sistema esté operativo 24/7.\n3. **Seguridad**: Proteger los datos de los usuarios y asegurar comunicaciones seguras.\n4. **Desempeño**: Respuestas rápidas y eficientes, especialmente para cálculos de rutas y seguimiento en tiempo real.\n\n## Casos de Uso\n\n### Registrar Usuario\n- **Actor**: Usuario\n- **Descripción**: Permitir a un nuevo usuario registrarse en el sistema.\n- **Precondiciones**: Ninguna\n- **Flujo Principal**:\n  1. El usuario ingresa sus datos (nombre, email, contraseña, dirección, teléfono).\n  2. El sistema valida la información y crea una cuenta.\n- **Postcondiciones**: El usuario está registrado y puede iniciar sesión.\n\n### Iniciar Sesión\n- **Actor**: Usuario\n- **Descripción**: Permitir a un usuario registrado iniciar sesión en el sistema.\n- **Precondiciones**: El usuario debe estar registrado.\n- **Flujo Principal**:\n  1. El usuario ingresa su email y contraseña.\n  2. El sistema verifica la información y permite el acceso.\n- **Postcondiciones**: El usuario está autenticado.\n\n### Crear Pedido\n- **Actor**: Cliente\n- **Descripción**: Permitir a un cliente crear un nuevo pedido.\n- **Precondiciones**: El cliente debe haber iniciado sesión.\n- **Flujo Principal**:\n  1. El cliente ingresa los detalles del pedido (dirección de entrega, descripción del producto).\n  2. El sistema guarda el pedido y lo asigna a un repartidor.\n- **Postcondiciones**: El pedido está creado y asignado.\n\n### Actualizar Estado del Pedido\n- **Actor**: Repartidor\n- **Descripción**: Permitir a un repartidor actualizar el estado de un pedido.\n- **Precondiciones**: El repartidor debe haber iniciado sesión.\n- **Flujo Principal**:\n  1. El repartidor selecciona un pedido asignado.\n  2. El repartidor actualiza el estado del pedido (en camino, entregado).\n  3. El sistema guarda el nuevo estado del pedido.\n- **Postcondiciones**: El estado del pedido está actualizado.\n\n### Ver Estado del Pedido\n- **Actor**: Cliente\n- **Descripción**: Permitir a un cliente ver el estado de sus pedidos.\n- **Precondiciones**: El cliente debe haber iniciado sesión.\n- **Flujo Principal**:\n  1. El cliente selecciona un pedido.\n  2. El sistema muestra el estado actual y la ubicación del pedido.\n- **Postcondiciones**: El cliente puede ver el estado y la ubicación de su pedido.\n\n### Optimizar Ruta\n- **Actor**: Sistema\n- **Descripción**: Calcular la ruta más eficiente para un repartidor.\n- **Precondiciones**: Deben existir pedidos asignados al repartidor.\n- **Flujo Principal**:\n  1. El sistema toma la ubicación actual del repartidor y las direcciones de entrega.\n  2. El sistema calcula la ruta más eficiente.\n  3. El sistema guarda y muestra la ruta al repartidor.\n- **Postcondiciones**: La ruta óptima está calculada y asignada.\n\n### Enviar Notificación\n- **Actor**: Sistema\n- **Descripción**: Enviar notificaciones en tiempo real a los usuarios sobre el estado de sus pedidos.\n- **Precondiciones**: Debe haber un cambio en el estado del pedido.\n- **Flujo Principal**:\n  1. El sistema detecta un cambio en el estado del pedido.\n  2. El sistema envía una notificación al cliente por el método seleccionado (push, SMS, email).\n- **Postcondiciones**: El cliente recibe una notificación con el estado actualizado del pedido.\n\n### Gestionar Repartidores\n- **Actor**: Administrador\n- **Descripción**: Permitir a un administrador gestionar repartidores (asignar pedidos, actualizar disponibilidad).\n- **Precondiciones**: El administrador debe haber iniciado sesión.\n- **Flujo Principal**:\n  1. El administrador selecciona un repartidor.\n  2. El administrador asigna pedidos o actualiza la disponibilidad del repartidor.\n- **Postcondiciones**: Los repartidores están gestionados correctamente.\n\n### Gestionar Usuarios\n- **Actor**: Administrador\n- **Descripción**: Permitir a un administrador gestionar usuarios (crear, editar, bloquear, sancionar).\n- **Precondiciones**: El administrador debe haber iniciado sesión.\n- **Flujo Principal**:\n  1. El administrador selecciona un usuario.\n  2. El administrador realiza la acción deseada (crear, editar, eliminar).\n- **Postcondiciones**: Los usuarios están gestionados correctamente.\n\n### Ver Historial de Pedidos\n- **Actor**: Cliente\n- **Descripción**: Permitir a un cliente ver el historial de sus pedidos.\n- **Precondiciones**: El cliente debe haber iniciado sesión.\n- **Flujo Principal**:\n  1. El cliente selecciona la opción de historial de pedidos.\n  2. El sistema muestra una lista de pedidos anteriores.\n- **Postcondiciones**: El cliente puede ver el historial de sus pedidos.\n\n### Ver Detalles del Pedido\n- **Actor**: Cliente\n- **Descripción**: Permitir a un cliente ver los detalles de un pedido específico.\n- **Precondiciones**: El cliente debe haber iniciado sesión.\n- **Flujo Principal**:\n  1. El cliente selecciona un pedido del historial.\n  2. El sistema muestra los detalles del pedido.\n- **Postcondiciones**: El cliente puede ver los detalles del pedido seleccionado.\n\n### Cancelar Pedido\n- **Actor**: Cliente\n- **Descripción**: Permitir a un cliente cancelar un pedido.\n- **Precondiciones**: El cliente debe haber iniciado sesión y el pedido debe estar en un estado cancelable.\n- **Flujo Principal**:\n  1. El cliente selecciona un pedido en curso.\n  2. El cliente elige cancelar el pedido.\n  3. El sistema actualiza el estado del pedido a cancelado.\n- **Postcondiciones**: El pedido está cancelado, el cliente recibe una notificación. Se genera una penalización si aplica.\n\n### Generar Reportes\n- **Actor**: Administrador\n- **Descripción**: Permitir a un administrador generar reportes sobre el desempeño del sistema (pedidos, repartidores, tiempos de entrega).\n- **Precondiciones**: El administrador debe haber iniciado sesión.\n- **Flujo Principal**:\n  1. El administrador selecciona el tipo de reporte.\n  2. El sistema genera y muestra el reporte.\n- **Postcondiciones**: El administrador puede ver y analizar el reporte generado.\n\n### Actualizar Perfil de Usuario\n- **Actor**: Usuario\n- **Descripción**: Permitir a un usuario actualizar su perfil (nombre, dirección, teléfono, etc.).\n- **Precondiciones**: El usuario debe haber iniciado sesión.\n- **Flujo Principal**:\n  1. El usuario selecciona la opción de editar perfil.\n  2. El usuario actualiza la información deseada.\n  3. El sistema guarda los cambios.\n- **Postcondiciones**: El perfil del usuario está actualizado.\n\n### Recuperar Contraseña\n- **Actor**: Usuario\n- **Descripción**: Permitir a un usuario recuperar su contraseña.\n- **Precondiciones**: El usuario debe haber olvidado su contraseña.\n- **Flujo Principal**:\n  1. El usuario selecciona la opción de recuperar contraseña.\n  2. El usuario ingresa su email.\n  3. El sistema envía un enlace de recuperación de contraseña al email del usuario.\n- **Postcondiciones**: El usuario puede restablecer su contraseña a través del enlace enviado.\n\n### Ver Mapa de Entregas\n- **Actor**: Cliente\n- **Descripción**: Permitir a un cliente ver un mapa con las ubicaciones de sus entregas.\n- **Precondiciones**: El cliente debe haber iniciado sesión.\n- **Flujo Principal**:\n  1. El cliente selecciona la opción de ver mapa de entregas.\n  2. El sistema muestra un mapa con las ubicaciones de las entregas en curso.\n- **Postcondiciones**: El cliente puede ver las ubicaciones de sus entregas en un mapa.\n\n### Soporte al Cliente\n- **Actor**: Usuario\n- **Descripción**: Permitir a un usuario contactar al soporte del sistema.\n- **Precondiciones**: Ninguna\n- **Flujo Principal**:\n  1. El usuario selecciona la opción de soporte.\n  2. El usuario ingresa su consulta o problema.\n  3. El sistema envía la consulta al equipo de soporte.\n- **Postcondiciones**: El usuario ha contactado al soporte y recibirá asistencia.\n\n### Ver Estadísticas de Uso\n- **Actor**: Administrador\n- **Descripción**: Permitir a un administrador ver estadísticas de uso del sistema (número de usuarios, pedidos, repartidores activos, etc.).\n- **Precondiciones**: El administrador debe haber iniciado sesión.\n- **Flujo Principal**:\n  1. El administrador selecciona la opción de ver estadísticas.\n  2. El sistema muestra las estadísticas de uso actualizadas.\n- **Postcondiciones**: El administrador puede ver las estadísticas de uso del sistema.\n\n### Gestionar Notificaciones\n- **Actor**: Administrador\n- **Descripción**: Permitir a un administrador gestionar las notificaciones enviadas a los usuarios.\n- **Precondiciones**: El administrador debe haber iniciado sesión.\n- **Flujo Principal**:\n  1. El administrador selecciona la opción de gestionar notificaciones.\n  2. El administrador configura las notificaciones (contenido, destinatarios, métodos).\n  3. El sistema guarda y aplica la configuración.\n- **Postcondiciones**: Las notificaciones están gestionadas correctamente.\n\n### Ver Opiniones de Clientes\n- **Actor**: Administrador\n- **Descripción**: Permitir a un administrador ver las opiniones y calificaciones de los clientes sobre el servicio.\n- **Precondiciones**: El administrador debe haber iniciado sesión.\n- **Flujo Principal**:\n  1. El administrador selecciona la opción de ver opiniones.\n  2. El sistema muestra las opiniones y calificaciones de los clientes.\n- **Postcondiciones**: El administrador puede ver y analizar las opiniones de los clientes.\n\n### Calificar Pedido\n- **Actor**: Cliente\n- **Descripción**: Permitir a un cliente calificar un pedido entregado.\n- **Precondiciones**: El cliente debe haber iniciado sesión y el pedido debe haber sido entregado.\n- **Flujo Principal**:\n  1. El cliente selecciona un pedido entregado.\n  2. El cliente ingresa su calificación y opinión.\n  3. El sistema guarda la calificación y opinión.\n- **Postcondiciones**: El pedido está calificado y la opinión del cliente está registrada.\n\n### Actualizar Disponibilidad de Repartidor\n- **Actor**: Repartidor\n- **Descripción**: Permitir a un repartidor actualizar su disponibilidad.\n- **Precondiciones**: El repartidor debe haber iniciado sesión.\n- **Flujo Principal**:\n  1. El repartidor selecciona la opción de actualizar disponibilidad.\n  2. El repartidor cambia su estado de disponibilidad.\n  3. El sistema guarda el nuevo estado de disponibilidad.\n- **Postcondiciones**: La disponibilidad del repartidor está actualizada.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkgzx%2Fsysdeliveryauthapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpkgzx%2Fsysdeliveryauthapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkgzx%2Fsysdeliveryauthapi/lists"}