API RESTful para una aplicación de venta de bebidas, construida con Node.js, Express y MongoDB.
git clone https://github.com/usuario/birrapp-api.git
cd birrapp-apinpm installCrear un archivo .env en la raíz del proyecto con el siguiente contenido:
SERVER_PORT=3000
MONGODB_HOST=127.0.0.1
MONGODB_PORT=27017
MONGODB_DB=birrapp
JWT_SECRET=Birrapp_secret
JWT_ISSUER=Birrapp_issuer
UPLOAD_FILE_TMP_FOLDER=./tmp/
UPLOAD_FILE_FOLDER=./public/images/
UPLOAD_FILE_TYPES=product,producto,menuAsegurarse de que MongoDB esté corriendo en el puerto especificado (por defecto, 27017).
npm startLa documentación completa de la API está disponible en http://localhost:3000/api-docs gracias a Swagger.
index.js: Archivo principal que configura y arranca el servidor Express.config/:public-paths.js: Rutas públicas.swagger-config.js: Configuración de Swagger.
lib/models/: Modelos de Mongoose para las colecciones de MongoDB:admin,carrito,file,pedido,producto,user.
lib/routes/: Rutas de la API organizadas por funcionalidad:auth.js: Autenticación y registro de usuarios.product.js: Gestión de productos.cart.js: Gestión del carrito de compras.order.js: Gestión de pedidos.upload-file.js: Subida y manejo de archivos.
lib/utils/: Utilidades:extract-jwt.js: Middleware para JWT.- Middlewares para la subida de archivos.
POST /auth/login: Inicia sesión de un usuario.POST /auth/register: Registra un nuevo usuario.POST /auth/check: Confirma el registro con un código.POST /auth/resendConfirmCode: Reenvía el código de confirmación.POST /auth/forgotPassword: Solicita restablecimiento de contraseña.POST /auth/forgotPassword/confirm: Confirma el restablecimiento de contraseña.
POST /product/nuevoproducto: Crea un nuevo producto (solo admin).GET /product/home: Obtiene todos los productos disponibles.POST /product/Productos: Busca productos por nombre.
POST /cart/carrito: Crea un nuevo carrito (para pruebas).GET /cart/obtenercarrito: Obtiene el carrito del usuario autenticado.POST /cart/agregaracarrito: Agrega un producto al carrito.POST /cart/repetirPedido: Repite un pedido anterior.POST /cart/cambiarcantidad: Cambia la cantidad de un ítem en el carrito.
POST /order/guardarPedido: Guarda un nuevo pedido desde el carrito.GET /order/obtenerPedidos: Obtiene todos los pedidos del usuario autenticado.
POST /upload/uploadfile: Sube un archivo (ej. imagen de producto).GET /upload/images/:typeFile/:nameFile: Obtiene una imagen subida.
- Node.js: v14 o superior
- MongoDB: v4.0 o superior
-
Hacer fork del repositorio.
-
Crear una nueva rama:
git checkout -b feature/nueva-funcionalidad
-
Hacer commit de los cambios:
git commit -am 'Añadir nueva funcionalidad' -
Push a la rama:
git push origin feature/nueva-funcionalidad
-
Crear un Pull Request.