{"id":23385713,"url":"https://github.com/yul1b3th/ezhub-backend","last_synced_at":"2026-04-13T03:08:59.639Z","repository":{"id":222035497,"uuid":"754035430","full_name":"Yul1b3th/ezhub-backend","owner":"Yul1b3th","description":"Este repositorio contiene los recursos del backend del proyecto EZHub, el cual es una aplicación para el alquiler de habitaciones por geolocalización. Utiliza JWT para autenticación y encriptación de contraseñas. Bases de datos relacionales con MySQL.","archived":false,"fork":false,"pushed_at":"2024-08-26T08:55:32.000Z","size":296,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-14T08:14:59.668Z","etag":null,"topics":["bcryptjs","javascript","jwt","mysql","nestjs","nodejs","typeorm","typescript","yarn"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/Yul1b3th.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-02-07T09:19:20.000Z","updated_at":"2024-08-26T08:55:35.000Z","dependencies_parsed_at":"2024-02-11T22:44:55.861Z","dependency_job_id":"2d906919-92f1-4575-b22c-9f7475e707c6","html_url":"https://github.com/Yul1b3th/ezhub-backend","commit_stats":null,"previous_names":["yul1b3th/ezhub-backend"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yul1b3th%2Fezhub-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yul1b3th%2Fezhub-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yul1b3th%2Fezhub-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yul1b3th%2Fezhub-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Yul1b3th","download_url":"https://codeload.github.com/Yul1b3th/ezhub-backend/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247838445,"owners_count":21004580,"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":["bcryptjs","javascript","jwt","mysql","nestjs","nodejs","typeorm","typescript","yarn"],"created_at":"2024-12-22T00:28:47.828Z","updated_at":"2026-04-13T03:08:59.610Z","avatar_url":"https://github.com/Yul1b3th.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 API de Alquiler de Habitaciones\n\nEste es el backend del proyecto que se encarga de gestionar los usuarios, propiedades, habitaciones y transacciones a través de una API RESTful. Utiliza Node.js, NestJS y TypeORM para interactuar con una base de datos MySQL. Las contraseñas de los usuarios se encriptan utilizando bcryptjs y la autenticación se maneja a través de JWT.\n\nPara más detalles sobre los endpoints y cómo utilizarlos, consulta la [Documentación de la API](https://ezhub-backend.onrender.com/docs/).\n\n## 🚀 Demo\n\nPuedes ver la demostración de la aplicación en [EZHub App](https://ezhub.vercel.app/).\n\n## 💻 Tecnologías Utilizadas\n\n- [Node.js](https://nodejs.org/).\n- [NestJS](https://nestjs.com/): Un marco de trabajo para construir aplicaciones de servidor eficientes, confiables y escalables en TypeScript.\n- [TypeORM](https://typeorm.io/): Un ORM que puede ejecutarse en plataformas NodeJS y puede ser utilizado con TypeScript y JavaScript.\n- [bcryptjs](https://docs.nestjs.com/security/encryption-and-hashing#hashing): Una biblioteca para encriptar contraseñas.\n- [jsonwebtoken](https://docs.nestjs.com/security/authentication#jwt-token): Una implementación de tokens de acceso JSON Web Token.\n- [MySQL](https://www.mysql.com/): Un sistema de gestión de bases de datos relacional.\n- [Yarn](https://yarnpkg.com/): Un gestor de paquetes rápido, fiable y seguro.\n\n## 📌 Instrucciones para Levantar el Servidor\n\nAsegúrate de tener instalado Node.js y yarn antes de seguir estos pasos.\n\n**✔️ Paso 1:** Clonar el Repositorio\n\n```bash\ngit clone https://github.com/Yul1b3th/ezhub-backend.git\n```\n\n**✔️ Paso 2:** Ingresa al directorio del proyecto:\n\n```bash\ncd ezhub-backend\n```\n\n**✔️ Paso 3:** Instalar las Dependencias\n\n```bash\nnpm install\n```\n\n**✔️ Paso 4:** Configuración de la Base de Datos\n\nEste proyecto utiliza variables de entorno para la configuración de la base de datos. Estas variables se definen en un archivo `.env` que no se incluye en el repositorio por razones de seguridad. Sin embargo, se proporciona un archivo `.env.template` como ejemplo.\n\nCopia el archivo `.env.template` y renómbralo a `.env`. Luego, reemplaza los valores de las variables con la información de tu base de datos:\n\n```bash\ncp .env.template .env\n```\n\n**Nota:** Asegúrate de reemplazar las variables con los valores correspondientes a tu configuración.\n\nEl proyecto utiliza el módulo `ConfigModule` de NestJS para leer las variables de entorno desde el archivo `.env`. Estas variables se utilizan para configurar la conexión a la base de datos en `app.module.ts` y para definir el puerto del servidor en `main.ts`.\n\n**✔️ Paso 5:** Levantar el Servidor\n\n```bash\nyarn run start:dev\n```\n\nEl servidor estará disponible en http://localhost:8000 por defecto.\n\n## 🚧 Endpoints de la API\n\n### Autenticación\n\n- **POST /api/auth/register**: Registra un nuevo usuario.\n- **POST /api/auth/login**: Inicia sesión con un usuario existente.\n- **GET /api/auth/profile**: Obtiene el perfil del usuario actualmente autenticado.\n- **GET /api/auth/check-token**: Verifica el token de sesión y devuelve un nuevo token JWT válido.\n\n### Usuarios\n\n- **GET /api/users**: Obtiene todos los usuarios.\n- **GET /api/users/:id**: Obtiene un usuario por ID.\n- **PATCH /api/users/:id**: Actualiza un usuario existente.\n- **DELETE /api/users/:id**: Elimina un usuario.\n\n**Nota:** Reemplaza **:id** con el ID del usuario correspondiente.\n\n### Propiedades\n\n- **GET /api/properties**: Obtiene todas las propiedades. (JWT requerido)\n- **GET /api/properties/:id**: Obtiene una propiedad por ID. (JWT requerido)\n- **POST /api/properties**: Crea una nueva propiedad. (JWT requerido)\n- **PATCH /api/properties/:id**: Actualiza una propiedad existente. (JWT requerido)\n- **DELETE /api/properties/:id**: Elimina una propiedad. (JWT requerido)\n\n**Nota:** Reemplaza **:id** con el ID de la propiedad correspondiente.\n\n### Propiedades Públicas\n\n- **GET /api/properties**: Obtiene todas las propiedades públicas. (Sin JWT requerido)\n- **GET /api/properties/:id**: Obtiene una propiedad pública por ID. (Sin JWT requerido)\n\n**Nota:** Reemplaza **:id** con el ID de la propiedad correspondiente.\n\n### Habitaciones\n\n- **GET /api/rooms**: Obtiene todas las habitaciones. (JWT requerido)\n- **GET /api/rooms/:id**: Obtiene una habitación por ID. (JWT requerido)\n- **POST /api/rooms**: Crea una nueva habitación. (JWT requerido)\n- **PATCH /api/rooms/:id**: Actualiza una habitación existente. (JWT requerido)\n- **DELETE /api/rooms/:id**: Elimina una habitación. (JWT requerido)\n\n**Nota:** Reemplaza **:id** con el ID correspondiente de la habitación.\n\n### Habitaciones Públicas\n\n- **GET /api/public-rooms**: Obtiene todas las habitaciones públicas. (Sin JWT requerido)\n- **GET /api/public-rooms/:id**: Obtiene una habitación pública por ID. (Sin JWT requerido)\n\n### Comodidades Públicas\n\n- **GET /api/public-rooms/:id/amenities**: Obtiene todas las comodidades de una habitación pública por ID. (Sin JWT requerido)\n\n**Nota:** Reemplaza **:id** con el ID correspondiente de la habitación.\n\n## 🤝 Contribuciones\n\nSi deseas colaborar en este proyecto o informar sobre problemas, no dudes en crear un \"issue\" o enviar un \"pull request.\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyul1b3th%2Fezhub-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyul1b3th%2Fezhub-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyul1b3th%2Fezhub-backend/lists"}