Saltar al contenido principal

Preguntas Frecuentes (FAQ)

Preguntas frecuentes sobre Floutic, desarrollo, despliegue y uso.

General

¿Qué es Floutic?

Floutic es un marketplace especializado en automatización de procesos para pymes. Conectamos empresas españolas con expertos verificados en n8n, Make, Zapier y Airtable.

¿Cómo empiezo?

Consulta la Guía de Inicio Rápido para empezar rápidamente con Floutic.

¿Qué tecnologías usa Floutic?

Backend:

  • FastAPI - Framework web Python
  • PostgreSQL - Base de datos relacional
  • Redis - Cache y sesiones
  • Stripe - Procesamiento de pagos
  • GoHighLevel - CRM

Frontend:

  • Astro - Framework SSR
  • React - Componentes interactivos
  • Tailwind CSS - Estilos
  • shadcn/ui - Componentes UI

Infraestructura:

  • Docker - Containerización
  • Docker Compose - Orquestación
  • Caddy/Traefik - Reverse proxy

Desarrollo

¿Cómo desarrollo localmente?

Consulta la Guía de Desarrollo para instrucciones detalladas sobre desarrollo local.

Inicio rápido:

# Iniciar todo el entorno
./start-dev.sh

# O manualmente
docker compose up -d

¿Cómo ejecuto los tests?

Backend:

./scripts/test_backend.sh
# O
./scripts/test_backend.sh

Frontend:

# Tests unitarios
./scripts/test_frontend_unit.sh

# Tests E2E
./scripts/test_e2e.sh

Nota: Para E2E, la plantilla recomendada es .env.e2e. El script ./scripts/test_e2e.sh aplica overrides sobre .env y luego lo restaura.

¿Cómo agrego nueva funcionalidad?

  1. Crear una rama nueva: git checkout -b feature/nueva-funcionalidad
  2. Desarrollar la funcionalidad
  3. Escribir tests (unitarios y E2E si es necesario)
  4. Verificar que todos los tests pasen
  5. Abrir un Pull Request

¿Cómo agrego un nuevo endpoint?

  1. Crear el endpoint en backend/app/api/v1/endpoints/
  2. Añadir el router en backend/app/api/v1/api.py
  3. Crear schemas en backend/app/schemas/
  4. Escribir tests en backend/tests/endpoints/
  5. Documentar en API Endpoints

Despliegue

¿Cómo despliego en producción?

Consulta la Guía de Despliegue para instrucciones completas de despliegue.

Pasos principales:

  1. Configurar variables de entorno
  2. Configurar base de datos
  3. Configurar Redis
  4. Configurar Stripe (modo live)
  5. Configurar GoHighLevel
  6. Ejecutar migraciones
  7. Iniciar servicios

¿Qué variables de entorno necesito?

Consulta Variables de Entorno para la lista completa de variables requeridas.

Variables críticas:

  • DATABASE_URL - Conexión a PostgreSQL
  • REDIS_URL - Conexión a Redis
  • JWT_SECRET - Secret para tokens JWT
  • STRIPE_SECRET_KEY - API key de Stripe
  • GHL_API_KEY - API key de GoHighLevel

¿Cómo actualizo en producción?

  1. Hacer backup de la base de datos
  2. Hacer pull de los cambios
  3. Reconstruir imágenes: docker compose build
  4. Ejecutar migraciones: docker compose exec backend alembic upgrade head
  5. Reiniciar servicios: docker compose restart

Integraciones

¿Cómo configuro Stripe?

Consulta Configuración de Stripe para instrucciones paso a paso.

Pasos principales:

  1. Crear cuenta en Stripe
  2. Obtener API keys (test y live)
  3. Configurar Stripe Connect
  4. Configurar webhooks
  5. Configurar variables de entorno

¿Cómo configuro GoHighLevel?

Consulta Configuración de GoHighLevel para instrucciones completas.

