{"id":24612740,"url":"https://github.com/tomassueldo7/sistemacrud-be","last_synced_at":"2025-10-23T17:58:00.244Z","repository":{"id":273381302,"uuid":"919490081","full_name":"TomasSueldo7/SistemaCrud-BE","owner":"TomasSueldo7","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-26T14:40:21.000Z","size":19,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T16:54:10.353Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/TomasSueldo7.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":"2025-01-20T13:40:39.000Z","updated_at":"2025-01-26T14:40:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"8ad982b4-c3a1-49cf-914a-1cdd3e4fc1c9","html_url":"https://github.com/TomasSueldo7/SistemaCrud-BE","commit_stats":null,"previous_names":["tomassueldo7/sistemacrud-be"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TomasSueldo7/SistemaCrud-BE","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasSueldo7%2FSistemaCrud-BE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasSueldo7%2FSistemaCrud-BE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasSueldo7%2FSistemaCrud-BE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasSueldo7%2FSistemaCrud-BE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TomasSueldo7","download_url":"https://codeload.github.com/TomasSueldo7/SistemaCrud-BE/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TomasSueldo7%2FSistemaCrud-BE/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260131594,"owners_count":22963451,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-01-24T20:37:26.783Z","updated_at":"2025-10-23T17:57:55.211Z","avatar_url":"https://github.com/TomasSueldo7.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Final UTN Diplomatura Web Full Stack\n\n## Descripción\n\nEste es un proyecto **API REST** desarrollado como trabajo final de la diplomatura de Desarrollo Web Full Stack. Esta enfocado en un sistema simple que maneja sesiones y permite realizar operaciones CRUD sobre los siguientes modelos:\n- **User**\n- **Category**\n- **Product**\n\n## Tecnologías\n\nEste proyecto utiliza las siguientes tecnologías:\n\n1. **Express.js**: Framework para Node.js para crear APIs RESTful.\n2. **MongoDB**: Base de datos NoSQL para almacenar los datos de los modelos.\n3. **Node.js**: Entorno de ejecución de JavaScript en el lado del servidor.\n4. **bcrypt**: Paquete para encriptar contraseñas de manera segura.\n5. **jsonwebtoken**: Biblioteca para generar y verificar tokens JWT para autenticación.\n6. **dotenv**: Paquete para cargar variables de entorno desde un archivo `.env`.\n\n## Requisitos\n\nLa máquina donde se ejecute el proyecto debe tener instalado:\n\n- **Node.js**: [Descargar e instalar Node.js](https://nodejs.org/)\n- **MongoDB**: [Instalar MongoDB](https://www.mongodb.com/try/download/community) (MongoDB Compass es opcional para gestionar la base de datos de manera visual)\n\n\n## Instalación de proyecto\n\n1. Clonar el repositorio `git clone https://github.com/TomasSueldo7/SistemaCrud-BE.git`\n2. Instalar dependencias: `npm i`\n3. Incorporar el archivo `.env` en la raíz del proyecto\n\n## Ejecución\n\nPara correr el proyecto existen dos opciones:\n  - Forma productiva: `npm start`\n  - Forma develop: `npm run dev`\n\n## Endpoints\n\n### Endpoint de autenticación\n\n  - LOGIN: /api/auth/login\n    - Método: POST\n    - Descripción: Inicia sesión y devuelve un token JWT para acceder a rutas protegidas\n\n### Endpoints de operaciones CRUD\n\nCada URL posee las 4 operaciones disponibles GET, POST, PUT, DELETE. Todos los métodos utilizan la misma ruta\n\n  - USER: \n    - GET /api/user - Obtener todos los usuarios.\n    - POST /api/user - Crear un nuevo usuario.\n    - PUT: /api/user/:id - Actualizar un usuario existente por su ID.\n    - DELETE: /api/user/:id - Eliminar un usuario por su ID.\n  - PRODUCT: \n    - GET: /api/product - Obtener todos los productos.\n    - GET: /api/product/:name - Obtener un producto por nombre.\n    - POST: /api/product - Crear un nuevo producto.\n    - PUT: /api/product/:id - Actualizar un producto existente por su ID.\n    - DELETE: /api/product/:id - Eliminar un producto por su ID.\n  - CATEGORY: /api/category\n    - GET: /api/category - Obtener todas las categorías.\n    - GET: /api/category/:name - Obtener una categoría nombre.\n    - POST: /api/category - Crear una nueva categoría.\n    - PUT: /api/category/:id - Actualizar una categoría existente por su ID.\n    - DELETE: /api/category/:id - Eliminar una categoría por su ID.\n\n## MOCKS\n\nuser:\n  {\n    \"name\":\"Lucas\",\n    \"email\": \"lucas@gmail.com\",\n    \"password\":\"123\",\n    \"role\":\"CUSTOMER\"\n  }\n\ncategory:\n  {\n    \"name\":\"Electrodomésticos\",\n    \"description\": \"Tecnología para el hogar\"\n  }\n\nproduct:\n  {\n    \"name\":\"Microondas\",\n    \"status\":\"AVAILABLE\",\n    \"price\":10000,\n    \"category\": {id del category que asigno mongoDB},\n    \"description\": \"Microondas BGH\"\n  }\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomassueldo7%2Fsistemacrud-be","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftomassueldo7%2Fsistemacrud-be","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomassueldo7%2Fsistemacrud-be/lists"}