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.
- Descripción del Proyecto
- Tecnologías Utilizadas
- Análisis de Costos
- Estructura del Proyecto
- Instalación y Configuración
- Documentación Adicional
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 empresasobtenerEmpresaPorNit: Obtiene empresa específica por NITobtenerTodasLasSolicitudes: Lista todas las solicitudesobtenerSolicitudPorId: Obtiene solicitud por IDobtenerSolicitudesPorEmpresa: Solicitudes de una empresaobtenerHistorialGeneral: Estadísticas completas del sistemacrearEmpresa: Crea nueva empresacrearSolicitudCredito: Crea nueva solicitudactualizarEstadoSolicitud: Actualiza estado de solicitudactualizarEmpresa: 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
- 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)
- 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
- DeepSeek API: Servicio de IA para chatbot conversacional
- Google OAuth2: Autenticación social segura
- SMTP Gmail: Servicio de envío de correos electrónicos
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
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
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.
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
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
| 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 |
| SMTP Gmail | $0 | |
| TOTAL ACTUAL | $2-10/mes |
| 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 |
| 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.
- Fase Actual: Aprovechar AWS Free Tier durante los primeros 12 meses ($0/mes)
- Free Tiers de GCP: Cloud Run (2M requests/mes), Firebase Hosting (10GB + CDN) son gratis
- DeepSeek vs OpenAI: Ahorro de ~$100-200/mes usando DeepSeek en lugar de GPT-4
- Cloud Run: Solo pago por uso real, escala a 0 cuando no hay tráfico
- Monitoreo: Herramientas incluidas en GCP sin costo adicional
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
- Java 17 o superior
- Node.js 18+ y npm
- Maven 3.6+
- MySQL 8.0+ (o acceso a instancia cloud)
- Git
cd gestioncreditoscorporativos
# Configurar variables de entorno
cp .env.example .env
# Editar .env con tus credenciales
# Compilar y ejecutar
./mvnw clean install
./mvnw spring-boot:runEl backend estará disponible en http://localhost:8080
cd front
# Instalar dependencias
npm install
# Ejecutar servidor de desarrollo
ng serveEl frontend estará disponible en http://localhost:4200
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- API Documentation: Documentación completa de endpoints REST
- Clean Code & Architecture: Guías de desarrollo y mejores prácticas
- Frontend README: Documentación específica del frontend
- Swagger UI: http://localhost:8080/swagger-ui.html (cuando el backend esté ejecutándose)
- API Docs (JSON): http://localhost:8080/api-docs
