Skip to content

API project using Node.js made for the Web Workshop II subject of the Web Development Technicature at the University of La Matanza.

Notifications You must be signed in to change notification settings

ignaciodamiang/birrapp-nodejs-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BirrApp API

API RESTful para una aplicación de venta de bebidas, construida con Node.js, Express y MongoDB.


🛠 Instalación

Clonar el repositorio:

git clone https://github.com/usuario/birrapp-api.git
cd birrapp-api

Instalar dependencias:

npm install

Configurar variables de entorno:

Crear 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,menu

Iniciar MongoDB:

Asegurarse de que MongoDB esté corriendo en el puerto especificado (por defecto, 27017).

Iniciar la aplicación:

npm start

📄 Documentación

La documentación completa de la API está disponible en http://localhost:3000/api-docs gracias a Swagger.


📁 Estructura del Proyecto

  • 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.

🔑 Endpoints Principales

Auth

  • 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.

Products

  • POST /product/nuevoproducto: Crea un nuevo producto (solo admin).
  • GET /product/home: Obtiene todos los productos disponibles.
  • POST /product/Productos: Busca productos por nombre.

Cart

  • 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.

Orders

  • POST /order/guardarPedido: Guarda un nuevo pedido desde el carrito.
  • GET /order/obtenerPedidos: Obtiene todos los pedidos del usuario autenticado.

Files

  • POST /upload/uploadfile: Sube un archivo (ej. imagen de producto).
  • GET /upload/images/:typeFile/:nameFile: Obtiene una imagen subida.

🧪 Requisitos

  • Node.js: v14 o superior
  • MongoDB: v4.0 o superior

🤝 Contribución

  1. Hacer fork del repositorio.

  2. Crear una nueva rama:

    git checkout -b feature/nueva-funcionalidad
  3. Hacer commit de los cambios:

    git commit -am 'Añadir nueva funcionalidad'
  4. Push a la rama:

    git push origin feature/nueva-funcionalidad
  5. Crear un Pull Request.

About

API project using Node.js made for the Web Workshop II subject of the Web Development Technicature at the University of La Matanza.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •