diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ae2400e..2373f98 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,14 +1,16 @@ -name: 🚦 CI — Validación de Landing +name: 🚦 CI/CD — Validación y Despliegue de Landing on: push: branches: - main + - gybramdev - 'feature/**' - 'fix/**' pull_request: branches: - main + - gybramdev jobs: validar-landing: @@ -22,7 +24,7 @@ jobs: - name: 🟢 Configurar Node.js uses: actions/setup-node@v4 with: - node-version: '20' + node-version: '24' cache: 'npm' - name: 📦 Instalar dependencias @@ -38,3 +40,25 @@ jobs: - name: ❌ Falló la validación if: failure() run: echo "La landing tiene errores. Revisar el reporte de tests." + + desplegar-landing: + name: 🚀 Desplegar a Oracle Cloud + needs: validar-landing + if: github.ref == 'refs/heads/main' && github.event_name == 'push' + runs-on: ubuntu-latest + + steps: + - name: 📥 Checkout del repositorio + uses: actions/checkout@v4 + + - name: 📁 Copiar archivos al servidor web mediante SCP + uses: appleboy/scp-action@v0.1.7 + with: + host: ${{ secrets.SSH_HOST }} + username: ${{ secrets.SSH_USERNAME }} + key: ${{ secrets.SSH_KEY }} + port: 22 + source: "index.html,proteccion-de-datos.html,terminos-del-servicio.html,robots.txt,sitemap.xml,Logo.png" + target: ${{ secrets.REMOTE_TARGET }} + overwrite: true + diff --git a/README.md b/README.md new file mode 100644 index 0000000..7085a3b --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +# Conecta Horizontal — Landing Page + +Landing page oficial de **Conecta Horizontal**, la plataforma de votación electrónica líder en Colombia para asambleas de propiedad horizontal, conjuntos residenciales y centros comerciales. + +Este repositorio contiene la estructura estática del sitio web, la configuración de pruebas de optimización SEO y accesibilidad, y el pipeline de Integración y Despliegue Continuo (CI/CD). + +--- + +## 🚀 Características Técnicas + +* **Maquetación y Estilos:** Construido con HTML5 semántico y estilizado de forma híbrida utilizando [Tailwind CSS](https://tailwindcss.com/) (CDN) y Vanilla CSS para efectos personalizados (Glassmorphism, patrones de grilla, animaciones de flotado). +* **SEO y Marcación Semántica:** + * Metaetiquetas primarias y de geo-targeting optimizadas. + * Tarjetas Open Graph (Facebook/WhatsApp/LinkedIn) y Twitter Cards configuradas. + * Datos estructurados estructurados con múltiples scripts JSON-LD de Schema.org (`Organization`, `LocalBusiness`, `WebSite`, `Service` y `FAQPage`). +* **Sección "Trabaja con Nosotros" (Formulario Seguro):** + * Carga de archivos para hojas de vida en formatos `.pdf`, `.doc` y `.docx` (limite estricto de **5 MB**). + * **Honeypot:** Campo oculto anti-bots que descarta envíos de spam automatizado de forma silenciosa. + * **Math Captcha:** Pregunta matemática generada dinámicamente con JavaScript para verificar la interacción de usuarios reales. + * **Rate Limiting:** Control de frecuencia local mediante `localStorage` que bloquea envíos repetidos del mismo usuario durante 15 minutos. +* **Interactividad y Soporte:** Sección de acordeones animados en JavaScript puro para las Preguntas Frecuentes. + +--- + +## 🧪 Desarrollo Local y Pruebas + +Para trabajar en el proyecto localmente y asegurarte de que ningún cambio rompa el SEO o la accesibilidad, sigue estos pasos: + +### 1. Instalar dependencias +Asegúrate de contar con Node.js y ejecuta en la raíz del proyecto: +```bash +npm install +``` + +### 2. Ejecutar pruebas unitarias +El proyecto utiliza [Jest](https://jestjs.io/) y [Cheerio](https://cheerio.js.org/) para validar que la estructura del HTML, los metadatos SEO esenciales, la jerarquía de encabezados, los atributos de accesibilidad (`alt`, `width`, `height`) y la validez de los scripts JSON-LD sigan funcionando perfectamente. +```bash +npm test +``` + +### 3. Servidor de desarrollo +Puedes levantar un servidor web local para visualizar el sitio en tiempo real ejecutando: +```bash +npx http-server -p 8080 +``` +Luego, abre en tu navegador: `http://localhost:8080/` + +--- + +## 🚦 Pipeline de CI/CD (GitHub Actions) + +El proyecto cuenta con un flujo de automatización configurado en `.github/workflows/ci.yml`. + +Cada vez que se realiza un **Pull Request** o un **Push** a cualquier rama, el workflow ejecuta: +1. **Validación de Landing (CI):** Instala las dependencias y ejecuta `npm test`. Si alguna prueba de SEO o accesibilidad falla, el build falla y te notifica. +2. **Despliegue Continuo (CD):** Si las pruebas pasan y el código se subió a la rama principal `main`, se conecta de forma segura a tu instancia en **Oracle Cloud** y copia mediante SCP los archivos de producción (`index.html`, `Logo.png`, `robots.txt`, `sitemap.xml`, etc.) al directorio web público de tu servidor. + +### Configuración de Secretos en GitHub +Para que el job de despliegue (`desplegar-landing`) se ejecute correctamente, debes configurar los siguientes secretos en la configuración de tu repositorio de GitHub (**Settings > Secrets and variables > Actions**): + +| Secreto | Descripción | Ejemplo | +| :--- | :--- | :--- | +| `SSH_HOST` | Dirección IP pública de tu instancia de Oracle Cloud | `129.146.xx.xx` | +| `SSH_USERNAME` | Nombre de usuario de acceso SSH al servidor | `ubuntu` o `opc` | +| `SSH_KEY` | Clave privada SSH completa (contenido del archivo `.key`/`.pem`) | `-----BEGIN OPENSSH PRIVATE KEY-----...` | +| `REMOTE_TARGET` | Ruta absoluta de la carpeta pública del servidor web | `/var/www/html/` | diff --git a/index.html b/index.html index cf5fbf9..6e02441 100644 --- a/index.html +++ b/index.html @@ -6,8 +6,8 @@ - Conecta Horizontal | Software de Votación Electrónica para Propiedad Horizontal en Colombia - + Conecta Horizontal | Votación Electrónica para Asambleas + @@ -51,6 +51,19 @@ + + @@ -144,7 +203,7 @@ } .bg-grid-pattern { - backgroundImage: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h40v40H0V0zm1 1h38v38H1V1z' fill='%232EBD6E' fill-opacity='0.05'/%3E%3C/svg%3E"); + background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h40v40H0V0zm1 1h38v38H1V1z' fill='%232EBD6E' fill-opacity='0.05'/%3E%3C/svg%3E"); } .animate-float { @@ -164,7 +223,7 @@
- Conecta Horizontal + Conecta Horizontal CONECTA HORIZONTAL @@ -173,8 +232,9 @@
@@ -184,8 +244,9 @@
+ Software de Votación Electrónica

- Decisiones Claras,
Votaciones Seguras + Conecta Horizontal:
Decisiones Claras, Votaciones Seguras

Modernice sus asambleas de copropietarios de propiedad horizontal con nuestra plataforma líder en @@ -194,7 +255,7 @@

Iniciar + class="btn-main px-8 py-4 bg-primary text-white font-bold rounded-xl hover:scale-105 transition-transform text-center shadow-xl shadow-primary/20">Iniciar una Votación Ver @@ -277,7 +338,7 @@

Coeficientes Ponderados

-

Equipos Audiovisuales Profesional

+

Equipos Audiovisuales Profesionales

@@ -373,6 +434,29 @@

Redacción de Actas

+
+
+

Nuestra Garantía de Cumplimiento

+

+ Ofrecemos un sistema 100% auditable y adaptado a la legislación colombiana. Si el quórum o la votación presentan fallos técnicos que alteren la legalidad del acta, te brindamos soporte legal y tecnológico inmediato sin costo adicional. +

+
+
+ 100% Legal +

Cumplimiento estricto de la Ley 675 de 2001 para asambleas presenciales, virtuales y mixtas.

+
+
+ Cero Errores +

Monitoreo de quórum y coeficientes en tiempo real validados mediante logs de auditoría.

+
+
+ Soporte 24/7 +

Soporte técnico y legal especializado antes, durante y después de la asamblea.

+
+
+
+
+
@@ -440,7 +524,282 @@

Cálculo de Quórum

-
+
+ +
+ +
+
+
+ Soporte y Respuestas +

Preguntas Frecuentes

+

Resolvemos tus dudas sobre el cumplimiento legal, seguridad y funcionamiento de nuestra plataforma de votación electrónica.

+
+ +
+ +
+ +
+
+

+ Conecta Horizontal es una plataforma especializada en votación electrónica para asambleas de propiedad horizontal, conjuntos residenciales y centros comerciales en Colombia. Facilitamos la toma de decisiones mediante quórum en tiempo real, votaciones seguras por coeficientes y autenticación por WhatsApp, haciendo las asambleas más ágiles, transparentes y 100% legales. +

+
+
+
+ + +
+ +
+
+

+ Sí, nuestra plataforma está completamente adaptada para cumplir con la legislación colombiana (Ley 675 de 2001). Garantiza la validez legal de las asambleas virtuales y mixtas mediante un estricto control de identidad, registro detallado de asistencia (quórum deliberatorio y decisorio) y generación de reportes y actas auditables en cumplimiento de los requisitos de la ley. +

+
+
+
+ + +
+ +
+
+

+ Cada copropietario recibe un enlace de acceso único y personalizado directamente en su WhatsApp. No es necesario descargar aplicaciones adicionales. Al hacer clic, el sistema valida su identidad y asocia automáticamente sus coeficientes de copropiedad o representaciones autorizadas para que pueda votar de forma rápida y segura. +

+
+
+
+ + +
+ +
+
+

+ El software realiza el cálculo de forma automática e instantánea. Al ingresar un copropietario (o registrarse su poder), el sistema suma su coeficiente al quórum de la asamblea. Al votar, el resultado se calcula ponderando el coeficiente de cada inmueble registrado, evitando errores humanos y demoras en el conteo manual. +

+
+
+
+ + +
+ +
+
+

+ Además de nuestro software, ofrecemos soporte técnico presencial en Cartagena y la Costa Caribe, alquiler de equipos audiovisuales de alta gama (video proyectores 3LCD, telones de alta definición y sonido profesional), grabación del evento y servicios de redacción y transcripción de actas oficiales. +

+
+
+
+
+
+
+ + + +
CONECTA Legal

Datos
  • Términos del Servicio
  • -
  • Ley 675 de 2001 ↗
  • @@ -471,6 +830,174 @@

    Contacto

    + + \ No newline at end of file