{"id":19562619,"url":"https://github.com/v3gaaa/manos-expertas--mobile-app","last_synced_at":"2026-01-24T18:01:48.626Z","repository":{"id":253264937,"uuid":"842973644","full_name":"v3gaaa/Manos-Expertas--Mobile-App","owner":"v3gaaa","description":"Manos Expertas es una aplicación móvil desarrollada para el Banco de Alimentos de México. Su propósito es ayudar a los profesionistas que reciben apoyo del banco (como pintores, albañiles, plomeros, entre otros) a encontrar oportunidades laborales, conectándolos con el público en general.","archived":false,"fork":false,"pushed_at":"2024-10-18T19:08:30.000Z","size":41597,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-08T22:34:47.794Z","etag":null,"topics":["expo","expressjs","mongodb","react-native","typescript"],"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/v3gaaa.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-15T14:04:47.000Z","updated_at":"2024-10-18T19:08:35.000Z","dependencies_parsed_at":"2025-01-08T23:32:02.966Z","dependency_job_id":null,"html_url":"https://github.com/v3gaaa/Manos-Expertas--Mobile-App","commit_stats":null,"previous_names":["v3gaaa/manos-expertas--mobile-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/v3gaaa/Manos-Expertas--Mobile-App","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/v3gaaa%2FManos-Expertas--Mobile-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/v3gaaa%2FManos-Expertas--Mobile-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/v3gaaa%2FManos-Expertas--Mobile-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/v3gaaa%2FManos-Expertas--Mobile-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/v3gaaa","download_url":"https://codeload.github.com/v3gaaa/Manos-Expertas--Mobile-App/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/v3gaaa%2FManos-Expertas--Mobile-App/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28733285,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T17:51:25.893Z","status":"ssl_error","status_checked_at":"2026-01-24T17:50:48.377Z","response_time":89,"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":["expo","expressjs","mongodb","react-native","typescript"],"created_at":"2024-11-11T05:15:10.595Z","updated_at":"2026-01-24T18:01:48.601Z","avatar_url":"https://github.com/v3gaaa.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Manos Expertas\n\n**Manos Expertas** es una aplicación móvil desarrollada para el Banco de Alimentos de México. Su propósito es ayudar a los profesionistas que reciben apoyo del banco (como pintores, albañiles, plomeros, entre otros) a encontrar oportunidades laborales, conectándolos con el público en general. La app ofrece un catálogo de trabajadores, mostrando sus habilidades, calificaciones y permite a los usuarios reservar sus servicios.\n\n## Tabla de Contenidos\n\n- [Descripción del Proyecto](#descripción-del-proyecto)\n- [Funcionalidades](#funcionalidades)\n- [Tecnologías Utilizadas](#tecnologías-utilizadas)\n- [Estructura del Proyecto](#estructura-del-proyecto)\n  - [Frontend](#frontend)\n  - [Backend](#backend)\n- [Instalación](#instalación)\n- [Contribuir](#contribuir)\n- [Licencia](#licencia)\n\n## Descripción del Proyecto\n\n\"Manos Expertas\" tiene como objetivo ofrecer una plataforma accesible para que profesionistas muestren sus habilidades y se conecten con personas interesadas en sus servicios. La aplicación permite que los usuarios vean perfiles de trabajadores, lean reseñas y calificaciones, y reserven sus servicios directamente desde la app.\n\n## Funcionalidades\n\n- **Perfiles de Profesionistas**: Los perfiles son creados y dados de alta por el Banco de Alimentos mediante el uso de perfiles admin.\n  - Nombre, apellido, profesión y descripción de sus habilidades.\n  - Imágenes de sus trabajos anteriores.\n  - Calificaciones y reseñas dejadas por otros usuarios.\n  - Información de contacto.\n- **Usuarios**: Los usuarios pueden buscar trabajadores en el catálogo, ver sus perfiles y reservar citas para recibir servicios.\n- **Calificación y Reseñas**: Los usuarios pueden calificar y dejar reseñas una vez completado el trabajo.\n- **Búsqueda y Filtrado**: Búsqueda de trabajadores por habilidades, profesión o calificación.\n- **Reserva de Citas**: Los usuarios seleccionan la disponibilidad del trabajador a través de un calendario.\n- **Interfaz Amigable**: La aplicación ofrece una interfaz intuitiva y envía notificaciones sobre las citas y estados de las mismas.\n\n## Tecnologías Utilizadas\n\n### Frontend\n- **Framework**: Expo y React Native.\n- **Componentes Clave**: \n  - `WorkerDetail`, `CalendarAvailability`, `TimeAvailability`, `BookingSuccess`, `AllBookedAppointments`, `BookingDetails`.\n  - Componentes reutilizables como `appTextInput`, `ButtonCarousel`, `footer`, `WorkerCard`.\n- **Navegación**: `index.tsx` maneja la navegación entre pantallas.\n- **Estilos y Constantes**: Definidos en `styles/` y `constants/`.\n- **Utilidades**: Funcionalidades auxiliares como validación de inputs y gestión de notificaciones.\n\n### Backend\n- **Framework**: Node.js con Express.js.\n- **Base de Datos**: MongoDB.\n- **Modelos**: `Booking`, `Review`, `User`, `Worker`.\n- **Rutas CRUD**: `bookingRoutes`, `reviewRoutes`, `uploadRoutes`, `userRoutes`, `workerRoutes`.\n- **Seguridad**:\n  - Hashing de contraseñas con **bcrypt**.\n  - Protección contra ataques de fuerza bruta y consultas maliciosas con **express-rate-limit**, **express-mongo-sanitize**, y **express-slow-down**.\n\n## Estructura del Proyecto\n\n### Frontend\n```\nfrontend/\n  |- app/\n      |- adminHome.tsx\n      |- BookingDetails.tsx\n      |- login.tsx\n      |- register.tsx\n      |- home.tsx\n      |- ...\n  |- components/\n      |- appTextInput.tsx\n      |- ButtonCarousel.tsx\n      |- footer.tsx\n      |- WorkerCard.tsx\n  |- constants/\n      |- fonts.ts\n      |- icons.ts\n      |- layout.ts\n  |- navigation/\n      |- index.tsx\n  |- styles/\n      |- (Archivos de estilos)\n  |- utils/\n      |- apiHelper.ts\n      |- inputValidation.ts\n      |- notificationService.ts\n```\n\n### Backend\n```\nbackend/\n  |- src/\n      |- models/\n          |- Booking.ts\n          |- Review.ts\n          |- User.ts\n          |- Worker.ts\n      |- routes/\n          |- bookingRoutes.ts\n          |- reviewRoutes.ts\n          |- uploadRoutes.ts\n          |- userRoutes.ts\n          |- workerRoutes.ts\n      |- types/\n          |- react-native-calendars.d.ts\n      |- index.ts\n  |- .env\n  |- package.json\n  |- ...\n```\n\n## Instalación\n\n### Requisitos Previos\n\n- Node.js\n- Expo CLI\n- MongoDB\n\n### Instrucciones\n\n1. Clonar el repositorio:\n   ```bash\n   git clone https://github.com/v3gaaa/Manos-Expertas--Mobile-App.git\n   ```\n\n2. Configurar el backend:\n   ```bash\n   cd Manos-Expertas--Mobile-App/backend\n   npm install --force\n   ```\n   Crear un archivo `.env` con las variables necesarias como la URL de MongoDB.\n\n3. Iniciar el servidor:\n   ```bash\n   npm start\n   ```\n\n4. Configurar el frontend:\n   ```bash\n   cd ../frontend\n   npm install\n   ```\n\n5. Iniciar la aplicación:\n   ```bash\n   npm start\n   ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fv3gaaa%2Fmanos-expertas--mobile-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fv3gaaa%2Fmanos-expertas--mobile-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fv3gaaa%2Fmanos-expertas--mobile-app/lists"}