Proyecto full-stack educativo desarrollado con Node.js, TypeScript, MySQL y Angular. Incluye funcionalidades básicas de autenticación, gestión de usuarios y roles, y estructura escalable tanto para el backend como el frontend.
Asegúrate de tener instaladas las siguientes herramientas antes de iniciar:
https://nodejs.org/en/download
npm install -g typescript
- Página oficial: https://www.mysql.com/downloads/
- Alternativa rápida para Windows (Laragon):
https://github.com/leokhoa/laragon/releases/download/8.1.0/laragon-wamp.exe
npm install -g @angular/cli@latest
- Visual Studio Code: https://code.visualstudio.com/download
- Warp Terminal: https://www.warp.dev/download
- REST Client (extensión de VSCode):
https://marketplace.visualstudio.com/items/?itemName=humao.rest-client
git clone https://github.com/jebcdev/BasicNgFullStack.git
Dentro del repositorio encontrarás dos carpetas principales:
backend
: Contiene el servidor con conexión a base de datos y toda la lógica del backend.frontend
: Contiene la aplicación web desarrollada en Angular.
Desde la raíz del proyecto, abre una terminal para cada carpeta y ejecuta:
cd backend
npm install --force
cd ../frontend
npm install --force
Esto instalará todas las dependencias necesarias para ambos entornos.
- Abre la carpeta principal del proyecto con tu editor preferido (recomendado: VSCode).
- Ubica el archivo
.env
dentro de la carpetabackend
. Este archivo ya está incluido en el repositorio para facilitar la experiencia educativa.
Contenido base del archivo .env
:
API_PREFIX="/api/v1"
PORT=4000
DB_TYPE=mysql
DB_HOST=localhost
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD=
DB_NAME=angular-basic-auth-management
BCRYPT_SALT=10
JWT_SECRET="aVerySecretString"
Una vez configurado el entorno, transpila TypeScript a JavaScript ejecutando:
cd backend
tsc
Esto generará una carpeta dist/
con el código transpilado.
- Verifica que el servidor de MySQL esté corriendo.
- Crea una base de datos con el mismo nombre que configuraste en
.env
(DB_NAME
).
Desde la carpeta backend
, ejecuta:
npm run dev
Si todo sale bien, deberías ver algo como:
Database Connected
Server Running on: http://localhost:4000/api/v1
Si instalaste la extensión REST Client en VSCode, puedes ejecutar las peticiones HTTP fácilmente.
-
Ve a:
backend/src/utils/requests/http/01-seed.http
-
Haz clic en
Send Request
sobre:
POST {{baseUrl}}/rolesusers HTTP/1.1
Esto te devolverá los roles y usuarios por defecto.
Puedes editar los datos por defecto desde:
backend/src/modules/seeder/controllers/seeder.controller.ts
Importante:
Verifica que la variable @baseUrl
esté correctamente configurada:
@baseUrl = http://localhost:4000/api/v1/seed
Desde la carpeta frontend
, ejecuta:
ng serve -o
Esto abrirá automáticamente el navegador en:
http://localhost:4200/
Para más detalles y demostraciones prácticas, te dejo todo lo demás en el video del repositorio. Youtube: Video
Este proyecto es educativo y open source. Si quieres aportar mejoras, correcciones o nuevas funcionalidades, ¡eres bienvenido!
Juan Esteban Benjumea Correa – JEBC-Dev
GitHub: @jebcdev
YouTube: @jebcdev
WhatsApp: +57 3052850514
Este proyecto es libre y abierto para fines educativos y/o comerciales.
Haz buen uso del código y si puedes, ¡déjale una estrella al repo! ⭐