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étodo | Endpoint | Descripción |
---|---|---|
GET | /movies | Listar todas las películas |
GET | /movies/{id} | Película por ID |
POST | /movies | Crear 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