{"id":31038894,"url":"https://github.com/breynersmartinez/contactflow","last_synced_at":"2025-09-14T07:42:17.675Z","repository":{"id":312806130,"uuid":"1048801640","full_name":"Breynersmartinez/ContactFlow","owner":"Breynersmartinez","description":"Web application built with Spring Boot that allows you to receive contact messages from a React form and send them directly to an email. Includes management of REST APIs, data validation and sending emails through JavaMailSender. Ideal for integrating contact forms into client websites or web applications.","archived":false,"fork":false,"pushed_at":"2025-09-02T06:06:52.000Z","size":10,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-02T06:09:39.072Z","etag":null,"topics":["doc","gmail","hibernate","jpa","postgresql","render","springboot","swagger"],"latest_commit_sha":null,"homepage":"","language":"Java","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/Breynersmartinez.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-02T03:45:55.000Z","updated_at":"2025-09-02T06:06:55.000Z","dependencies_parsed_at":"2025-09-02T06:19:53.061Z","dependency_job_id":null,"html_url":"https://github.com/Breynersmartinez/ContactFlow","commit_stats":null,"previous_names":["breynersmartinez/contactflow"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/Breynersmartinez/ContactFlow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Breynersmartinez%2FContactFlow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Breynersmartinez%2FContactFlow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Breynersmartinez%2FContactFlow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Breynersmartinez%2FContactFlow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Breynersmartinez","download_url":"https://codeload.github.com/Breynersmartinez/ContactFlow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Breynersmartinez%2FContactFlow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275076542,"owners_count":25401314,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-14T02:00:10.474Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["doc","gmail","hibernate","jpa","postgresql","render","springboot","swagger"],"created_at":"2025-09-14T07:42:16.788Z","updated_at":"2025-09-14T07:42:17.664Z","avatar_url":"https://github.com/Breynersmartinez.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ContactFlow\nWeb application built with Spring Boot that allows you to receive contact messages from a React form and send them directly to an email. Includes management of REST APIs, data validation and sending emails through JavaMailSender. Ideal for integrating contact forms into client websites or web applications.\n\n# Propósito y alcance\nEste documento proporciona una descripción general de alto nivel de ContactFlow, una aplicación Spring Boot que procesa\nlos envíos de formularios de contacto de clientes web y los envía por correo electrónico. ContactFlow sirve como un servicio\nde middleware que conecta aplicaciones web (principalmente formularios React) con sistemas de entrega de correo electrónico\nmientras conserva los datos de contacto en una base de datos PostgreSQL.\n\nEsta página cubre la arquitectura general del sistema, los componentes principales y \nlos patrones de integración. Para obtener información de configuración detallada,\nconsulte Configuración de la aplicación. Para conocer los puntos finales y el uso específicos \nde la API, consulte Capa API REST. Para conocer los procedimientos de compilación e implementación,\nconsulte Construcción e implementación.\n\n# Propósito del sistema\n\nContactFlow está diseñado como un servicio de procesamiento de formularios de contacto con las siguientes funciones principales:\n\n- Procesamiento de formularios de contacto: Acepta envíos de contactos a través de puntos finales de API REST\n- Persistencia de los datos: Almacena información de contacto en una base de datos PostgreSQL\n- Notificaciones por correo electrónico: Envía notificaciones por correo electrónico mediante la integración SMTP de Gmail\n- Integración entre orígenes: Permite la integración con aplicaciones web externas y formularios React\n\nEl sistema implementa una arquitectura en capas limpia siguiendo las convenciones de Spring Boot para mayor mantenibilidad y escalabilidad.\n\n# Arquitectura de la aplicación principal\nEl siguiente diagrama muestra los principales componentes de la aplicación y sus relaciones utilizando nombres de entidades de código reales:\n![img.png](img.png)\n\n# Componentes principales de la aplicación\n\nEl sistema está organizado en capas distintas con una clara separación de preocupaciones:\n![img_1.png](img_1.png)\n\n# Pila de tecnología\nContactFlow se basa en Spring Boot 3.5.5 con las siguientes dependencias e integraciones clave:\n\n![img_2.png](img_2.png)\n\n# Opciones tecnológicas clave\n![img_3.png](img_3.png)\n\n# Flujo de datos de procesamiento de contactos\nEste diagrama ilustra el flujo completo del envío de un formulario de contacto utilizando nombres de métodos y clases reales:\n![img_4.png](img_4.png)\n\n# Pasos de procesamiento\n\n+ Solicitar recepción: ContactController recibe solicitudes POST en /api/contact punto final\n![img_5.png](img_5.png)\n+ Lógica empresarial: EmailService.sendAndSave() El método maneja responsabilidades duales\n+ Persistencia de los datos: ContactRepository.save() persiste el contacto con CONTACTOS tabla\n+ Entrega por correo electrónico: JavaMailSender configurado por MailConfig envía notificación a través de Gmail SMTP\n+ Respuesta: Confirmación de éxito devuelta al cliente\n\n# Capacidades de integración\n ContactFlow está diseñado para la integración de origen cruzado con aplicaciones web externas:\n\n+ Soporte CORS: Habilita solicitudes de diferentes dominios (aplicaciones React)\n+ API REST: Puntos finales HTTP estándar para el envío de formularios de contacto\n+ Documentación de OpenAPI: Documentación API interactiva disponible en https://contactflow.onrender.com/swagger-ui/index.html#\n+ Configuración del entorno: Configuración externalizada vía application.properties\n+ El sistema se puede integrar en sitios web existentes o utilizarse como un servicio de procesamiento de contactos independiente para múltiples aplicaciones cliente.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbreynersmartinez%2Fcontactflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbreynersmartinez%2Fcontactflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbreynersmartinez%2Fcontactflow/lists"}