{"id":15155570,"url":"https://github.com/ferjencoder/artify-store","last_synced_at":"2026-01-19T22:32:06.655Z","repository":{"id":251848464,"uuid":"838607991","full_name":"ferjencoder/artify-store","owner":"ferjencoder","description":"Artify Store es un proyecto backend desarrollado en Node.js y Express, diseñado para gestionar productos y carritos de compra en un sistema de e-commerce especializado en Pósters y Arte Digital. La aplicación permite realizar operaciones CRUD (Crear, Leer, Actualizar y Eliminar) sobre los productos y gestionar carritos de compra.","archived":false,"fork":false,"pushed_at":"2024-09-17T12:50:37.000Z","size":30,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T12:48:24.573Z","etag":null,"topics":["backend","express-js","json","node-js"],"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/ferjencoder.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":"2024-08-06T02:12:21.000Z","updated_at":"2024-09-17T12:50:42.000Z","dependencies_parsed_at":"2024-08-27T03:35:11.524Z","dependency_job_id":"51f4fbf3-f95b-4c0e-93bc-0d75e62e57a5","html_url":"https://github.com/ferjencoder/artify-store","commit_stats":{"total_commits":5,"total_committers":1,"mean_commits":5.0,"dds":0.0,"last_synced_commit":"b46d897d9b8d93f820ff163eeede4a2c0aba095d"},"previous_names":["ferjencoder/70140-primera-entrega","ferjencoder/artify-store"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ferjencoder/artify-store","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferjencoder%2Fartify-store","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferjencoder%2Fartify-store/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferjencoder%2Fartify-store/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferjencoder%2Fartify-store/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ferjencoder","download_url":"https://codeload.github.com/ferjencoder/artify-store/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferjencoder%2Fartify-store/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28587241,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T20:45:59.482Z","status":"ssl_error","status_checked_at":"2026-01-19T20:45:41.500Z","response_time":67,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["backend","express-js","json","node-js"],"created_at":"2024-09-26T18:40:20.629Z","updated_at":"2026-01-19T22:32:06.634Z","avatar_url":"https://github.com/ferjencoder.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Artify - Proyecto Final\n\nEste proyecto es parte de la primera entrega del curso de backend para Coderhouse. Se trata de un servidor desarrollado en Node.js y Express que gestiona productos y carritos de compra para un sistema de e-commerce especializado en Pósters y Arte Digital.\n\n## Tabla de Contenidos\n\n- [Descripción](#descripción)\n- [Instalación](#instalación)\n- [Uso](#uso)\n- [Rutas de la API](#rutas-de-la-api)\n  - [Productos](#productos)\n  - [Carritos](#carritos)\n- [Persistencia de Datos](#persistencia-de-datos)\n- [Tecnologías Utilizadas](#tecnologías-utilizadas)\n\n## Descripción\n\nArtify es una tienda en línea especializada en Pósters y Arte Digital. El servidor gestiona productos y carritos de compra, con funcionalidades en tiempo real mediante WebSockets y una interfaz mejorada utilizando Bootstrap, inspirada en la paleta de colores \"Mystic Forest\".\n\n## Instalación\n\nPara ejecutar este proyecto en tu entorno local, sigue estos pasos:\n\n1. Clona este repositorio:\n```bash\n   git clone [URL-del-repositorio]\n```\n   \n2. Navega al directorio del proyecto:\n```bash\ncd [nombre-del-directorio]\n```\n\n3. Instala las dependencias necesarias:\n```bash\nnpm install\n```\n\n4. Inicia el servidor:\n```bash\nnpm start\n```\n\n## Uso\n\nUna vez que el servidor esté en funcionamiento, puedes interactuar con las rutas de la API utilizando herramientas como Postman o cualquier cliente HTTP de tu preferencia.\n\nEl servidor estará escuchando en http://localhost:8080.\n\n## Rutas de la API\n\n### Productos\n\n- **GET** `/api/products`: Lista todos los productos. Puedes limitar el número de productos usando el parámetro `?limit`.\n- **GET** `/api/products/:pid`: Devuelve un producto específico por su ID.\n- **POST** `/api/products`: Agrega un nuevo producto. Los campos requeridos son:\n  - `title`: String\n  - `description`: String\n  - `code`: String\n  - `price`: Number\n  - `status`: Boolean (true por defecto)\n  - `stock`: Number\n  - `category`: String\n  - `thumbnails`: Array de Strings\n  - `demoUrl`: String\n- **PUT** `/api/products/:pid`: Actualiza un producto existente por su ID. No se puede actualizar el campo `id`.\n- **DELETE** `/api/products/:pid`: Elimina un producto por su ID.\n\n### Carritos\n\n- **POST** `/api/carts`: Crea un nuevo carrito.\n- **GET** `/api/carts/:cid`: Lista todos los productos en un carrito específico por su ID.\n- **POST** `/api/carts/:cid/product/:pid`: Agrega un producto al carrito por su ID. Si el producto ya existe en el carrito, se incrementa la cantidad.\n\n## Persistencia de Datos\n\nLos datos se almacenan en archivos JSON:\n\n- `products.json` para los productos\n- `carts.json` para los carritos\n\nEstos archivos se encuentran en la carpeta `src/files/`.\n\n## Tecnologías Utilizadas\n\n- Node.js\n- Express\n- WebSockets (socket.io) para actualizaciones en tiempo real\n- Handlebars para la renderización de vistas\n- Bootstrap para el diseño y estilo\n- File System para la persistencia de datos\n\n## Contribuciones\n\nLas contribuciones son bienvenidas. Si encuentras algún problema o tienes sugerencias, no dudes en crear un `issue` o enviar un `pull request`.\n\n\n## Licencia\n\nEste proyecto se distribuye bajo la Licencia MIT.\n\n\n### Instrucciones:\n\n1. **URL del repositorio**: Reemplaza `[URL-del-repositorio]` con la URL real de tu repositorio en GitHub u otra plataforma.\n2. **Nombre del directorio**: Reemplaza `[nombre-del-directorio]` con el nombre de tu directorio de proyecto si es necesario.\n3. **Licencia**: Si decides incluir una licencia, asegúrate de crear un archivo `LICENSE` con los términos de la licencia que elijas.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fferjencoder%2Fartify-store","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fferjencoder%2Fartify-store","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fferjencoder%2Fartify-store/lists"}