
HomeFix
Plataforma que conecta clientes con profesionales de oficios del hogar.
HomeFix es una plataforma que conecta clientes con profesionales del hogar en pocos pasos, facilitando la publicación de trabajos, la postulación de trabajadores y el proceso de contratación. Integra un asistente de IA para ayudar en la creación de avisos, además de incorporar sistemas de licitaciones, subcontrataciones, reseñas bidireccionales y emergencias.
- React
- Vite
- Node.js
- Express
- Prisma
- MySQL
Imágenes del proyecto







Qué lo hace interesante
Búsqueda por distancia y emergencias
Radio en km, filtros por categoría y paginación. Publicaciones de emergencia que expiran a las 24h y se difunden por Telegram.
Licitaciones y subcontratos
Licitaciones con ponderaciones de criterios y presupuesto máximo. Subcontratos con múltiples puestos agrupados por rubro.
Asistente con IA (Gemini)
Chat que diagnostica el problema del cliente, recomienda categoría y autogenera el borrador del post
KYC con Didit
Verificación de identidad con Didit (foto del DNI y selfie) para trabajadores y con validación de documentos.
Reseñas bidireccionales
Clientes y trabajadores se califican mutuamente (1-5, con fotos) solo tras completar o cancelar el trabajo.
Arquitectura
Backend con capas estrictas documentadas en ARCHITECTURE.md y una regla dura: cada capa solo importa hacia abajo. En la práctica es una arquitectura Domain Driven Design simplificada sin use cases con dependencia invertida.
presentation/Routes Express, middleware (JWT de Auth0, manejo de errores), DTOs y transformers (Date → ISO). Swagger en /api-docs.
domain/Servicios con la lógica de negocio y reglas (guards 404/403, validaciones). Tipos de dominio con Date.
infrastructure/Acceso a datos (queries Prisma), transformers (Prisma → dominio) y providers externos: Auth0, Gemini, Cloudinary, Telegram, Didit.
lib/Utilidades compartidas: cliente Prisma, env, logger pino y errores.
Frontend
React 19 + Vite + TypeScript con Tailwind CSS 4, React Router 7, Leaflet para mapas y PWA (vite-plugin-pwa). Organizado en views/, components/, hooks/ por feature (useCreatePost, useDiagnosisChat), services/ (clientes axios tipados) y types/.
Características principales
- Publicación de trabajos por categoría con imágenes, rango de fechas y dirección con lat/long.
- Postulaciones de trabajadores con mensaje, disponibilidad de días, costo de visita y estimación.
- Flujo de contratación con estados (Active → InProgress → Completed/Cancelled), pausa y cancelación.
- Token de inicio de 4 dígitos (TTL 5 min, 5 intentos) que el trabajador genera y el cliente valida.
- Autenticación Auth0 con verificación de email, recuperación de contraseña y roles por claim.
- Notificaciones en tiempo real por Telegram y dashboard con estadísticas de trabajo.
- Perfiles públicos con rating, subida de imágenes a Cloudinary y calendario del trabajador.
Calidad y despliegue
- Testing por capas con Vitest + Supertest (service, data, routes) y Testing Library en el cliente.
- TypeScript estricto con ESLint; typecheck, lint y build verificados en CI.
- CI/CD con GitHub Actions (3 jobs: lint, build, test) con MySQL en contenedor.
- Producción: backend en Railway, frontend en Vercel y base de datos en Aiven con MySQL 8.
¿Querés ver el resto?
Explorá otros proyectos donde aplico buenas prácticas de arquitectura, rendimiento y experiencia de usuario.
Ver todos los proyectos