Backend API para la aplicación Marketplace Trends - Una plataforma de e-commerce para comprar y vender productos.
- Node.js - Runtime de JavaScript
- Express.js - Framework web para Node.js
- PostgreSQL - Base de datos relacional
- CORS - Middleware para compartir recursos entre orígenes
- JWT - Autenticación y autorización (implementada con SECRET_KEY)
BackEnd_Market_For_Deploy/
├── controllers/ # Controladores de lógica de negocio
│ ├── categoria-controller.js
│ ├── pedido-controller.js
│ ├── producto-controller.js
│ ├── tipo-usuario-controller.js
│ ├── usuario-controller.js
│ └── carrito-controller.js
├── models/ # Modelos de datos
│ ├── categoria-model.js
│ ├── pedido-model.js
│ ├── producto-model.js
│ ├── tipo-usuario-model.js
│ ├── usuario-model.js
│ └── carrito-model.js
├── middlewares/ # Middlewares personalizados
│ ├── authMiddleware.js
│ └── logger-middleware.js
├── config/ # Archivos de configuración
│ └── db-config.js
├── .env.example # Ejemplo de variables de entorno
├── .gitignore # Archivos ignorados por Git
├── index.js # Punto de entrada de la aplicación
└── migrations.js # Migraciones de base de datos
-
Clonar el repositorio:
git clone https://github.com/RodXorDevX/BackEnd_Market_For_Deploy.git cd BackEnd_Market_For_Deploy -
Instalar dependencias:
npm install
-
Configurar variables de entorno: Crear un archivo
.envcon tus credenciales:PORT=3000 NODE_ENV=development SECRET_KEY=tu_clave_secreta_aqui DATABASE_URL=postgresql://usuario:password@localhost:5432/nombre_db
-
Configurar la base de datos:
- Crear una base de datos PostgreSQL
- Ejecutar las migraciones:
node migrations.js
-
Iniciar el servidor:
npm start # o en modo desarrollo: npm run dev
POST /registro- Registrar nuevo usuarioPOST /login- Iniciar sesiónGET /usuarios- Obtener todos los usuarios
GET /productos- Obtener todos los productos (con paginación)GET /productos/filtros- Filtrar productos por precio, categoría, vendedorPOST /productos- Crear nuevo producto (requiere autenticación)PUT /productos/:id- Actualizar productoDELETE /productos/:id- Eliminar producto
GET /categorias- Obtener todas las categoríasPOST /categorias- Crear nueva categoría
POST /carrito- Agregar producto al carritoGET /carrito/:usuarioId- Obtener carrito de un usuarioDELETE /carrito/:itemId- Eliminar item del carrito
POST /pedidos- Crear nuevo pedidoGET /pedidos/:usuarioId- Obtener pedidos de un usuario
Las siguientes variables de entorno son necesarias:
PORT=3000 # Puerto del servidor
NODE_ENV=development # Entorno (development/production)
SECRET_KEY=tu_clave_secreta_aqui # Clave para JWT
DATABASE_URL=postgresql://... # URL de conexión a PostgreSQL
CORS_ORIGIN=http://localhost:5173 # Orígenes permitidos para CORS- Variables de entorno: Las credenciales sensibles se almacenan en
.env(incluido en.gitignore) - CORS: Configurado para permitir solo orígenes específicos
- JWT: Implementado para autenticación y autorización
- Middleware de logging: Registra todas las solicitudes para auditoría
Para propósitos de desarrollo y demostración, se incluyen scripts para crear datos de prueba:
Nota: Estos archivos están excluidos del control de versiones por seguridad.
id,nombre,email,password,direccion,tipo_usuario_id
id,titulo,descripcion,precio,categoria_id,stock,imagen,vendedor_id,calificacion
id,nombre
id,usuario_id,fecha,total,estado
id,usuario_idcarrito_items:carrito_id,producto_id,cantidad
- Variable
NODE_ENV=production - Base de datos PostgreSQL remota (Supabase)
- 🌐 URL en producción: https://back-end-market-for-deploy.vercel.app
- Despliegue automático en cada push a main
- Variable
NODE_ENV=development - Base de datos PostgreSQL local
- CORS configurado para desarrollo
Este proyecto está bajo la Licencia MIT.
- RodrigoCQ4 - Desarrollador principal
Para soporte o preguntas, contactar a: [tu-email@ejemplo.com]