Skip to content

About

Aplicación full stack de galería de fotografías: frontend Angular 18 con panel de administración y login JWT, API REST en Node.js/Express y persistencia en PostgreSQL con Sequelize.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

 

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Galería de fotografías: Angular, Node.js, PostgreSQL y Sequelize

Aplicación web full stack para publicar y administrar una galería de fotografías, con API REST en Node.js y frontend en Angular.

Angular Node.js PostgreSQL Estado Licencia Último commit

Captura de la pantalla de login de la galería (solo frontend)

Tabla de contenidos

Descripción

Proyecto que combina Angular en el frontend con una API Express que persiste datos en PostgreSQL mediante el ORM Sequelize. La galería es pública, y un panel de administración protegido por login permite crear, editar y subir imágenes de fotografías.

Estado del proyecto

Ejercicio académico. Proyecto de práctica que combina Angular, Express y Sequelize; no recibe desarrollo activo.

Características

  • Galería pública paginada (/home/:num).
  • Login con JWT (njwt) y rutas de administración protegidas por guard (/admin/list, /admin/new, /admin/edit/:id).
  • CRUD de fotografías con subida de imagen y generación de miniaturas (sharp).
  • Modelos Sequelize usuarios y fotografias.
  • Frontend con Angular Material, Bootstrap y soporte SSR.

Tecnologías

  • Frontend: Angular 22, Angular Material, Bootstrap 5, RxJS, TypeScript 6.0
  • Backend: Node.js, Express 4, Sequelize 6, pg, njwt, multer
  • Base de datos: PostgreSQL

Requisitos

  • Node.js 22.22.3+, 24.15+ o 26+ (lo exige Angular 22) y npm
  • PostgreSQL con una base de datos llamada galeria-fotografias (configurable con DB_NAME)

Instalación

git clone https://github.com/ViceAguilera/Angular-NodeJS-PostgreSQL-Sequelize.git
cd Angular-NodeJS-PostgreSQL-Sequelize

cd Backend && npm install
cd ../Frontend && npm install

Configuración

Copia Backend/.env.example a Backend/.env y completa las variables:

PORT=8010
DB_HOST=127.0.0.1
DB_PORT=5432
DB_NAME=galeria-fotografias
DB_USER=postgres
DB_PASSWORD=      # Contraseña de PostgreSQL
TOKEN_SECRET=     # Obligatorio: secreto para firmar los JWT

Genera un TOKEN_SECRET largo y aleatorio con node -e "console.log(require('crypto').randomBytes(48).toString('base64url'))". Sin él, el backend no arranca. La lectura de estas variables está en Backend/server/config/config.js.

El proyecto no incluye migraciones ni sync(), por lo que las tablas usuarios y fotografias deben existir según los modelos de Backend/server/models/.

Uso

Backend (puerto 8010 por defecto, o la variable PORT):

cd Backend
npm run dev     # con nodemon
npm start       # sin nodemon

Frontend (espera la API en http://localhost:8010/api/, definida en Frontend/src/app/services/global.ts):

cd Frontend
npm start

Estructura del proyecto

Backend/
  bin/main.js          # Arranque del servidor HTTP
  app.js               # Express, CORS y registro de rutas
  server/
    auth/              # Middleware de autenticación JWT
    config/config.js   # Configuración de base de datos y JWT desde variables de entorno
    controllers/       # Lógica de usuarios y fotografías
    models/            # Modelos Sequelize
    routes/            # Rutas /api/...
    uploads/           # Imágenes subidas y miniaturas
Frontend/
  src/app/components/  # Home, login, admin, listado y formularios
  src/app/services/    # Servicios HTTP, auth y guard

Licencia

Distribuido bajo la licencia MIT. Ver LICENSE.

Autor

Vicente Aguilera Arias — Portafolio · GitHub · LinkedIn

About

Aplicación full stack de galería de fotografías: frontend Angular 18 con panel de administración y login JWT, API REST en Node.js/Express y persistencia en PostgreSQL con Sequelize.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages