Ecosistema académico de escritorio para estudiantes universitarios: marketplace de libros, biblioteca personal, herramientas de estudio y colaboración en tiempo real.
Deploy API:
https://intelectia-api.onrender.com/health
Status: Producción gratuita
Intelectia es un ecosistema académico unificado que opera bajo dos roles integrados: un portal de estudio para estudiantes (biblioteca personal, traducción contextual, gestor de citas) y un panel de venta para proveedores (marketplace, inventario, estadísticas). Ambos contextos coexisten en una única sesión de usuario, eliminando la fragmentación típica de herramientas académicas dispersas y reduciendo la carga cognitiva asociada al cambio constante entre aplicaciones.
El sistema se construyo aplicando arquitectura pura con inversión de dependencias estricta, donde la capa de dominio no conoce infraestructura externa y cada caso de uso se ejecuta mediante un pipeline CQRS validado combinada con contenerización Docker y despliegue en servicios free-tier, garantiza que el proyecto sea práctico sin comprometer la seguridad ni la calidad del código.
Intelectia sigue Clean Architecture con inversión de dependencias estricta en cuatro capas desacopladas:
Intelectia/
├── Domain/ # Entidades, reglas de negocio puras (sin dependencias externas)
├── Application/ # Casos de uso (CQRS con MediatR), validación (FluentValidation)
├── Infrastructure/ # EF Core, repositorios, servicios externos (Stripe, DeepL, Azure)
├── API/ # Controllers, SignalR, middleware, configuración de arranque
├── WPF/ # Cliente de escritorio (zero referencias a UI en ViewModels)
└── Shared/ # DTOs y enums compartidos entre API y cliente
- Patrón Repositorio Específico: Desacoplamos EF Core de la capa de Application para garantizar testabilidad y mantenibilidad.
- Pipeline CQRS con Validación: Cada petición pasa por
ValidationBehavior<TRequest, TResponse>antes de ejecutar su handler, centralizando la validación de entrada. - Soft Delete Global: Todas las entidades heredan de
BaseEntityy aplican un filtro global en EF Core para borrado lógico transparente. - Seguridad de Autenticación: JWT stateless con rotación de refresh tokens, almacenamiento seguro vía Windows Credential Manager, y protección CSRF en OAuth.
# Compilar solución
dotnet build
# Ejecutar pruebas unitarias (cuando se implementen)
dotnet test
# Analizar código con Roslyn Analyzers (configurado por defecto en .NET)
dotnet build /p:EnforceCodeStyleInBuild=trueCada Pull Request a develop o main ejecuta automáticamente:
- Build de todos los proyectos
- Restauración de dependencias
- Validación de estilo de código
- Pruebas unitarias (cuando estén disponibles)
Intelectia está preparado para desplegarse en servicios free-tier como Render.com o Railway.app usando Docker.
Consulta la guía completa en deploy_guide.md para instrucciones paso a paso.
- Base de datos PostgreSQL gestionada (Render Postgres Free Tier, Neon, o Supabase)
- Variables de entorno configuradas para secretos (JWT, Stripe, DeepL, etc.)
- Dominio personalizado (opcional, para evitar waking del servicio free-tier)
Levanta todo el ecosistema (API y PostgreSQL) con un solo comando:
docker-compose up --buildLa API estará disponible en http://localhost:8080 y el health check en /health.
- Desarrollo: Usa
dotnet user-secretspara credenciales locales. - Producción: Inyecta variables de entorno en el panel de tu proveedor de nube.
- Nunca commitees credenciales reales al repositorio.
Este proyecto fue desarrollado como parte de mi formación en TSU Desarrollo de Software Multiplataforma. Representa la aplicación práctica de:
- Clean Architecture y principios SOLID
- Patrón CQRS con MediatR y validación centralizada
- Autenticación JWT con rotación de refresh tokens
- Despliegue en la nube con Docker y PostgreSQL (Free Tier)
- Integración de cliente WPF con API REST en producción
Importante: El contenido del marketplace (libros, grupos, etc.) no está poblado en la base de datos de producción. Para fines de demostración, el flujo de autenticación y la arquitectura están completamente funcionales.
Distribuido bajo la Licencia MIT. Ver LICENSE para más detalles.