Skip to content

JessidC/enterprise-fullstack-dotnet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Enterprise Full-Stack .NET Application (Production-Grade Template)

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.

Stack

  • 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)

Estructura

.
├─ 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

Requisitos

  • 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

Ejecutar con Docker (recomendado)

  1. Copia variables de entorno:
    • src/EnterpriseApp.Api/.env.examplesrc/EnterpriseApp.Api/.env
    • web/.env.exampleweb/.env
  2. Levanta el stack:
docker compose up --build
  1. URLs:
    • API: http://localhost:8080
    • Swagger: http://localhost:8080/swagger
    • Web: http://localhost:5173

Ejecutar sin Docker (dev)

Backend

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 run

Frontend

cd web
npm install
npm run dev

Endpoints principales

  • POST /api/auth/register
  • POST /api/auth/login
  • GET /api/me (requiere Authorization: Bearer <token>)
  • GET /api/admin/ping (requiere rol Admin)

Usuario admin (dev)

En Development se crea un usuario admin automático:

  • Email: admin@demo.com
  • Password: Admin123!

¿Es complejo?

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.)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors