{"id":34748209,"url":"https://github.com/carjizo/customer-management","last_synced_at":"2026-05-25T17:04:00.912Z","repository":{"id":292237649,"uuid":"980243004","full_name":"carjizo/customer-management","owner":"carjizo","description":"customer-management","archived":false,"fork":false,"pushed_at":"2025-05-08T20:08:48.000Z","size":267,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-08T21:23:44.490Z","etag":null,"topics":["api-rest","java","microservices","postman","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/carjizo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2025-05-08T20:03:58.000Z","updated_at":"2025-05-08T20:13:21.000Z","dependencies_parsed_at":"2025-05-08T21:23:53.283Z","dependency_job_id":null,"html_url":"https://github.com/carjizo/customer-management","commit_stats":null,"previous_names":["carjizo/customer-management"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/carjizo/customer-management","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carjizo%2Fcustomer-management","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carjizo%2Fcustomer-management/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carjizo%2Fcustomer-management/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carjizo%2Fcustomer-management/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carjizo","download_url":"https://codeload.github.com/carjizo/customer-management/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carjizo%2Fcustomer-management/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33484522,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-25T14:31:05.219Z","status":"ssl_error","status_checked_at":"2026-05-25T14:31:02.878Z","response_time":57,"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":["api-rest","java","microservices","postman","spring-boot"],"created_at":"2025-12-25T04:56:40.460Z","updated_at":"2026-05-25T17:04:00.906Z","avatar_url":"https://github.com/carjizo.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sistema de gestión de clientes con Spring Boot\n\nMicroservicio que permita manejar el registro, consulta y análisis de datos de clientes\n\n## Funcionalidades\n- Crear nuevos clientes mediante un endpoint que permita registrar nombre,\n  apellido, edad y fecha de nacimiento.\n- Consultar un conjunto de métricas sobre los clientes existentes, como el\n  promedio de edad y la desviación estándar de las edades.\n- Listar todos los clientes registrados con sus datos completos y un cálculo\n  derivado, como una fecha estimada para un evento futuro basado en los\n  datos del cliente (por ejemplo, esperanza de vida).\n\n## Requisitos\n\n- Spring Boot\n- PostgreSQL\n- Java 17\n- Postman\n- Intellij idea\n\n## Base de datos PostgreSQL\n1. CREATE:\n   ```bash\n    CREATE DATABASE customermanagement;\n\n## Instalación\n1. Clonar el repositorio:\n   ```bash\n   git clone https://github.com/carjizo/customer-management.git\n2. Configurar archivo: customer-management/src/main/resources/application-dev.properties\n    ```bash\n    server.port={port} // ejemplo: 8082\n    spring.application.name=customer-management\n    spring.jpa.hibernate.ddl-auto=update\n    spring.datasource.url=jdbc:postgresql://localhost:5432/customermanagement\n    spring.datasource.username=postgres\n    spring.datasource.password={passworDB} // password del usuario postgres\n    spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect\n    jwtKeys.privateKeyPath=jwtKeys/private.key.pem\n    jwtKeys.publicKeyPath=jwtKeys/public.key.pem\n    env.expiration.time.token=3600000\n    env.expiration.time.refresh.token=14400000\n## Inicializa la aplicación\n    Run CustomerManagementApplication.java\n\n## Validar funcionalidades \n1. Registrar usuario\n    ```bash\n   // url: http://localhost:8082/auth/register\n   // method: POST\n   // BODY: \n   {\n    \"idIdent\": \"71498485\",\n    \"password\": \"123\",\n    \"fullName\": \"hernan\",\n    \"age\": 35,\n    \"birthdate\": \"30-06-1989\",\n    \"role\": \"INVITED\" // ADMIN, INVITED\n    }\n    ```\n   \n   ![](./src/main/resources/static/images/register.png)\n2. Obtener JWT (Login)\n    ```bash\n   // url: http://localhost:8082/auth/login\n   // method: POST\n   // BODY: \n   {\n    \"idIdent\": \"71498485\",\n    \"password\": \"123\"\n    }\n    ```\n   ![](./src/main/resources/static/images/login.png)\n3. Conjunto de métricas (total usuarios, edad max, edad min, promedio de edad y desviación estándar de las edades)\n    ```bash\n   // url: http://localhost:8082/users/metrics\n   // method: GET\n   // Authorization: Bearer Token ('token')\n   // el token se obtiene de la respuesta del end point anterior '/auth/login'\n    ```\n   ![](./src/main/resources/static/images/metrics.png)\n4. Listar todos los clientes registrados con sus datos completos, con una fecha estimada de su esperanza de vida\n    ```bash\n   // url: http://localhost:8082/users/with-estimated-death-date/77\n   // method: GET\n   // Se pasa el parámetro 77 ('significa que es la esperanza de vida en Perú')\n   // fuente del valor anterior 'http://datosmacro.expansion.com/demografia/esperanza-vida/peru'\n   // Authorization: Bearer Token ('token')\n   // el token se obtiene de la respuesta del end point anterior '/auth/login'\n    ```\n   ![](./src/main/resources/static/images/listUserWithEstimatedDeathDate.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarjizo%2Fcustomer-management","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcarjizo%2Fcustomer-management","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcarjizo%2Fcustomer-management/lists"}