Skip to content

lozanomasuno/Templarios-fullstack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Templarios Logo

⚔ Templarios — Sistema de Gestión Full Stack

Orden. Control. Propósito.

Angular Spring Boot Java JWT


📖 ¿Qué es Templarios?

Templarios es una aplicación web full stack empresarial construida con Angular 21 y Spring Boot 3, diseñada para gestionar usuarios y registros operativos con control de acceso basado en roles.

El sistema nació como ejercicio de arquitectura moderna: desde cero se diseñó e implementó una solución escalable, segura y lista para conectarse a una base de datos real en el futuro.


🏗 Lo que se construyó

Backend — Spring Boot 3 · Java 25 · JWT

Se implementó una arquitectura hexagonal por capas con separación clara de responsabilidades:

Capa Contenido
domain Entidades (AppUser, Record, Role) e interfaces de repositorio
application DTOs, servicios (AuthService, RecordService, UserService)
infrastructure Repositorios en memoria, seguridad JWT, controladores REST, CORS
shared Manejador global de excepciones (GlobalExceptionHandler)

Endpoints principales:

Método Ruta Acceso
POST /api/auth/login Público
GET /api/admin/users Solo ADMIN
POST /api/admin/users Solo ADMIN
GET /api/records ADMIN + OPERARIO
POST /api/records ADMIN + OPERARIO
PUT /api/records/{id} ADMIN + propietario
DELETE /api/records/{id} Solo ADMIN

Frontend — Angular 21 · Signals · Zoneless

Se implementaron todas las características modernas de Angular:

  • Standalone Components — sin NgModules
  • Signals (signal, computed, input) — sin @Input() legacy
  • Zoneless (provideZonelessChangeDetection) — sin zone.js
  • Lazy Loading — cada ruta carga su chunk independiente
  • Reactive Forms — login, registro de usuarios, CRUD de registros
  • Guards funcionalesauthGuard, adminGuard, operatorGuard, guestGuard
  • Interceptor funcional — inyecta Bearer token y captura errores 401

Seguridad aplicada

  • Escaneo de CVEs con OWASP Dependency Check
  • Actualización de spring-boot-starter-parent de 3.3.4 → 3.3.13 (corrige CVE-2024-38821, CVE-2024-38816, CVE-2024-38820)
  • Contraseñas cifradas con BCrypt
  • Tokens JWT firmados (HS256, 1 hora de expiración)

🚀 Cómo ejecutar el proyecto

Requisitos previos

  • JDK 25 instalado
  • Maven 3.9+ instalado
  • Node.js 20+ y npm instalados

Paso 1 — Configurar JAVA_HOME

Opción A: Temporal (solo para la terminal actual)

$env:JAVA_HOME = "C:\Users\nlozanoc\.jdk\jdk-25"
$env:PATH = "$env:JAVA_HOME\bin;" + $env:PATH

Opción B: Permanente en el sistema (recomendado)

  1. Busca "Variables de entorno" en el menú Inicio de Windows
  2. En Variables del sistema → clic en Nueva:
    • Nombre: JAVA_HOME
    • Valor: C:\Users\nlozanoc\.jdk\jdk-25
  3. En la variable PathEditarNueva → agrega: %JAVA_HOME%\bin
  4. Haz clic en Aceptar en todas las ventanas
  5. Abre una terminal nueva para que tome efecto

Paso 2 — Ejecutar el Backend

Abre una terminal y ejecuta:

cd "ruta\al\proyecto\templarios\backend"
mvn spring-boot:run

Espera hasta ver en consola:

Started TemplariosBackendApplication in X.XXX seconds

✅ Backend disponible en: http://localhost:8080


Paso 3 — Ejecutar el Frontend

Abre otra terminal y ejecuta:

cd "ruta\al\proyecto\templarios\frontend"
npx ng serve

✅ Frontend disponible en: http://localhost:4200

⚠️ El backend debe estar corriendo antes de abrir la app en el navegador.


🔐 Credenciales de acceso

Usuario Contraseña Rol Acceso
admin Admin123* Administrador Dashboard completo, gestión de usuarios y registros
operario1 Oper123* Operario Solo sus propios registros
operario2 Oper123* Operario Solo sus propios registros

📁 Estructura del proyecto

templarios/
├── backend/                    ← Spring Boot 3 · Java 25
│   ├── src/main/java/
│   │   └── com/templarios/backend/
│   │       ├── application/    (DTOs, Services)
│   │       ├── domain/         (Entidades, Repositorios)
│   │       ├── infrastructure/ (Web, Security, Config)
│   │       └── shared/         (Excepciones globales)
│   └── pom.xml
│
└── frontend/                   ← Angular 21 · Zoneless · Signals
    └── src/app/
        ├── auth/               (Login)
        ├── admin/              (Dashboard admin, gestión usuarios)
        ├── operator/           (Dashboard operario)
        ├── shared/             (Tabla de registros reutilizable)
        └── core/               (Guards, Interceptors, State, Services)

🔮 Próximos pasos recomendados

  • Reemplazar repositorios en memoria → JpaRepository (PostgreSQL)
  • Implementar refresh tokens
  • Añadir paginación en tablas
  • Tests de integración con @SpringBootTest y Cypress E2E
  • Dockerizar con docker-compose (backend + frontend + DB)

Construido con disciplina de arquitecto, espíritu de cruzado.

Templarios

About

JAVA and Angular project about a CRM To manage permissions and productions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors