Movies Videoclub - Full Stack CRUD Application

Movies Videoclub es una aplicación web full-stack desarrollada para la gestión integral de un videoclub, permitiendo administrar un catálogo de películas a través de una interfaz moderna, intuitiva y responsive. El proyecto implementa una arquitectura robusta basada en el patrón MVC, con un backend construido en Node.js y Express y desplegado en Railway, y un frontend en Angular. La solución está pensada tanto para entornos de producción como para aprendizaje de buenas prácticas en desarrollo web.

🛠️ Tecnologías utilizadas

Backend

  • Node.js & Express.js
  • PostgreSQL (alojado en Supabase)
  • Zod (validaciones de datos)
  • CORS (gestión de políticas de acceso)
  • UUID (identificadores únicos)
  • Railway (hosting backend)

Frontend

  • Angular 19
  • Angular Material (componentes UI)
  • TypeScript
  • Firebase Hosting (despliegue)

🔗 Funcionalidades principales

  • Gestión completa de películas: crear, listar, actualizar y eliminar
  • Validaciones robustas de entrada con Zod
  • Interfaz responsive y moderna basada en Material Design
  • Consumo de API RESTful desde el frontend
  • Separación clara entre frontend y backend
  • Despliegue en producción con Railway y Firebase
  • Seguridad mediante CORS y variables de entorno

🌐 API REST

La API expone endpoints RESTful para la gestión de películas:

MétodoEndpointDescripción
GET/moviesListar todas las películas
GET/movies/{id}Película por ID
POST/moviesCrear película
PATCH/movies/{id}Actualizar película
DELETE/movies/{id}Eliminar película

Base URL: https://deployment-api-nodejs-production.up.railway.app/movies


🚀 Instalación y despliegue

# 1. Clona el repositorio
git clone https://github.com/lardevpro/despliegue-api-node.js.git
cd despliegue-api-node.js

# 2. Instala dependencias
npm install

# 3. Configura variables de entorno en backend/.env

# 4. Ejecuta en desarrollo
cd backend && npm run dev   # Backend
cd ../frontend && npm start # Frontend

Despliegue:

  • Backend: Railway (sube la carpeta backend, configura variables de entorno y CORS)
  • Frontend: Vercel o Firebase Hosting

🔒 Seguridad y buenas prácticas

  • CORS configurado para aceptar solo orígenes permitidos
  • Variables de entorno para credenciales y configuración
  • Validaciones exhaustivas de datos en el backend
  • HTTPS habilitado en producción

Keep scrolling