Skip to content

alxbryann/Kata

Repository files navigation

Sistema de Gestión de Créditos Corporativos

Sistema completo para la gestión de empresas y solicitudes de crédito corporativo, desarrollado con arquitectura moderna y siguiendo los principios de Clean Architecture y Clean Code.

📋 Tabla de Contenidos

🎯 Descripción del Proyecto

Sistema web full-stack que permite a las empresas gestionar solicitudes de crédito corporativo de manera eficiente. Incluye:

  • Gestión de Empresas: Registro y administración de empresas con sus datos financieros
  • Solicitudes de Crédito: Creación, seguimiento y actualización de estados de solicitudes
  • Chatbot Inteligente: Asistente virtual basado en IA (DeepSeek) para consultas sobre créditos
  • Dashboard Analítico: Visualización de métricas y estadísticas del sistema
  • Autenticación OAuth2: Integración con Google para autenticación segura
  • Notificaciones por Email: Sistema de notificaciones automáticas

Tools Disponibles:

  • obtenerTodasLasEmpresas: Lista todas las empresas
  • obtenerEmpresaPorNit: Obtiene empresa específica por NIT
  • obtenerTodasLasSolicitudes: Lista todas las solicitudes
  • obtenerSolicitudPorId: Obtiene solicitud por ID
  • obtenerSolicitudesPorEmpresa: Solicitudes de una empresa
  • obtenerHistorialGeneral: Estadísticas completas del sistema
  • crearEmpresa: Crea nueva empresa
  • crearSolicitudCredito: Crea nueva solicitud
  • actualizarEstadoSolicitud: Actualiza estado de solicitud
  • actualizarEmpresa: Actualiza datos de empresa

Ventajas de este enfoque:

  • ✅ El chatbot accede a datos reales y actualizados del sistema
  • ✅ Puede realizar operaciones complejas combinando múltiples tools
  • Seguridad: Las tools se ejecutan en el backend con validaciones
  • Flexibilidad: DeepSeek decide cuándo y qué tools usar según el contexto

🏗️ Arquitectura del Sistema

Arquitectura del Sistema

🛠️ Tecnologías Utilizadas

Backend

  • Java 17: Lenguaje de programación moderno con mejoras de rendimiento
  • Spring Boot 4.0.1: Framework para desarrollo rápido de aplicaciones empresariales
  • Spring Data JPA: Abstracción para acceso a datos relacionales
  • Spring Security: Framework de seguridad y autenticación
  • Spring OAuth2 Client: Integración con proveedores OAuth2
  • MySQL: Base de datos relacional robusta y escalable
  • Lombok: Reducción de código boilerplate
  • SpringDoc OpenAPI: Documentación automática de API (Swagger)

Frontend

  • Angular 21.0.4: Framework moderno para aplicaciones web SPA
  • TypeScript: Tipado estático para mayor robustez
  • RxJS: Programación reactiva para manejo de datos asíncronos
  • Angular Material (implícito): Componentes UI modernos

Servicios Externos

  • DeepSeek API: Servicio de IA para chatbot conversacional
  • Google OAuth2: Autenticación social segura
  • SMTP Gmail: Servicio de envío de correos electrónicos

💰 Análisis de Costos

Justificación de Elecciones Tecnológicas

1. Base de Datos: MySQL en AWS Free Tier

Elección Actual: Elegí MySQL desplegado en una instancia EC2 de AWS aprovechando el free tier.

Justificación de mi Decisión:

  • Costo Cero Inicial: AWS ofrece 750 horas/mes de instancias EC2 t2.micro durante el primer año, lo que me permite desarrollar y probar sin costos de infraestructura
  • Aprendizaje: Me da la oportunidad de administrar y configurar MySQL desde cero, lo que refuerza mis habilidades de DevOps
  • Control Total: Tengo control completo sobre la configuración de la base de datos y puedo experimentar sin restricciones
  • Flexibilidad: Puedo migrar fácilmente a servicios administrados cuando el proyecto crezca

Mi Plan de Migración: Aunque actualmente uso EC2 con MySQL, tengo planeado migrar a Cloud SQL de GCP o RDS de AWS cuando el proyecto entre en producción, considerando:

  • Backups automáticos y alta disponibilidad
  • Reducción del tiempo de administración manual
  • Escalabilidad automática según demanda
  • Mayor seguridad con encriptación integrada

2. Backend: Spring Boot en EC2 (Actual) con Migración Planificada a Cloud Run

Elección Actual: Actualmente tengo el backend desplegado como servicio en la misma instancia EC2 de AWS que aloja la base de datos, aprovechando el free tier.

Justificación de mi Decisión Actual:

  • Costo Cero: Mientras esté en el free tier de AWS, no pago por la infraestructura
  • Simplicidad Inicial: Tener backend y base de datos en la misma instancia simplifica el desarrollo inicial
  • Aprendizaje Completo: Me permite aprender sobre configuración de servidores, deployment y administración de servicios

Mi Plan de Migración a Cloud Run de GCP: Tengo planeado migrar el backend a Cloud Run de GCP por las siguientes razones:

  • Pago por Uso Real: Solo pagaré por requests procesados (hasta 2 millones gratis/mes)
  • Auto-scaling Inteligente: Escala automáticamente de 0 a N instancias según el tráfico, sin intervención manual
  • Sin Gestión de Servidores: Me liberará de la administración de la infraestructura para concentrarme en el código
  • Despliegue Rápido: CI/CD integrado con Cloud Build me facilitará actualizaciones continuas
  • 💰 Costo Estimado Post-Free Tier: $10-50/mes para aplicación pequeña-mediana vs $25-100/mes en EC2
  • 📊 Ventaja Principal: Ideal para tráfico variable, reduce costos en períodos de baja demanda

3. Frontend: Angular en Firebase Hosting vs Cloud Storage + CDN

Elección Recomendada: Firebase Hosting

Análisis:

Firebase Hosting

  • CDN Global: Distribución automática en edge locations de Google
  • SSL Automático: Certificados SSL gratuitos y renovación automática
  • Despliegue Simple: Integración con CI/CD
  • Versionado: Rollback instantáneo a versiones anteriores
  • 💰 Costo:
    • 10GB almacenamiento: GRATIS
    • 360MB transferencia/día: GRATIS
    • $0.026/GB adicional de transferencia
    • Estimado: $0-10/mes para aplicación pequeña-mediana
  • 📊 ROI: Excelente para aplicaciones SPA, CDN incluido sin costo adicional

Cloud Storage + Cloud CDN

  • ✅ Control granular sobre configuración
  • ❌ Configuración más compleja
  • 💰 Costo: ~$5-20/mes (storage) + $0.08-0.12/GB (CDN)
  • 📊 ROI: Mejor para casos específicos que requieren configuración avanzada

Recomendación: Firebase Hosting por simplicidad, costo y rendimiento.

4. IA: DeepSeek API para el Chatbot

Elección Actual: Elegí DeepSeek API para el chatbot inteligente.

Justificación de mi Decisión:

  • Costo-Beneficio Excelente: Aproximadamente 70% más económico que OpenAI GPT-4
  • Calidad Suficiente: Rendimiento comparable a GPT-3.5, más que adecuado para consultas sobre créditos
  • Sin Infraestructura: No necesito gestionar servidores, GPUs, ni mantenimiento complejo
  • Escalabilidad Automática: Se adapta automáticamente a la demanda sin configuración adicional
  • 💰 Costo Real Actual:
    • Con uso de desarrollo/pruebas: $2-10/mes
    • Con uso moderado en producción: $10-30/mes
    • Solo pago por tokens realmente utilizados
  • 📊 Ventaja Principal: Excelente relación precio/rendimiento sin compromisos de infraestructura

5. Autenticación: Google OAuth2

Elección Actual: Implementé Google OAuth2 con Spring Security.

Justificación de mi Decisión:

  • Totalmente Gratis: Sin costos por autenticaciones
  • Integración Simple: Spring Security tiene soporte nativo para OAuth2
  • Confianza del Usuario: Los usuarios corporativos confían en Google
  • Sin Vendor Lock-in: Implementación estándar que puedo migrar fácilmente
  • Sin Gestión de Usuarios: Google maneja passwords, MFA, y recuperación de cuentas
  • 💰 Costo: $0/mes

Resumen de Costos

Costos Actuales (Desarrollo con AWS Free Tier)

Servicio Implementación Actual Costo Mensual
Base de Datos MySQL en EC2 t2.micro $0 (Free Tier)
Backend Spring Boot en EC2 t2.micro $0 (Free Tier)
Frontend Local/GitHub Pages $0
IA (Chatbot) DeepSeek API $2-10
Autenticación Google OAuth2 $0
Email SMTP Gmail $0
TOTAL ACTUAL $2-10/mes

Costos Proyectados (Migración a GCP)

Servicio Plan de Migración Costo Mensual Estimado
Base de Datos Cloud SQL pequeña (db-f1-micro) $10-25
Backend Cloud Run $0-15 (2M requests gratis)
Frontend Firebase Hosting $0 (dentro del tier gratis)
IA (Chatbot) DeepSeek API $10-30
Autenticación Google OAuth2 $0
Email SMTP Gmail $0
TOTAL PROYECTADO $20-70/mes

Nota: Los costos proyectados son para una aplicación con tráfico bajo-moderado (< 100K requests/mes). Con los tiers gratuitos de Cloud Run y Firebase, el costo puede mantenerse en el rango bajo.

Estrategia de Optimización de Costos

  1. Fase Actual: Aprovechar AWS Free Tier durante los primeros 12 meses ($0/mes)
  2. Free Tiers de GCP: Cloud Run (2M requests/mes), Firebase Hosting (10GB + CDN) son gratis
  3. DeepSeek vs OpenAI: Ahorro de ~$100-200/mes usando DeepSeek en lugar de GPT-4
  4. Cloud Run: Solo pago por uso real, escala a 0 cuando no hay tráfico
  5. Monitoreo: Herramientas incluidas en GCP sin costo adicional

📁 Estructura del Proyecto

Kata/
├── front/                          # Frontend Angular
│   ├── src/
│   │   ├── app/
│   │   │   ├── core/              # Servicios singleton, interceptors
│   │   │   ├── features/          # Módulos de funcionalidad
│   │   │   │   ├── credito-bot/   # Chatbot de créditos
│   │   │   │   ├── dashboard/     # Dashboard analítico
│   │   │   │   ├── estado-credito/# Estado de solicitudes
│   │   │   │   ├── landing/       # Página de inicio
│   │   │   │   ├── nueva-empresa/ # Gestión de empresas
│   │   │   │   └── nueva-solicitud/# Solicitudes de crédito
│   │   │   ├── layout/            # Componentes de layout
│   │   │   └── shared/            # Componentes compartidos
│   │   └── environments/
│   └── package.json
│
├── gestioncreditoscorporativos/    # Backend Spring Boot
│   ├── src/main/java/com/bdb/
│   │   └── gestioncreditoscorporativos/
│   │       ├── domain/            # Capa de Dominio
│   │       ├── application/       # Capa de Aplicación
│   │       ├── infrastructure/    # Capa de Infraestructura
│   │       └── presentation/      # Capa de Presentación
│   ├── src/main/resources/
│   │   └── application.properties
│   └── pom.xml
│
├── CLEAN_CODE_ARCHITECTURE.md      # Guías de arquitectura
├── README.md                        # Este archivo
└── API_DOCUMENTATION.md            # Documentación de API

🚀 Instalación y Configuración

Prerrequisitos

  • Java 17 o superior
  • Node.js 18+ y npm
  • Maven 3.6+
  • MySQL 8.0+ (o acceso a instancia cloud)
  • Git

Backend

cd gestioncreditoscorporativos

# Configurar variables de entorno
cp .env.example .env
# Editar .env con tus credenciales

# Compilar y ejecutar
./mvnw clean install
./mvnw spring-boot:run

El backend estará disponible en http://localhost:8080

Frontend

cd front

# Instalar dependencias
npm install

# Ejecutar servidor de desarrollo
ng serve

El frontend estará disponible en http://localhost:4200

Configuración de Variables de Entorno

Crear archivo .env en gestioncreditoscorporativos/:

# Database Configuration
DB_URL=jdbc:
DB_USERNAME=root
DB_PASSWORD=tu_password

# Google OAuth2
GOOGLE_CLIENT_ID=tu_client_id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=tu_client_secret

# DeepSeek API
DEEPSEEK_API_KEY=tu_deepseek_api_key
DEEPSEEK_API_URL=https://api.deepseek.com/v1/chat/completions
DEEPSEEK_API_MODEL=deepseek-chat

# Email Configuration (Gmail SMTP)
MAIL_USERNAME=tu_email@gmail.com
MAIL_PASSWORD=tu_app_password

📚 Documentación Adicional

🔗 Enlaces Útiles

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors