{"id":25580470,"url":"https://github.com/mzipi/store-api","last_synced_at":"2026-04-11T03:32:18.735Z","repository":{"id":64086869,"uuid":"533091489","full_name":"mzipi/store-api","owner":"mzipi","description":"Store API REST","archived":false,"fork":false,"pushed_at":"2025-02-13T05:11:46.000Z","size":46463,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-02T04:09:08.293Z","etag":null,"topics":["api-rest","mongo","mongoose","multer","node","nodemailer","passport","socket-io","winston-logger"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mzipi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-05T23:29:46.000Z","updated_at":"2025-02-13T05:35:47.000Z","dependencies_parsed_at":"2025-01-13T16:50:23.736Z","dependency_job_id":"f66dae3d-ac9d-4a9e-a202-79d48d5e1600","html_url":"https://github.com/mzipi/store-api","commit_stats":null,"previous_names":["mzipi/store-api","mzipi/coderhouse-backend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mzipi/store-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mzipi%2Fstore-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mzipi%2Fstore-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mzipi%2Fstore-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mzipi%2Fstore-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mzipi","download_url":"https://codeload.github.com/mzipi/store-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mzipi%2Fstore-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31668046,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"online","status_checked_at":"2026-04-11T02:00:05.776Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-rest","mongo","mongoose","multer","node","nodemailer","passport","socket-io","winston-logger"],"created_at":"2025-02-21T04:16:18.175Z","updated_at":"2026-04-11T03:32:18.707Z","avatar_url":"https://github.com/mzipi.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Tabla de Contenidos\n\n- [Introducción](#introducción)\n- [Características](#características)\n- [Tecnologías Utilizadas](#tecnologías-utilizadas)\n- [Instalación](#instalación)\n- [Configuración](#configuración)\n- [Uso](#uso)\n- [Endpoints](#endpoints)\n- [Ejemplos de Uso](#ejemplos-de-uso)\n- [Contribuciones](#contribuciones)\n- [Licencia](#licencia)\n- [Contacto](#contacto)\n\n## Introducción\n\nStore API es una API RESTful para la gestión de productos en una tienda. Está construida con Node.js y utiliza MongoDB para almacenar datos.\n\n## Características\n\n- CRUD para productos\n- Autenticación de usuarios\n- Carga de archivos\n- Notificaciones por correo electrónico\n- Manejo de errores\n- Comunicación en tiempo real\n\n## Tecnologías Utilizadas\n\n* **Backend**: Node.js, Express.js\n* **Base de datos**: MongoDB, Mongoose\n* **Autenticación**: JSON Web Tokens (JWT)\n* **Otros**: dotenv, CORS, bcrypt\n\n\n## Instalación\n\n1. Clona el repositorio: `git clone https://github.com/mzipi/store-api.git`\n2. Navega a la carpeta del proyecto: `cd store-api`\n3. Instala las dependencias: `npm install`\n4. Configura las variables de entorno necesarias.\n\n## Configuración\n\nAsegúrate de crear un archivo `.env` en la raíz del proyecto y agregar las siguientes variables:\n\n- `MONGO_URI`: URI de conexión a tu base de datos MongoDB.\n- `PORT`: Puerto en el que se ejecutará la API (por defecto, 8080).\n- `JWT_SECRET`: Secreto para firmar los tokens JWT.\n- `EMAIL_USER`: Usuario para las notificaciones por correo electrónico.\n- `EMAIL_PASS`: Contraseña para el usuario de correo electrónico.\n\n## Uso\n\nInicia la API con: `npm start`. Accede en `http://localhost:8080`.\n\n## Endpoints\n\n| Método  | Endpoint                   | Descripción                               |\n|---------|----------------------------|-------------------------------------------|\n| GET     | `/api/products`            | Obtener todos los productos               |\n| GET     | `/api/products/:id`        | Obtener un producto por su ID             |\n| POST    | `/api/products`            | Crear un nuevo producto                   |\n| PUT     | `/api/products/:id`        | Actualizar un producto por su ID          |\n| DELETE  | `/api/products/:id`        | Eliminar un producto por su ID            |\n| POST    | `/api/users/register`      | Registrar un nuevo usuario                |\n| POST    | `/api/users/login`         | Iniciar sesión de un usuario              |\n| GET     | `/api/cart`                | Obtener el carrito del usuario            |\n| POST    | `/api/cart`                | Añadir un producto al carrito             |\n| DELETE  | `/api/cart/:id`            | Eliminar un producto del carrito          |\n| POST    | `/api/orders`              | Crear una nueva orden                     |\n| GET     | `/api/orders/:id`          | Obtener detalles de una orden por su ID   |\n| POST    | `/api/images/upload`       | Subir una nueva imagen                    |\n\n## Ejemplos de Uso\n\n```bash\n# Obtener todos los productos\nwget --method=GET --header=\"Content-Type: application/json\" http://localhost:8080/api/products\n\n# Obtener un producto por ID\nwget --method=GET --header=\"Content-Type: application/json\" http://localhost:8080/api/products/1\n\n# Crear un nuevo producto\nwget --method=POST --header=\"Content-Type: application/json\" --body-data='{\n  \"name\": \"Nuevo Producto\",\n  \"price\": 150,\n  \"description\": \"Descripción del nuevo producto\"\n}' http://localhost:8080/api/products\n\n# Actualizar un producto por ID\nwget --method=PUT --header=\"Content-Type: application/json\" --body-data='{\n  \"name\": \"Producto Actualizado\",\n  \"price\": 200,\n  \"description\": \"Descripción actualizada del producto\"\n}' http://localhost:8080/api/products/1\n\n# Eliminar un producto por ID\nwget --method=DELETE --header=\"Content-Type: application/json\" http://localhost:8080/api/products/1\n\n# Registrar un nuevo usuario\nwget --method=POST --header=\"Content-Type: application/json\" --body-data='{\n  \"email\": \"nuevo_usuario@example.com\",\n  \"password\": \"nueva_contraseña\"\n}' http://localhost:8080/api/users/register\n\n# Iniciar sesión de un usuario\nwget --method=POST --header=\"Content-Type: application/json\" --body-data='{\n  \"email\": \"usuario@example.com\",\n  \"password\": \"contraseña123\"\n}' http://localhost:8080/api/users/login\n\n# Obtener el carrito del usuario\nwget --method=GET --header=\"Content-Type: application/json\" http://localhost:8080/api/cart\n\n# Añadir un producto al carrito\nwget --method=POST --header=\"Content-Type: application/json\" --body-data='{\n  \"productId\": \"1\",\n  \"quantity\": 1\n}' http://localhost:8080/api/cart\n\n# Eliminar un producto del carrito\nwget --method=DELETE --header=\"Content-Type: application/json\" http://localhost:8080/api/cart/1\n\n# Crear una nueva orden\nwget --method=POST --header=\"Content-Type: application/json\" --body-data='{\n  \"cartId\": \"carrito-id\",\n  \"address\": \"Dirección de envío\"\n}' http://localhost:8080/api/orders\n\n# Obtener detalles de una orden\nwget --method=GET --header=\"Content-Type: application/json\" http://localhost:8080/api/orders/123\n\n# Subir una nueva imagen\nwget --method=POST --header=\"Content-Type: multipart/form-data\" --body-file=@imagen.png http://localhost:8080/api/images/upload\n```\n\n## Contribuciones\n\nContribuciones son bienvenidas. Abre un issue o un pull request.\n\n## Licencia\n\nEste proyecto está bajo la Licencia MIT.\n\n## Contacto\n\nMás información en [GitHub](https://github.com/mzipi/store-api).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmzipi%2Fstore-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmzipi%2Fstore-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmzipi%2Fstore-api/lists"}