Esta es la solución a la prueba técnica Full Stack, implementando un sistema de gestión bancaria (Clientes, Cuentas, Movimientos). La aplicación está completamente dockerizada.
- Backend: .NET 8 (Clean Architecture, EF Core, xUnit)
- Frontend: Angular 18 (Standalone Components, SCSS, Jest)
- Base de Datos: SQL Server
- Despliegue: Docker (docker-compose con 3 servicios)
Siga estos pasos para levantar la solución completa.
- Docker Desktop instalado y en ejecución.
Ejecute el siguiente comando desde la raíz del repositorio:
docker-compose up -d --buildUna vez que todos los contenedores estén en estado "Up", acceda a las siguientes URLs:
- Frontend (Angular): http://localhost:4200
- Backend API (Swagger): http://localhost:5000/swagger
- API Endpoints: http://localhost:5000/api
- SQL Server: localhost:1433
docker-compose psdocker-compose downPara eliminar también los volúmenes (incluyendo la base de datos):
docker-compose down --volumes- Arquitectura limpia con separación en capas (Domain, Application, Infrastructure, WebAPI)
- Entity Framework Core
- Patrón Repository y Unit of Work
- Validaciones con FluentValidation
- Documentación de API con Swagger/OpenAPI
- Manejo centralizado de excepciones
- Configuración de CORS para el frontend
- Componentes standalone
- Módulos de rutas
- Servicios HTTP para comunicación con API
- Interceptores para manejo de errores
- Estilos con SCSS
- Environment configurations para desarrollo y producción
- SQL Server en contenedor Docker
- Migraciones automáticas al iniciar la aplicación
- Modelos: Clientes, Cuentas, Movimientos
- Restricciones de integridad referencial
devsu/
├── BancoSolucion/ # Solución .NET Backend
│ ├── Domain/ # Entidades y interfaces de dominio
│ ├── Application/ # Casos de uso y DTOs
│ ├── Infrastructure/ # Implementaciones de repositorios, DbContext
│ └── WebAPI/ # Controladores, configuración, Program.cs
├── banco-app/ # Frontend Angular
│ ├── src/app/ # Componentes, servicios, modelos
│ └── environments/ # Configuraciones para dev/prod
└── docker-compose.yml # Orquestación de contenedores
- La base de datos se crea automáticamente al iniciar la aplicación
- Las migraciones de Entity Framework se aplican en el inicio
- El frontend se comunica con el backend a través de CORS configurado
- Los contenedores están en una red bridge compartida
- Los datos de la base de datos persisten en un volumen Docker
cd BancoSolucion
dotnet run --project WebAPIcd banco-app
npm install
ng serve