Frontend - Introducción
El frontend de Floutic está construido con Astro, React, Tailwind CSS y shadcn/ui.
🚀 Características Principales
- ✅ Framework: Astro con SSR y React para componentes interactivos
- ✅ Styling: Tailwind CSS con colores personalizados de Floutic
- ✅ UI Components: shadcn/ui para componentes accesibles
- ✅ State Management: Zustand para gestión de estado
- ✅ API Client: Axios con interceptores para autenticación JWT segura
- ✅ Autenticación Segura: Sistema con HttpOnly cookies, CSRF protection y session_id único
- ✅ Testing: Playwright para tests E2E + Vitest para tests unitarios
- ✅ RGPD: Banner de cookies y páginas legales
- ✅ Dashboards optimizados: Paneles rediseñados para empresa, experto y admin
- ✅ Sistema de hitos secuenciales: Gestión completa de milestones con entregas y revisiones
- ✅ Animaciones UX/DX: Sistema de animaciones profesionales con @midudev/tailwind-animations
- ✅ SEO avanzado: FAQ optimizada para intenciones de búsqueda, sistema de ofuscación de enlaces, páginas con noindex
🛠️ Stack Tecnológico
- Astro - Framework SSR
- React - Componentes interactivos
- Tailwind CSS - Estilos
- @midudev/tailwind-animations - Animaciones UX/DX profesionales
- shadcn/ui - Componentes UI accesibles
- Zustand - Gestión de estado
- Axios - HTTP Client
- Playwright - Testing E2E
- Vitest - Testing unitario
📋 Requisitos
- Docker (obligatorio)
- Acceso a
docker compose
🏗️ Arquitectura
/src
├── components/ # Componentes React
│ ├── features/ # Componentes de funcionalidades
│ ├── ui/ # Componentes UI base
│ └── sections/ # Secciones de páginas
├── pages/ # Páginas Astro
├── layouts/ # Layouts de páginas
├── stores/ # Stores Zustand
├── lib/ # Utilidades y helpers
├── hooks/ # React hooks personalizados
└── types/ # TypeScript types
📚 Documentación
- Arquitectura - Estructura detallada del frontend
- Componentes - Componentes principales
- Dashboards - Dashboards de usuario
- Autenticación - Sistema de autenticación
- SEO - Optimización para buscadores
- Testing - Guía de testing
🚀 Inicio Rápido
Docker (Obligatorio)
# Iniciar frontend con Docker Compose
docker compose up -d frontend
# Ver logs
docker compose logs -f frontend
# Acceder al frontend
open http://localhost:3000
🧪 Testing
Tests Unitarios (Vitest)
# Ejecutar tests unitarios
./scripts/test_frontend_unit.sh
# Ejecutar un test específico
./scripts/test_frontend_unit.sh src/components/features/__tests__/DashboardExperto.test.tsx
Tests E2E (Playwright)
# Instalar navegadores
docker compose exec frontend npx playwright install --with-deps
# Ejecutar tests E2E
./scripts/test_e2e.sh
# Ejecutar un spec específico
./scripts/test_e2e.sh auth.spec.ts
Variables E2E: .env.e2e es la plantilla de referencia; ./scripts/test_e2e.sh aplica overrides sobre .env y lo restaura al terminar.
Cobertura E2E: revisa frontend/tests/e2e/E2E_COVERAGE.md y los escenarios en SCENARIOS.md.
🔗 Enlaces Útiles
- README Frontend - Documentación completa
- PRD Frontend - Requerimientos de producto