{"id":24201536,"url":"https://github.com/miguelsjimenezv/bikesapiproject","last_synced_at":"2026-04-13T03:01:48.953Z","repository":{"id":270911050,"uuid":"911823305","full_name":"MiguelSJimenezV/BikesAPIProject","owner":"MiguelSJimenezV","description":"Este proyecto consiste en una API RESTful que permite gestionar motocicletas y usuarios. Los usuarios pueden registrarse, iniciar sesión, y asignar motocicletas a su perfil. Además, se pueden gestionar categorías de motocicletas.","archived":false,"fork":false,"pushed_at":"2025-01-04T00:11:49.000Z","size":27,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-13T21:15:50.270Z","etag":null,"topics":["api","api-rest","backend","express","javascript","mongodb","nodejs","web"],"latest_commit_sha":null,"homepage":"https://miguelsjimenezv.github.io/BikesAPIProject/views","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/MiguelSJimenezV.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-04T00:09:28.000Z","updated_at":"2025-01-11T00:24:15.000Z","dependencies_parsed_at":"2025-01-04T01:21:34.081Z","dependency_job_id":"14c1f731-ff01-404a-b045-2f6b19c4fde5","html_url":"https://github.com/MiguelSJimenezV/BikesAPIProject","commit_stats":null,"previous_names":["miguelsjimenezv/bikesapiproject"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiguelSJimenezV%2FBikesAPIProject","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiguelSJimenezV%2FBikesAPIProject/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiguelSJimenezV%2FBikesAPIProject/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiguelSJimenezV%2FBikesAPIProject/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MiguelSJimenezV","download_url":"https://codeload.github.com/MiguelSJimenezV/BikesAPIProject/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241644940,"owners_count":19996268,"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":["api","api-rest","backend","express","javascript","mongodb","nodejs","web"],"created_at":"2025-01-13T21:16:16.344Z","updated_at":"2026-04-13T03:01:43.927Z","avatar_url":"https://github.com/MiguelSJimenezV.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Proyecto API de Motocicletas\n\n## Descripción\n\nEste proyecto consiste en una API RESTful que permite gestionar motocicletas y usuarios. Los usuarios pueden registrarse, iniciar sesión, y asignar motocicletas a su perfil. Además, se pueden gestionar categorías de motocicletas.\n\n### Autor\n\n- **Nombre**: Miguel Jimenez\n- **Año**: 2024\n\n## Tecnologías Utilizadas\n\n- **Node.js**: Para el backend.\n- **Express**: Framework para construir aplicaciones web.\n- **MongoDB**: Base de datos NoSQL para almacenar datos.\n- **JWT**: Para la autenticación de usuarios.\n- **Bcrypt**: Para el hash de contraseñas.\n- **dotenv**: Para manejar variables de entorno.\n\n## Rutas de la API\n\n### Rutas de Usuarios\n\n1. **Registrar un Usuario**\n\n   - **Método**: POST\n   - **Ruta**: `/api/users/register`\n   - **Cuerpo de la Solicitud**:\n     ```json\n     {\n       \"email\": \"usuario@example.com\",\n       \"password\": \"tuContraseña\",\n       \"nombre\": \"Nombre del Usuario\"\n     }\n     ```\n\n2. **Iniciar Sesión**\n\n   - **Método**: POST\n   - **Ruta**: `/api/users/login`\n   - **Cuerpo de la Solicitud**:\n     ```json\n     {\n       \"email\": \"usuario@example.com\",\n       \"password\": \"tuContraseña\"\n     }\n     ```\n\n3. **Eliminar un Usuario**\n\n   - **Método**: DELETE\n   - **Ruta**: `/api/users/:userId`\n   - **Headers**: Incluye el token JWT en el encabezado `Authorization`.\n   - **Ejemplo**: `/api/users/1234567890abcdef`\n\n4. **Asignar una Motocicleta a un Usuario**\n\n   - **Método**: POST\n   - **Ruta**: `/api/users/:userId/motos`\n   - **Cuerpo de la Solicitud**:\n     ```json\n     {\n       \"motoId\": \"1234567890abcdef\"\n     }\n     ```\n\n5. **Obtener Todos los Usuarios**\n   - **Método**: GET\n   - **Ruta**: `/api/users`\n   - **Headers**: Incluye el token JWT en el encabezado `Authorization`.\n\n### Rutas de Motos\n\n1. **Obtener Todas las Motos**\n\n   - **Método**: GET\n   - **Ruta**: `/api/motos`\n\n2. **Obtener una Moto por ID**\n\n   - **Método**: GET\n   - **Ruta**: `/api/motos/:id`\n   - **Ejemplo**: `/api/motos/1234567890abcdef`\n\n3. **Crear una Nueva Moto**\n\n   - **Método**: POST\n   - **Ruta**: `/api/motos`\n   - **Cuerpo de la Solicitud**:\n     ```json\n     {\n       \"marca\": \"Marca de la Moto\",\n       \"modelo\": \"Modelo de la Moto\",\n       \"cilindrada\": \"150\",\n       \"año\": \"2020\",\n       \"color\": \"Rojo\",\n       \"estado\": \"nueva\",\n       \"categoria\": \"605c72ef3e7b6e001f64f2a1\" // ID de categoría\n     }\n     ```\n\n4. **Actualizar una Moto**\n\n   - **Método**: PUT\n   - **Ruta**: `/api/motos/:id`\n   - **Cuerpo de la Solicitud**:\n     ```json\n     {\n       \"marca\": \"Nueva Marca\",\n       \"modelo\": \"Nuevo Modelo\"\n     }\n     ```\n\n5. **Eliminar una Moto**\n\n   - **Método**: DELETE\n   - **Ruta**: `/api/motos/:id`\n\n6. **Obtener Motos por Categoría**\n   - **Método**: GET\n   - **Ruta**: `/api/motos/categoria/:categoriaId`\n   - **Ejemplo**: `/api/motos/categoria/605c72ef3e7b6e001f64f2a1`\n\n### Rutas de Categorías\n\n1. **Obtener Todas las Categorías**\n\n   - **Método**: GET\n   - **Ruta**: `/api/categorias`\n\n2. **Crear una Nueva Categoría**\n\n   - **Método**: POST\n   - **Ruta**: `/api/categorias`\n   - **Cuerpo de la Solicitud**:\n     ```json\n     {\n       \"nombre\": \"Categoría de Ejemplo\"\n     }\n     ```\n\n3. **Actualizar una Categoría**\n\n   - **Método**: PUT\n   - **Ruta**: `/api/categorias/:id`\n   - **Cuerpo de la Solicitud**:\n     ```json\n     {\n       \"nombre\": \"Nueva Categoría\"\n     }\n     ```\n\n4. **Eliminar una Categoría**\n   - **Método**: DELETE\n   - **Ruta**: `/api/categorias/:id`\n\n## Instalación\n\nPara instalar y ejecutar este proyecto en tu máquina local, sigue los siguientes pasos:\n\n### Requisitos Previos\n\nAsegúrate de tener instalado lo siguiente:\n\n- [Node.js](https://nodejs.org/) (versión 14 o superior)\n- [MongoDB](https://www.mongodb.com/) (asegúrate de que el servidor esté en ejecución)\n- Un gestor de paquetes como [npm](https://www.npmjs.com/) (incluido con Node.js)\n\n### Pasos para la Instalación\n\n1. **Clona el repositorio**:\n\n   ```bash\n   git clone https://github.com/MiguelSJimenezV/BikesAPIProject.git\n   ```\n\n2. **Instala las Dependencias**:\n\n   ```bash\n   npm i\n   ```\n\n3. **Inicia el Servidor**:\n\n   ```bash\n   npm start\n   ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiguelsjimenezv%2Fbikesapiproject","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmiguelsjimenezv%2Fbikesapiproject","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiguelsjimenezv%2Fbikesapiproject/lists"}