Creacion de API para una Tienda de ropa
Amason es una aplicación web construida con Node.js, Express y MongoDB que permite gestionar una tienda de ropa desde el lado del cliente y del administrador. Además, incluye una API REST, autenticación, subida de imágenes a Cloudinary, tests automáticos y documentación con Swagger.
- 📄 Vistas HTML dinámicas (SSR) para usuarios y administradores.
- 🛍️ Catálogo de productos filtrado por categoría.
- 🔐 Sistema de autenticación para acceder al dashboard.
- 🧾 API REST pública y privada (requiere autenticación).
- ☁️ Subida de imágenes a Cloudinary.
- 🧪 Tests con Jest y Supertest.
- 📚 Documentación Swagger.
- Clona este repositorio:
git https://github.com/MFlor-PD/PROYECT-BREAK-FULLBACKEND- Instala las dependencias:
npm install- Configura las variables de entorno:
Crea un archivo .env en la raíz del proyecto con el siguiente contenido:
MONGO_URI=
ADMIN_USER=
ADMIN_PASSWORD=
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=Para iniciar la aplicación en desarrollo:
npm run devO en producción:
npm startLa aplicación se ejecutará en:
👉 http://localhost:3000
Para acceder al panel de administración:
- Accede a
/login. - Usa las credenciales definidas en
.env:- Usuario:
ADMIN_USER - Contraseña:
ADMIN_PASSWORD
- Usuario:
Una vez logueado podrás:
- Ver todos los productos
- Crear nuevos
- Editarlos o eliminarlos
├── config
│ └── db.js
│ └── cloudinary.js
├── controllers
│ ├── productController.js
| ├── productApiControllers.js
│ └── authController.js
├── models
│ └── Product.js
├── routes
│ ├── productRoutes.js
| ├── productApiRoutes.js
│ └── authRoutes.js
├── middlewares
| ├── uploadMiddlewares.js
│ └── authMiddleware.js
├── helpers
│ ├── baseHtml.js
| ├── getEditProductForm.js
| ├── getNavBar.js
│ ├── getProductCards.js
| ├── getProductDetails.js
│ └── getProductForm.js
├── test
│ ├── productController.test.js
| └──POST.test.js
├── docs
│ └── swagger.json
├── index.js
├── .env
└── README.md
Puedes acceder a la API en:
GET /api/products
GET /api/products/:id
POST /api/products (auth)
PUT /api/products/:id (auth)
DELETE /api/products/:id (auth)
Las rutas protegidas requieren autenticación básica.
Para ejecutar los tests automáticos:
npm testIncluye pruebas unitarias y de integración para los controladores y rutas.
Una vez ejecutada la app, visita:
http://localhost:3000/api-docs
Ahí encontrarás toda la documentación interactiva de la API.
- Node.js
- Express
- MongoDB + Mongoose
- Cloudinary (subida de imágenes)
- HTML + CSS (SSR)
- Multer (upload middleware)
- Jest + Supertest (tests)
- Swagger (documentación de API)
- Dotenv (variables de entorno)
Desarrollado por Florencia