Aplicación Móvil iOS y Android NOMBRE ChiripaPro
Budget: $1,500 – $3,000 USD
Gremio digital de trabajos rápidos (chiripas) para República Dominicana
1) Visión y Propósito
ChiripaPro es una plataforma móvil que conecta a personas que necesitan resolver trabajos rápidos con
técnicos y profesionales verificados. El sistema prioriza la seguridad, la asignación automática por calificación
y la trazabilidad de pagos para prevenir fraude o lavado de activos. La experiencia es 100% local, con
lenguaje cercano y cubrimiento por zonas.
Principios clave
• El cliente no elige al técnico.
• Asignación automática por ranking (calificación) y disponibilidad.
• Notificación escalonada: top 3 primero (5 min), luego siguientes grupos.
• Bloqueo de agenda del técnico al aceptar (estado: ocupado).
• Tarifas por categoría con rangos sugeridos; el cliente no edita precios.
• Pagos dentro de la app; trazabilidad completa; KYC para técnicos.
• Detección de patrones sospechosos (cliente↔técnico repetidos, precios atípicos, GPS anómalo).
2) Módulos de la Aplicación (Cliente y Técnico)
Cliente
1. Publicar Chiripa (texto/voz/foto), categoría, ubicación GPS, fecha/hora.
2. Precio sugerido visible (no editable), aceptar/cancelar.
3. Estado del pedido: Buscando técnico → Asignado → En curso → Finalizado.
4. Chat/WhatsApp activado solo tras la asignación.
5. Pago en app (tarjeta/transferencia/efectivo controlado) y recibo digital.
6. Calificación del técnico y reporte de incidencias.
Técnico
1. Registro + KYC (cédula/INE, selfie y verificación manual/automática).
2. Disponibilidad: Disponible / Ocupado / Desconectado; agenda y bloqueos.
3. Notificaciones de oportunidades: categoría, distancia, tarifa, temporizador 5:00.
4. Aceptar/Rechazar; inicio/fin del trabajo con control de geolocalización.
5. Perfil y reputación (promedio estrellas, trabajos, puntualidad, cancelaciones).
6. Cobro y retiros (payouts) con historial y factura.
3) Flujos y Máquinas de Estados
Flujo de Asignación
Publicación → Validación + Precio → Filtrado (categoría, radio, disponibilidad) → Orden por rating y respuesta
→ Notificación Grupo A (top 3, 5 min) → si nadie acepta → Grupo B (5 min) → ... → Técnico acepta →
Asignación → Bloqueo agenda → Servicio → Pago → Calificaciones.
Estados Job: Borrador → Publicado → Buscando → Asignado → EnCurso → Finalizado → Calificado →
Cerrado/Disputa.
Estados Técnico: Disponible → Ocupado (con rango horario) → Desconectado → Suspendido
(riesgo/queja).
4) Zonas Cubiertas y Tipos de Trabajo
Zonas iniciales: Punta Cana, Bávaro, Verón, Cap Cana, Santo Domingo, Santiago, Bayahibe, La Romana,
Higüey, Samaná.
Categorías:
• Plomería • Electricidad • Refrigeración (AC/neveras) • Albañilería • Pintura • Carpintería • Cerrajería •
Instalación de TV/Redes • Electrodomésticos • Limpieza de hogar/oficina • Niñera/Cuidado • Jardinería •
Chofer/Traslados • Delivery/Mensajería • Mudanzas • Tecnología (PC, routers, cámaras) • Mantenimiento
general.
Subcategorías por ejemplo (Electricidad): Tomacorrientes, cortocircuitos, lámparas, inversores, plantas,
cableado, puesta a tierra.
Subcategorías (Traslados): Hotel ■ Aeropuerto, Punta Cana ■ Bayahibe, Santo Domingo ■ Punta Cana,
Santo Domingo ■ Samaná, etc.
5) Precios, Tarifas y SLA
Modelo: Tarifas base por categoría + variable por distancia/urgencia; rangos predefinidos (p.ej. Plomería
RD$1,000–3,000).
Urgencias: recargo (10–30%) por servicios nocturnos o same■day.
Comisión plataforma: 10% por trabajo completado (configurable).
SLA sugerido: tiempo de arribo estimado 30–90 min en zonas urbanas; notificaciones reintento cada 5 min
por grupo.
Pago: en■app (procesador local: CardNet/Azul) o transferencia validada; efectivo con código de cierre (OTP)
para liberar fondos.
6) Seguridad, Riesgos y Antilavado (AML)
• KYC para técnicos (documento + selfie + validación).
• Cliente no puede elegir técnico; sin chat hasta asignación.
• Límites por categoría y ticket promedio (percentil 95).
• Alertas automáticas si: mismo cliente■técnico se repite inusualmente; precio fuera de rango; GPS
anómalo; pago fallido reiterado.
• Monitor de riesgo interno: risk_flags por usuario/técnico/job con auditoría y motivo.
• Pagos y retiros solo desde la plataforma; conciliación diaria; logs firmados.
7) Tecnologías Recomendadas
App móvil: React Native (Expo) o Flutter (una sola base para iOS/Android).
Backend: Node.js (NestJS) o Python (FastAPI); autenticación con JWT + refresh; colas (BullMQ/Celery) para
notificaciones escalonadas.
Base de datos: PostgreSQL (Supabase) o Firebase (Firestore) + almacenamiento de medios (S3/Cloud
Storage).
Push/Notificaciones: Firebase Cloud Messaging (FCM).
Mapas/GPS: Google Maps Platform.
Pagos: Integración local (CardNet/Azul) y/o Stripe (según disponibilidad).
Observabilidad: logs estructurados, métricas (Prometheus/Grafana), alertas Sentry.
8) API (Esquema de Endpoints)
Autenticación
POST /auth/register (cliente/técnico) • POST /auth/login • POST /auth/kyc • POST /auth/logout
Chiripas
POST /jobs • GET /jobs/{id} • POST /jobs/{id}/cancel • GET /jobs?me=1 (historial cliente)
Asignación
GET /candidates (interno) • POST /jobs/{id}/notify • POST /jobs/{id}/accept (técnico) • POST /jobs/{id}/start •
POST /jobs/{id}/finish
Disponibilidad
POST /tech/{id}/availability • GET /tech/{id}/schedule
Pagos
POST /payments/intent • POST /payments/confirm • POST /payouts/request • GET /receipts/{id}
Reputación
POST /ratings • GET /ratings?tech={id}
Riesgo/Auditoría
GET /risk/flags • POST /risk/flag • GET /audit/logs
9) Esquema de Datos (Tablas principales)
users(id, role, name, phone, email, verified, created_at)
technicians(id, user_id, categories[], rating_avg, jobs_done, response_time_avg, kyc_status)
kyc(id, technician_id, doc_type, doc_number, selfie_hash, status, reviewed_by, reviewed_at)
jobs(id, client_id, category, subcategory, title, description, media[], price_suggested, price_final, zone, address, lat, lng,
schedule_start, schedule_end, status)
job_events(id, job_id, type, timestamp, meta)
availability(id, technician_id, from, to, status)
pricing_rules(id, category, zone, base, min, max, surge_rules)
ratings(id, job_id, rater_id, ratee_id, stars, comment)
payouts(id, technician_id, amount, status, method, created_at)
payments(id, job_id, amount, provider, status, tx_ref, created_at)
risk_flags(id, subject_type, subject_id, rule, severity, created_at)
audit_logs(id, actor_id, action, target_type, target_id, meta, created_at)
device_fingerprints(id, user_id, fingerprint, created_at)
10) Historias de Usuario y Criterios de Aceptación
Cliente publica chiripa: Como cliente, quiero publicar una chiripa con fotos/voz para que la plataforma
encuentre al mejor técnico sin yo elegirlo.
• CA: Si falta información esencial, el sistema me guía; veo precio sugerido y ETA; puedo cancelar antes de
asignar.
Técnico acepta: Como técnico, quiero recibir oportunidades cercanas con un temporizador de 5:00 para
aceptar.
• CA: Al aceptar, mi agenda se bloquea; el cliente recibe mis datos; puedo iniciar y finalizar el servicio con
GPS.
Pagos y cierre: Como cliente, quiero pagar en la app y recibir recibo; como técnico, quiero asegurar mi pago
al cerrar con OTP.
• CA: El pago queda conciliado; el recibo se genera; se permite calificar a ambas partes.
11) Métricas Clave (KPIs) y Analítica
TMA (tiempo medio de aceptación), % asignado en Grupo A, tasa de cancelación, trabajos por
zona/categoría, ticket promedio, NPS, denuncias por 1,000 jobs, fraude detectado, primera respuesta técnica,
retención cohorte 30/60/90 días.
12) Roadmap de Desarrollo (12 semanas)
Sem 1–2: Identidad, wireframes detallados, esquema de datos, setup repos/CI/CD.
Sem 3–4: Backend base (auth, jobs, disponibilidad, ratings), app móvil navegación y formularios.
Sem 5–6: Asignación automática + colas + notificaciones (FCM).
Sem 7–8: Pagos y recibos; KYC; módulo riesgo básico.
Sem 9–10: Perfil técnico, agenda, historial; chat/WhatsApp post■asignación.
Sem 11: Beta cerrada en Punta Cana y Santo Domingo; fixes y métricas.
Sem 12: Lanzamiento MVP + plan de marketing local.
13) Perfil del Desarrollador/a Buscado
• Full■Stack con experiencia real en apps móviles y backends productivos.
• Dominio de React Native o Flutter; y Node.js (NestJS) o Python (FastAPI).
• Integraciones: pagos locales, Google Maps, FCM, almacenamiento de medios.
• Seguridad: auth robusta, reglas de acceso, cifrado básico en tránsito y en reposo.
• Diseño de bases de datos relacionales y eventos; experiencia con colas/CRON.
• Mentalidad de producto: rendimiento, UX móvil, analítica y escalabilidad
1) Visión y Propósito
ChiripaPro es una plataforma móvil que conecta a personas que necesitan resolver trabajos rápidos con
técnicos y profesionales verificados. El sistema prioriza la seguridad, la asignación automática por calificación
y la trazabilidad de pagos para prevenir fraude o lavado de activos. La experiencia es 100% local, con
lenguaje cercano y cubrimiento por zonas.
Principios clave
• El cliente no elige al técnico.
• Asignación automática por ranking (calificación) y disponibilidad.
• Notificación escalonada: top 3 primero (5 min), luego siguientes grupos.
• Bloqueo de agenda del técnico al aceptar (estado: ocupado).
• Tarifas por categoría con rangos sugeridos; el cliente no edita precios.
• Pagos dentro de la app; trazabilidad completa; KYC para técnicos.
• Detección de patrones sospechosos (cliente↔técnico repetidos, precios atípicos, GPS anómalo).
2) Módulos de la Aplicación (Cliente y Técnico)
Cliente
1. Publicar Chiripa (texto/voz/foto), categoría, ubicación GPS, fecha/hora.
2. Precio sugerido visible (no editable), aceptar/cancelar.
3. Estado del pedido: Buscando técnico → Asignado → En curso → Finalizado.
4. Chat/WhatsApp activado solo tras la asignación.
5. Pago en app (tarjeta/transferencia/efectivo controlado) y recibo digital.
6. Calificación del técnico y reporte de incidencias.
Técnico
1. Registro + KYC (cédula/INE, selfie y verificación manual/automática).
2. Disponibilidad: Disponible / Ocupado / Desconectado; agenda y bloqueos.
3. Notificaciones de oportunidades: categoría, distancia, tarifa, temporizador 5:00.
4. Aceptar/Rechazar; inicio/fin del trabajo con control de geolocalización.
5. Perfil y reputación (promedio estrellas, trabajos, puntualidad, cancelaciones).
6. Cobro y retiros (payouts) con historial y factura.
3) Flujos y Máquinas de Estados
Flujo de Asignación
Publicación → Validación + Precio → Filtrado (categoría, radio, disponibilidad) → Orden por rating y respuesta
→ Notificación Grupo A (top 3, 5 min) → si nadie acepta → Grupo B (5 min) → ... → Técnico acepta →
Asignación → Bloqueo agenda → Servicio → Pago → Calificaciones.
Estados Job: Borrador → Publicado → Buscando → Asignado → EnCurso → Finalizado → Calificado →
Cerrado/Disputa.
Estados Técnico: Disponible → Ocupado (con rango horario) → Desconectado → Suspendido
(riesgo/queja).
4) Zonas Cubiertas y Tipos de Trabajo
Zonas iniciales: Punta Cana, Bávaro, Verón, Cap Cana, Santo Domingo, Santiago, Bayahibe, La Romana,
Higüey, Samaná.
Categorías:
• Plomería • Electricidad • Refrigeración (AC/neveras) • Albañilería • Pintura • Carpintería • Cerrajería •
Instalación de TV/Redes • Electrodomésticos • Limpieza de hogar/oficina • Niñera/Cuidado • Jardinería •
Chofer/Traslados • Delivery/Mensajería • Mudanzas • Tecnología (PC, routers, cámaras) • Mantenimiento
general.
Subcategorías por ejemplo (Electricidad): Tomacorrientes, cortocircuitos, lámparas, inversores, plantas,
cableado, puesta a tierra.
Subcategorías (Traslados): Hotel ■ Aeropuerto, Punta Cana ■ Bayahibe, Santo Domingo ■ Punta Cana,
Santo Domingo ■ Samaná, etc.
5) Precios, Tarifas y SLA
Modelo: Tarifas base por categoría + variable por distancia/urgencia; rangos predefinidos (p.ej. Plomería
RD$1,000–3,000).
Urgencias: recargo (10–30%) por servicios nocturnos o same■day.
Comisión plataforma: 10% por trabajo completado (configurable).
SLA sugerido: tiempo de arribo estimado 30–90 min en zonas urbanas; notificaciones reintento cada 5 min
por grupo.
Pago: en■app (procesador local: CardNet/Azul) o transferencia validada; efectivo con código de cierre (OTP)
para liberar fondos.
6) Seguridad, Riesgos y Antilavado (AML)
• KYC para técnicos (documento + selfie + validación).
• Cliente no puede elegir técnico; sin chat hasta asignación.
• Límites por categoría y ticket promedio (percentil 95).
• Alertas automáticas si: mismo cliente■técnico se repite inusualmente; precio fuera de rango; GPS
anómalo; pago fallido reiterado.
• Monitor de riesgo interno: risk_flags por usuario/técnico/job con auditoría y motivo.
• Pagos y retiros solo desde la plataforma; conciliación diaria; logs firmados.
7) Tecnologías Recomendadas
App móvil: React Native (Expo) o Flutter (una sola base para iOS/Android).
Backend: Node.js (NestJS) o Python (FastAPI); autenticación con JWT + refresh; colas (BullMQ/Celery) para
notificaciones escalonadas.
Base de datos: PostgreSQL (Supabase) o Firebase (Firestore) + almacenamiento de medios (S3/Cloud
Storage).
Push/Notificaciones: Firebase Cloud Messaging (FCM).
Mapas/GPS: Google Maps Platform.
Pagos: Integración local (CardNet/Azul) y/o Stripe (según disponibilidad).
Observabilidad: logs estructurados, métricas (Prometheus/Grafana), alertas Sentry.
8) API (Esquema de Endpoints)
Autenticación
POST /auth/register (cliente/técnico) • POST /auth/login • POST /auth/kyc • POST /auth/logout
Chiripas
POST /jobs • GET /jobs/{id} • POST /jobs/{id}/cancel • GET /jobs?me=1 (historial cliente)
Asignación
GET /candidates (interno) • POST /jobs/{id}/notify • POST /jobs/{id}/accept (técnico) • POST /jobs/{id}/start •
POST /jobs/{id}/finish
Disponibilidad
POST /tech/{id}/availability • GET /tech/{id}/schedule
Pagos
POST /payments/intent • POST /payments/confirm • POST /payouts/request • GET /receipts/{id}
Reputación
POST /ratings • GET /ratings?tech={id}
Riesgo/Auditoría
GET /risk/flags • POST /risk/flag • GET /audit/logs
9) Esquema de Datos (Tablas principales)
users(id, role, name, phone, email, verified, created_at)
technicians(id, user_id, categories[], rating_avg, jobs_done, response_time_avg, kyc_status)
kyc(id, technician_id, doc_type, doc_number, selfie_hash, status, reviewed_by, reviewed_at)
jobs(id, client_id, category, subcategory, title, description, media[], price_suggested, price_final, zone, address, lat, lng,
schedule_start, schedule_end, status)
job_events(id, job_id, type, timestamp, meta)
availability(id, technician_id, from, to, status)
pricing_rules(id, category, zone, base, min, max, surge_rules)
ratings(id, job_id, rater_id, ratee_id, stars, comment)
payouts(id, technician_id, amount, status, method, created_at)
payments(id, job_id, amount, provider, status, tx_ref, created_at)
risk_flags(id, subject_type, subject_id, rule, severity, created_at)
audit_logs(id, actor_id, action, target_type, target_id, meta, created_at)
device_fingerprints(id, user_id, fingerprint, created_at)
10) Historias de Usuario y Criterios de Aceptación
Cliente publica chiripa: Como cliente, quiero publicar una chiripa con fotos/voz para que la plataforma
encuentre al mejor técnico sin yo elegirlo.
• CA: Si falta información esencial, el sistema me guía; veo precio sugerido y ETA; puedo cancelar antes de
asignar.
Técnico acepta: Como técnico, quiero recibir oportunidades cercanas con un temporizador de 5:00 para
aceptar.
• CA: Al aceptar, mi agenda se bloquea; el cliente recibe mis datos; puedo iniciar y finalizar el servicio con
GPS.
Pagos y cierre: Como cliente, quiero pagar en la app y recibir recibo; como técnico, quiero asegurar mi pago
al cerrar con OTP.
• CA: El pago queda conciliado; el recibo se genera; se permite calificar a ambas partes.
11) Métricas Clave (KPIs) y Analítica
TMA (tiempo medio de aceptación), % asignado en Grupo A, tasa de cancelación, trabajos por
zona/categoría, ticket promedio, NPS, denuncias por 1,000 jobs, fraude detectado, primera respuesta técnica,
retención cohorte 30/60/90 días.
12) Roadmap de Desarrollo (12 semanas)
Sem 1–2: Identidad, wireframes detallados, esquema de datos, setup repos/CI/CD.
Sem 3–4: Backend base (auth, jobs, disponibilidad, ratings), app móvil navegación y formularios.
Sem 5–6: Asignación automática + colas + notificaciones (FCM).
Sem 7–8: Pagos y recibos; KYC; módulo riesgo básico.
Sem 9–10: Perfil técnico, agenda, historial; chat/WhatsApp post■asignación.
Sem 11: Beta cerrada en Punta Cana y Santo Domingo; fixes y métricas.
Sem 12: Lanzamiento MVP + plan de marketing local.
13) Perfil del Desarrollador/a Buscado
• Full■Stack con experiencia real en apps móviles y backends productivos.
• Dominio de React Native o Flutter; y Node.js (NestJS) o Python (FastAPI).
• Integraciones: pagos locales, Google Maps, FCM, almacenamiento de medios.
• Seguridad: auth robusta, reglas de acceso, cifrado básico en tránsito y en reposo.
• Diseño de bases de datos relacionales y eventos; experiencia con colas/CRON.
• Mentalidad de producto: rendimiento, UX móvil, analítica y escalabilidad