Este es un proyecto de ecommerce que permite a los usuarios comprar pasteles. Los usuarios deben iniciar sesión para poder comprar, y tienen su propio carrito de compras donde pueden agregar y comprar productos. Además, hay una función de administrador que permite agregar, eliminar y modificar productos de la tienda.
El proyecto utiliza las siguientes tecnologías:
- EJS
- CSS
- Bootstrap
- Node.js
- Express
- JavaScript
- JWT para autenticación
- Cookies
- Multer para subir fotos
- PostgreSQL
- Sequelize
- API REST
La página principal (index.ejs) muestra una descripción del negocio.
La página de productos (products.ejs) muestra todos los productos disponibles en la tienda. Al hacer clic en un producto, se muestra una descripción del producto y botones para agregar o quitar el producto del carrito de compras.
Los usuarios autenticados pueden acceder a su propio carrito de compras (carrito.ejs) donde pueden agregar o eliminar productos y finalizar la compra.
La función de administrador permite agregar nuevos productos (admin/agregar.ejs), eliminar productos existentes (admin/eliminar.ejs) y modificar productos existentes (admin/modificar.ejs). El administrador también tiene una página (admin/home.ejs) donde puede ver las ventas realizadas.
Los datos del proyecto se almacenan en una base de datos PostgreSQL, y se utiliza Sequelize como ORM para interactuar con la base de datos. El servidor proporciona una API REST que se comunica con el front-end en EJS, y utiliza los verbos HTTP para crear, leer, actualizar y eliminar recursos.
Para ejecutar el proyecto, sigue los siguientes pasos:
- Clona este repositorio a tu máquina local.
- Instala las dependencias usando el comando
npm install. - Crea un archivo
.enven la raíz del proyecto y agrega las siguientes variables de entorno:PORT: el puerto en el que se ejecutará el servidorSECRETO: una clave secreta para JWTDB: el link de conexión a la base de datos PostgreSQL
- Ejecuta el comando
node server.jspara iniciar el servidor. - Abre tu navegador y visita
http://localhost:puertopara ver la página principal.