Pasos principales:

  1. Obtener API key de GHL
  2. Obtener Location ID
  3. Configurar webhook en GHL
  4. Configurar variables de entorno
  5. Probar sincronización

¿Cómo configuro n8n?

Consulta Integración n8n para instrucciones detalladas.

Pasos principales:

  1. Configurar webhook en Floutic (/configuracion)
  2. Crear workflow en n8n
  3. Configurar HTTP Trigger con JWT Auth
  4. Probar webhook

Usuarios y Roles

¿Puedo tener múltiples roles en Floutic?

, Floutic soporta usuarios con múltiples roles. Puedes ser empresa Y experto al mismo tiempo.

Cómo funciona:

  1. Al registrarte: Puedes seleccionar uno o ambos roles (empresa y/o experto)
  2. Perfiles independientes: Cada rol tiene su propio perfil con verificación separada
  3. Cambio de rol: Puedes cambiar entre roles en cualquier momento desde el selector en el header
  4. Dashboards separados: Cada rol tiene su propio dashboard con funcionalidades específicas

Ejemplo:

  • Registro como empresa y experto → Tienes acceso a ambos dashboards
  • Perfil de empresa verificado → Puedes crear proyectos
  • Perfil de experto verificado → Puedes aplicar a proyectos
  • Cambias a rol empresa → Ves dashboard de empresa
  • Cambias a rol experto → Ves dashboard de experto

¿Cómo cambio entre roles?

  1. Selector en el header: Click en el botón con tu rol actual (azul para empresa, esmeralda para experto)
    • Nota: El selector solo aparece si tienes múltiples roles. Si solo tienes un rol, no verás el selector.
    • Nota: Los usuarios admin no ven el selector, incluso si tienen múltiples roles.
  2. Seleccionar nuevo rol: Elige el rol al que quieres cambiar del dropdown
  3. Redirección automática: Serás redirigido al dashboard del nuevo rol

Nota: El rol seleccionado se guarda automáticamente y se mantiene en futuras sesiones.

¿Puedo añadir un rol después de registrarme?

, puedes añadir un nuevo rol en cualquier momento:

  1. Ve a tu configuración de cuenta
  2. Busca la opción "Añadir rol"
  3. Selecciona el rol que quieres añadir (empresa o experto)
  4. Crea el perfil correspondiente para el nuevo rol

Nota: Cada rol requiere su propio perfil con verificación independiente.

¿Los perfiles son independientes?

, cada rol tiene su propio perfil completamente independiente:

  • Perfil de empresa: Información de la empresa, datos fiscales, proyectos
  • Perfil de experto: Portfolio, habilidades, experiencia, aplicaciones
  • Verificación separada: Cada perfil se verifica independientemente
  • Estados diferentes: Un perfil puede estar verificado mientras el otro está pendiente

Seguridad

¿Qué medidas de seguridad tiene Floutic?

Consulta la Documentación de Seguridad para detalles completos.

Medidas implementadas:

  • Autenticación JWT segura con HttpOnly cookies
  • Sistema de session_id único por ventana
  • Protección CSRF
  • Rate limiting multi-nivel
  • Security headers completos
  • Input validation y protección XSS
  • CORS configurado correctamente

¿Cómo funciona la autenticación?

Consulta Autenticación para detalles técnicos.

Flujos disponibles:

  • Autenticación estándar: JWT con tokens en headers
  • Autenticación segura (recomendado): HttpOnly cookies con CSRF protection

¿Cómo funciona el rate limiting?

El rate limiting está configurado en múltiples niveles:

  • Global: 60 requests/minuto (configurable)
  • Por usuario (login): 5 intentos máximo
  • Por IP (login): 20 intentos máximo
  • Reenvío de email de verificación: 3 por hora

Puedes configurarlo con variables de entorno:

RATE_LIMIT_PER_MINUTE=60
LOGIN_RATE_LIMIT_MAX_ATTEMPTS_PER_USER=5
LOGIN_RATE_LIMIT_MAX_ATTEMPTS_PER_IP=20
EMAIL_VERIFICATION_REQUEST_LIMIT_PER_HOUR=3

