Monorepo con backend .NET 8 + frontend React (Vite), listo para entorno enterprise: JWT auth, arquitectura por capas, tests unit/integration, Docker, y CI/CD-ready.
- Backend: .NET 8 (ASP.NET Core Web API), Clean/Layered Architecture (Domain/Application/Infrastructure/Api)
- Auth: JWT Bearer (register/login) + endpoints protegidos
- DB: PostgreSQL (Docker) / SQLite (tests)
- Frontend: React + TypeScript + Vite
- Docs/DevOps: Docker Compose + GitHub Actions
- Extras: Health checks, rate limiting, roles (Admin)
.
├─ src/
│ ├─ EnterpriseApp.Api/
│ ├─ EnterpriseApp.Application/
│ ├─ EnterpriseApp.Domain/
│ └─ EnterpriseApp.Infrastructure/
├─ tests/
│ ├─ EnterpriseApp.Api.IntegrationTests/
│ └─ EnterpriseApp.Application.UnitTests/
├─ web/ # React (Vite)
├─ docker-compose.yml
└─ .github/workflows/ci.yml
- Docker Desktop (recomendado para correr todo sin instalar .NET localmente)
- (Opcional) .NET 8 SDK para desarrollo local del backend
- Node.js para desarrollo local del frontend
- Copia variables de entorno:
src/EnterpriseApp.Api/.env.example→src/EnterpriseApp.Api/.envweb/.env.example→web/.env
- Levanta el stack:
docker compose up --build- URLs:
- API:
http://localhost:8080 - Swagger:
http://localhost:8080/swagger - Web:
http://localhost:5173
- API:
Necesitas .NET 8 SDK instalado. Para entorno local sin Postgres, el proyecto usa SQLite
por defecto en appsettings.Development.json.
cd src/EnterpriseApp.Api
dotnet runcd web
npm install
npm run devPOST /api/auth/registerPOST /api/auth/loginGET /api/me(requiereAuthorization: Bearer <token>)GET /api/admin/ping(requiere rolAdmin)
En Development se crea un usuario admin automático:
- Email:
admin@demo.com - Password:
Admin123!
Sí, es un proyecto “completo”, pero lo estamos construyendo por etapas:
- Primero una base limpia (capas + auth + tests + Docker + CI)
- Luego se agregan features reales (roles/claims, refresh tokens, observabilidad, rate limit, etc.)