{"id":21894305,"url":"https://github.com/emmaisaac/ejercicio-backend-contacts","last_synced_at":"2026-05-04T12:35:50.848Z","repository":{"id":256871798,"uuid":"849058860","full_name":"EmmaIsaac/ejercicio-backend-contacts","owner":"EmmaIsaac","description":null,"archived":false,"fork":false,"pushed_at":"2024-09-13T02:10:13.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-09T01:03:20.508Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/EmmaIsaac.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}},"created_at":"2024-08-28T22:44:33.000Z","updated_at":"2024-09-13T02:10:16.000Z","dependencies_parsed_at":"2024-09-13T14:57:30.238Z","dependency_job_id":"a0629f38-253d-4e80-8fbf-2cea29208ab9","html_url":"https://github.com/EmmaIsaac/ejercicio-backend-contacts","commit_stats":null,"previous_names":["emmaisaac/ejercicio-backend-contacts"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/EmmaIsaac/ejercicio-backend-contacts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmmaIsaac%2Fejercicio-backend-contacts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmmaIsaac%2Fejercicio-backend-contacts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmmaIsaac%2Fejercicio-backend-contacts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmmaIsaac%2Fejercicio-backend-contacts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EmmaIsaac","download_url":"https://codeload.github.com/EmmaIsaac/ejercicio-backend-contacts/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmmaIsaac%2Fejercicio-backend-contacts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32607808,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"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":[],"created_at":"2024-11-28T13:21:41.488Z","updated_at":"2026-05-04T12:35:50.831Z","avatar_url":"https://github.com/EmmaIsaac.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Consigna del Ejercicio\n\n## Objetivo:\n\nDesarrollar un sistema de gestión de contactos en Node.js que permita listar,\nagregar, y eliminar contactos a través de la línea de comandos. Los contactos se\nalmacenarán en un archivo JSON y deben incluir información adicional como el número de\nteléfono y la dirección de correo electrónico.\nRequisitos:\n\n### Estructura del objeto de contacto:\n\n○ id: Identificador único (UUID).\n○ nombre: Nombre completo del contacto (debe contener más de 4\ncaracteres).\n○ telefono: Número de teléfono (debe ser solo numérico).\n○ email: Dirección de correo electrónico (debe contener un arroba @).\n○ favorito: Un campo booleano (true o false) que indica si el contacto es\nfavorito.\n\n### Funcionalidades:\n\n○ Listar contactos: Muestra todos los contactos almacenados en el archivo\nJSON, con la opción de filtrar solo los contactos marcados como favoritos.\n○ Agregar contacto: Permite agregar un nuevo contacto con todos los campos\nmencionados, realizando las siguientes validaciones:\n■ El nombre debe contener más de 4 caracteres.\n■ El número de teléfono debe ser solo numérico.\n■ El email debe contener un arroba (@).\n○ Eliminar contacto: Permite eliminar un contacto por su id.\n\n### Consideraciones:\n\n○ Implementar validaciones para asegurarse de que el nombre, telefono, y\nemail cumplan con los requisitos antes de agregar un nuevo contacto.\n○ El campo favorito debe ser opcional al agregar un contacto y, por defecto,\nestar en false.\n○ Al eliminar un contacto, debe mostrarse un mensaje de confirmación con el\nnombre del contacto eliminado.\n\n### Comandos:\n\n○ node index.js list [favoritos]: Lista todos los contactos o solo los\nfavoritos si se proporciona el argumento favoritos.\n○ node index.js add \"Nombre del Contacto\" \"Telefono\"\n\"Email\" [favorito]: Agrega un nuevo contacto.\n○ node index.js delete \"ID_del_Contacto\": Elimina un contacto por\nsu id.\nEste ejercicio desafía a los alumnos a implementar un sistema similar al anterior, pero con\nuna estructura de datos más compleja y validaciones adicionales, lo que les permitirá\nafianzar sus habilidades en la gestión y validación de datos en Node.js.\n# ejercicio-backend-contacts\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femmaisaac%2Fejercicio-backend-contacts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femmaisaac%2Fejercicio-backend-contacts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femmaisaac%2Fejercicio-backend-contacts/lists"}