¿Cómo funciona la verificación de email?

Cuando te registras en Floutic:

  1. Registro: Completa el formulario y te registras
  2. Login automático: Quedas autenticado automáticamente
  3. Email de verificación: Recibes un email con un link de verificación (válido 48 horas)
  4. Banner recordatorio: Ves un banner recordatorio hasta verificar tu email
  5. Verificación: Haces clic en el link del email
  6. Email de bienvenida: Tras verificar, recibes el email de bienvenida

Notas importantes:

  • Restricciones: Se requiere email verificado para crear proyectos (empresas) o aplicar a proyectos (expertos)
  • El banner se puede cerrar temporalmente (reaparece al día siguiente)
  • Puedes solicitar un nuevo email de verificación desde el banner (máximo 3 por hora)
  • El token de verificación expira en 48 horas

Consulta Verificación de Email para más detalles.

Base de Datos

¿Cómo hago backup de la base de datos?

# Backup
docker compose exec postgres pg_dump -U floutic floutic > backup.sql

# Restaurar
docker compose exec -T postgres psql -U floutic floutic < backup.sql

¿Cómo ejecuto migraciones?

# Ver estado actual
docker compose exec backend alembic current

# Aplicar migraciones
docker compose exec backend alembic upgrade head

# Crear nueva migración
docker compose exec backend alembic revision --autogenerate -m "descripción"

¿Cómo reseteo la base de datos?

# Limpiar y cargar datos demo
docker compose exec backend python clean_and_seed.py --scenario full

# Solo limpiar datos de tests E2E
docker compose exec backend python clean_and_seed.py --scenario e2e

Testing

¿Cómo ejecuto todos los tests?

# Backend
./scripts/test_backend.sh

# Frontend unitarios
./scripts/test_frontend_unit.sh

# Frontend E2E
./scripts/test_e2e.sh

# Tests de seguridad
./scripts/test_frontend_security.sh

¿Cómo ejecuto un test específico?

Backend:

./scripts/test_backend.sh tests/endpoints/projects/test_crud.py::TestProjectCrud::test_create_project_empresa -v

Frontend:

docker compose exec frontend npm test -- tests/components/ProjectCard.test.tsx

¿Cómo veo la cobertura de tests?

Backend:

./scripts/test_backend.sh --cov=app --cov-report=html

Frontend:

docker compose exec frontend npm run test:coverage

Troubleshooting

Los servicios no inician

Consulta Troubleshooting para soluciones detalladas.

Verificaciones rápidas:

  1. Verificar que Docker esté ejecutándose
  2. Verificar espacio en disco
  3. Revisar logs: docker compose logs
  4. Verificar variables de entorno

Error de conexión a la base de datos

Soluciones:

  1. Verificar que PostgreSQL esté saludable
  2. Verificar DATABASE_URL
  3. Verificar volúmenes montados
  4. Reiniciar PostgreSQL

Frontend no carga

Soluciones:

  1. Verificar que el backend esté saludable
  2. Revisar logs del frontend
  3. Verificar variables de entorno
  4. Limpiar caché

Más Preguntas

¿Dónde encuentro más información?

¿Cómo reporto un bug?

  1. Revisar si ya existe un issue en GitHub
  2. Crear un nuevo issue con:
    • Descripción del problema
    • Pasos para reproducir
    • Logs relevantes
    • Versión de Docker y sistema operativo

¿Cómo solicito una funcionalidad?

  1. Crear un issue en GitHub con la etiqueta enhancement
  2. Describir la funcionalidad deseada
  3. Explicar el caso de uso
  4. Esperar feedback del equipo

¿Dónde obtengo soporte?

  • Documentación: Revisa la documentación completa
  • GitHub Issues: Para bugs y funcionalidades
  • Email: soporte@floutic.com (para consultas urgentes)