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.
- Descripción del Proyecto
- Funcionalidades
- Tecnologías Utilizadas
- Estructura del Proyecto
- Instalación
- Contribuir
- Licencia
"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.
- Perfiles de Profesionistas: Los perfiles son creados y dados de alta por el Banco de Alimentos mediante el uso de perfiles admin.
- Nombre, apellido, profesión y descripción de sus habilidades.
- Imágenes de sus trabajos anteriores.
- Calificaciones y reseñas dejadas por otros usuarios.
- Información de contacto.
- Usuarios: Los usuarios pueden buscar trabajadores en el catálogo, ver sus perfiles y reservar citas para recibir servicios.
- Calificación y Reseñas: Los usuarios pueden calificar y dejar reseñas una vez completado el trabajo.
- Búsqueda y Filtrado: Búsqueda de trabajadores por habilidades, profesión o calificación.
- Reserva de Citas: Los usuarios seleccionan la disponibilidad del trabajador a través de un calendario.
- Interfaz Amigable: La aplicación ofrece una interfaz intuitiva y envía notificaciones sobre las citas y estados de las mismas.
- Framework: Expo y React Native.
- Componentes Clave:
WorkerDetail
,CalendarAvailability
,TimeAvailability
,BookingSuccess
,AllBookedAppointments
,BookingDetails
.- Componentes reutilizables como
appTextInput
,ButtonCarousel
,footer
,WorkerCard
.
- Navegación:
index.tsx
maneja la navegación entre pantallas. - Estilos y Constantes: Definidos en
styles/
yconstants/
. - Utilidades: Funcionalidades auxiliares como validación de inputs y gestión de notificaciones.
- Framework: Node.js con Express.js.
- Base de Datos: MongoDB.
- Modelos:
Booking
,Review
,User
,Worker
. - Rutas CRUD:
bookingRoutes
,reviewRoutes
,uploadRoutes
,userRoutes
,workerRoutes
. - Seguridad:
- Hashing de contraseñas con bcrypt.
- Protección contra ataques de fuerza bruta y consultas maliciosas con express-rate-limit, express-mongo-sanitize, y express-slow-down.
frontend/
|- app/
|- adminHome.tsx
|- BookingDetails.tsx
|- login.tsx
|- register.tsx
|- home.tsx
|- ...
|- components/
|- appTextInput.tsx
|- ButtonCarousel.tsx
|- footer.tsx
|- WorkerCard.tsx
|- constants/
|- fonts.ts
|- icons.ts
|- layout.ts
|- navigation/
|- index.tsx
|- styles/
|- (Archivos de estilos)
|- utils/
|- apiHelper.ts
|- inputValidation.ts
|- notificationService.ts
backend/
|- src/
|- models/
|- Booking.ts
|- Review.ts
|- User.ts
|- Worker.ts
|- routes/
|- bookingRoutes.ts
|- reviewRoutes.ts
|- uploadRoutes.ts
|- userRoutes.ts
|- workerRoutes.ts
|- types/
|- react-native-calendars.d.ts
|- index.ts
|- .env
|- package.json
|- ...
- Node.js
- Expo CLI
- MongoDB
-
Clonar el repositorio:
git clone https://github.com/v3gaaa/Manos-Expertas--Mobile-App.git
-
Configurar el backend:
cd Manos-Expertas--Mobile-App/backend npm install --force
Crear un archivo
.env
con las variables necesarias como la URL de MongoDB. -
Iniciar el servidor:
npm start
-
Configurar el frontend:
cd ../frontend npm install
-
Iniciar la aplicación:
npm start