Backend - Introducción
El backend de Floutic está construido con FastAPI, PostgreSQL, Redis y Stripe Connect.
🚀 Características Principales
- ✅ Autenticación JWT con refresh tokens, rate limiting y Redis cache
- ✅ Gestión unificada de perfiles (empresa/experto) con validación completa
- ✅ Sistema de proyectos con matching inteligente, aplicaciones y selección
- ✅ Chat interno completo con archivos, edición, eliminación y descarga
- ✅ Pagos Escrow con Stripe Connect
- ✅ Sistema de reseñas y reputación con estadísticas
- ✅ Sistema de hitos secuenciales con entregas, revisiones y pagos parciales
- ✅ Panel de administración con dashboard Kanban unificado
- ✅ Integración completa con GoHighLevel (contactos, oportunidades, etiquetas)
- ✅ WebSocket para notificaciones en tiempo real
- ✅ Tests exhaustivos (781+ tests pasando)
🛠️ Stack Tecnológico
- FastAPI - Framework web moderno y rápido
- PostgreSQL - Base de datos relacional
- SQLAlchemy - ORM con soporte async
- Pydantic - Validación de datos
- Stripe - Procesamiento de pagos
- Redis - Cache y sesiones
- Docker - Containerización
📋 Requisitos
- Python 3.11+
- PostgreSQL 15+
- Redis 7+
- Docker (opcional pero recomendado)
🏗️ Arquitectura
/app
├── api/v1/endpoints/ # Módulos de endpoints
│ ├── auth/ # Autenticación (modular)
│ │ ├── __init__.py # Router principal
│ │ ├── registration.py # Registro de usuarios
│ │ ├── login.py # Login estándar y seguro
│ │ ├── session.py # Refresh, logout, verify
│ │ ├── email_verification.py # Verificación de email
│ │ ├── password.py # Recuperación de contraseña
│ │ └── roles.py # Gestión de roles
│ ├── users.py # Gestión de usuarios
│ ├── profiles.py # Perfiles empresa/experto
│ ├── projects/ # Proyectos y matching (modular)
│ │ ├── __init__.py # Router principal
│ │ ├── listing.py # Listado de proyectos
│ │ ├── crud.py # CRUD básico
│ │ ├── applications.py # Aplicaciones de expertos
│ │ ├── selection.py # Selección de expertos
│ │ ├── workflow.py # Validación y curación
│ │ ├── disputes.py # Gestión de disputas
│ │ └── helpers.py # Funciones auxiliares
│ ├── chat.py # Sistema de mensajería
│ ├── payments.py # Pagos y escrow
│ ├── reviews.py # Reseñas y reputación
│ ├── milestones.py # Hitos y entregas
│ ├── tools.py # Páginas de herramientas (público)
│ ├── skills.py # Páginas de habilidades (público)
│ ├── admin/ # Panel administrativo (modular)
│ │ ├── __init__.py # Router principal
│ │ ├── users.py # Gestión de usuarios
│ │ ├── projects.py # Gestión de proyectos
│ │ ├── payments.py # Gestión de pagos
│ │ ├── disputes.py # Gestión de disputas
│ │ ├── metrics.py # Métricas y dashboard
│ │ ├── commissions.py # Configuración de comisiones
│ │ ├── skill_pages.py # Páginas de habilidades (admin)
│ │ ├── tool_pages.py # Páginas de herramientas (admin)
│ │ ├── exports.py # Exportación de datos
│ │ ├── system.py # Salud del sistema
│ │ └── helpers.py # Funciones auxiliares
│ └── ghl_integration.py # Integración GoHighLevel
├── models/ # Modelos de base de datos
├── schemas/ # Esquemas Pydantic
├── services/ # Servicios especializados
└── core/ # Configuración y seguridad
📚 Documentación
- Arquitectura - Estructura detallada del backend
- API Endpoints - Documentación completa de endpoints
- Autenticación - Sistema de autenticación
- Proyectos - Gestión de proyectos
- Pagos - Sistema de pagos Escrow
- Integraciones - Integraciones externas
- Testing - Guía de testing
🚀 Inicio Rápido
Opción 1: Docker (Recomendado)
# Iniciar backend con Docker Compose
docker compose up -d backend
# Ver logs
docker compose logs -f backend
# Acceder a la API
curl http://localhost:8000/health
Floutic es 100% Docker-based. El desarrollo local sin Docker no está soportado.
🔗 Enlaces Útiles
- API Docs - Swagger UI interactivo
- README Backend - Documentación completa
- PRD Backend - Requerimientos de producto