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?
- Crear una rama nueva:
git checkout -b feature/nueva-funcionalidad - Desarrollar la funcionalidad
- Escribir tests (unitarios y E2E si es necesario)
- Verificar que todos los tests pasen
- Abrir un Pull Request
¿Cómo agrego un nuevo endpoint?
- Crear el endpoint en
backend/app/api/v1/endpoints/ - Añadir el router en
backend/app/api/v1/api.py - Crear schemas en
backend/app/schemas/ - Escribir tests en
backend/tests/endpoints/ - Documentar en API Endpoints
Despliegue
¿Cómo despliego en producción?
Consulta la Guía de Despliegue para instrucciones completas de despliegue.
Pasos principales:
- Configurar variables de entorno
- Configurar base de datos
- Configurar Redis
- Configurar Stripe (modo live)
- Configurar GoHighLevel
- Ejecutar migraciones
- 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 PostgreSQLREDIS_URL- Conexión a RedisJWT_SECRET- Secret para tokens JWTSTRIPE_SECRET_KEY- API key de StripeGHL_API_KEY- API key de GoHighLevel
¿Cómo actualizo en producción?
- Hacer backup de la base de datos
- Hacer pull de los cambios
- Reconstruir imágenes:
docker compose build - Ejecutar migraciones:
docker compose exec backend alembic upgrade head - Reiniciar servicios:
docker compose restart
Integraciones
¿Cómo configuro Stripe?
Consulta Configuración de Stripe para instrucciones paso a paso.
Pasos principales:
- Crear cuenta en Stripe
- Obtener API keys (test y live)
- Configurar Stripe Connect
- Configurar webhooks
- Configurar variables de entorno
¿Cómo configuro GoHighLevel?
Consulta Configuración de GoHighLevel para instrucciones completas.
Pasos principales:
- Obtener API key de GHL
- Obtener Location ID
- Configurar webhook en GHL
- Configurar variables de entorno
- Probar sincronización
¿Cómo configuro n8n?
Consulta Integración n8n para instrucciones detalladas.
Pasos principales:
- Configurar webhook en Floutic (
/configuracion) - Crear workflow en n8n
- Configurar HTTP Trigger con JWT Auth
- Probar webhook
Usuarios y Roles
¿Puedo tener múltiples roles en Floutic?
Sí, Floutic soporta usuarios con múltiples roles. Puedes ser empresa Y experto al mismo tiempo.
Cómo funciona:
- Al registrarte: Puedes seleccionar uno o ambos roles (empresa y/o experto)
- Perfiles independientes: Cada rol tiene su propio perfil con verificación separada
- Cambio de rol: Puedes cambiar entre roles en cualquier momento desde el selector en el header
- 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?
- 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.
- Seleccionar nuevo rol: Elige el rol al que quieres cambiar del dropdown
- 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?
Sí, puedes añadir un nuevo rol en cualquier momento:
- Ve a tu configuración de cuenta
- Busca la opción "Añadir rol"
- Selecciona el rol que quieres añadir (empresa o experto)
- Crea el perfil correspondiente para el nuevo rol
Nota: Cada rol requiere su propio perfil con verificación independiente.
¿Los perfiles son independientes?
Sí, 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:
- Registro: Completa el formulario y te registras
- Login automático: Quedas autenticado automáticamente
- Email de verificación: Recibes un email con un link de verificación (válido 48 horas)
- Banner recordatorio: Ves un banner recordatorio hasta verificar tu email
- Verificación: Haces clic en el link del email
- 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:
- Verificar que Docker esté ejecutándose
- Verificar espacio en disco
- Revisar logs:
docker compose logs - Verificar variables de entorno
Error de conexión a la base de datos
Soluciones:
- Verificar que PostgreSQL esté saludable
- Verificar
DATABASE_URL - Verificar volúmenes montados
- Reiniciar PostgreSQL
Frontend no carga
Soluciones:
- Verificar que el backend esté saludable
- Revisar logs del frontend
- Verificar variables de entorno
- Limpiar caché
Más Preguntas
¿Dónde encuentro más información?
¿Cómo reporto un bug?
- Revisar si ya existe un issue en GitHub
- 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?
- Crear un issue en GitHub con la etiqueta
enhancement - Describir la funcionalidad deseada
- Explicar el caso de uso
- 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)