Saltar al contenido principal

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

🚀 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