Modulo makers3d desarrollado con codex V 0.0.1

This commit is contained in:
Ryuk Mike
2026-07-29 23:58:58 +02:00
commit 2bedf7cbb7
171 changed files with 29421 additions and 0 deletions
+162
View File
@@ -0,0 +1,162 @@
# Makers3D - Deployment Runbook
## 1. Requisitos
- Debian 13
- Docker
- Docker Compose
- 4 GB RAM recomendados
- 20 GB libres como minimo
## 2. Archivos necesarios
- `compose.yaml`
- `.env`
- carpeta `apps/`
- carpeta `packages/`
- carpeta `infrastructure/`
- carpeta `docs/`
## 3. Variables minimas
Partir de `.env.example` y ajustar:
- `POSTGRES_PASSWORD`
- `SESSION_SECRET`
- `APP_URL`
- `MINIO_ROOT_USER`
- `MINIO_ROOT_PASSWORD`
- `PAYMENT_PROVIDER`
- `MERCADOPAGO_ACCESS_TOKEN` si se activa el proveedor real
## 4. Primer despliegue
```bash
cp .env.example .env
docker compose build
docker compose up -d
docker compose exec -T api node apps/api/dist/apps/api/src/scripts/migrate.js
docker compose exec -T api node apps/api/dist/apps/api/src/scripts/seed.js
```
### Activar HTTPS real en `dev.jazari.com.ar`
El proyecto ya incluye estructura para Let's Encrypt con renovacion automatica.
1. Ajustar `.env`:
- `APP_URL=https://dev.jazari.com.ar`
2. Obtener el certificado:
```bash
./scripts/setup-https.sh dev.jazari.com.ar
```
Si se quiere registrar correo en Let's Encrypt:
```bash
./scripts/setup-https.sh dev.jazari.com.ar ops@tu-dominio.com
```
3. Instalar renovacion automatica:
```bash
./scripts/install-cert-renew-cron.sh
```
4. Verificar:
```bash
./scripts/renew-certs.sh
```
## 5. Verificacion inicial
```bash
curl -fsS http://127.0.0.1/api/v1/health
curl -fsS http://127.0.0.1/api/v1/makers
```
Comprobar tambien:
- `https://dev.jazari.com.ar/`
- `http://SERVER_IP/login`
- `http://SERVER_IP/account`
- instalacion PWA en Android desde Chrome: menu > `Instalar app`
## 6. Credenciales demo
- Admin: `admin@makers3d.local` / `Admin123!`
- Maker: `maker1@makers3d.local` / `Maker123!`
- Cliente: `cliente1@makers3d.local` / `Cliente123!`
## 7. Actualizacion
```bash
docker compose build
docker compose up -d
```
Si cambia el esquema:
```bash
docker compose exec -T api node apps/api/dist/apps/api/src/scripts/migrate.js
```
## 8. Logs utiles
```bash
docker compose logs -f api
docker compose logs -f web
docker compose logs -f worker
docker compose logs -f nginx
docker compose logs -f certbot
```
## 9. Problemas comunes
### `api` no arranca
Revisar:
- `DATABASE_URL`
- `SESSION_SECRET`
- credenciales MinIO
- si el esquema ya fue aplicado
### `nginx` no responde
Relanzar:
```bash
docker compose up -d nginx
```
Si falla solo la parte TLS:
```bash
cp infrastructure/nginx/nginx.http.conf infrastructure/nginx/runtime/nginx.conf
docker compose up -d --force-recreate nginx
./scripts/setup-https.sh dev.jazari.com.ar
```
### El login falla
Revisar cookies, `APP_URL` y que el navegador entre por Nginx y no directamente al contenedor.
## 10. Corte rapido de la demo
```bash
docker compose down
```
Mantiene volumenes.
## 11. Borrado completo
```bash
docker compose down -v
```
Elimina datos.
@@ -0,0 +1,405 @@
# Makers3D - Arquitectura e Infraestructura
## 1. Principios tecnicos
1. Un solo sistema, no un conjunto de promesas futuras.
2. PostgreSQL como fuente canonica unica.
3. Monolito modular antes que microservicios.
4. Infraestructura suficiente para beta, no para una escala imaginaria.
5. Todo servicio debe justificar claramente su existencia.
## 2. Arquitectura elegida
### Vision general
```text
Usuario web
|
Nginx
|
Next.js (web)
|
NestJS API
|
PostgreSQL + PostGIS
|
MinIO
|
Worker
```
### Decisiones clave
- una sola aplicacion web para publico, cuenta, area maker y admin;
- una sola API de negocio;
- una sola base de datos;
- un solo worker para tareas asincronas y tareas programadas simples;
- un solo proxy perimetral;
- un solo sistema de almacenamiento de objetos.
## 3. Stack aprobado
### Web
- Next.js App Router;
- renderizado SSR para vistas publicas principales;
- llamadas a API REST propia;
- responsive web;
- sin app nativa en MVP;
- sin PWA avanzada en MVP.
### API
- NestJS;
- Fastify;
- versionado `/api/v1`;
- validacion de entrada;
- contratos JSON claros;
- auth por cookie segura.
### Datos
- PostgreSQL 16;
- PostGIS;
- `pg_trgm`;
- `unaccent`.
### Archivos
- MinIO;
- buckets publicos y privados separados;
- URLs firmadas para privados;
- imagenes publicas optimizadas.
### Asincronia
- worker unico;
- cola con PostgreSQL;
- reintentos controlados;
- tareas idempotentes.
### Mapa
- MapLibre en frontend;
- teselas o PMTiles servidas por Nginx;
- fallback completo a lista si el mapa falla.
### Pagos
- Mercado Pago para la suscripcion maker;
- webhooks verificados;
- conciliacion basica;
- pago aprobado no publica automaticamente.
## 4. Servicios y por que existen
| Servicio | Existe porque |
|---|---|
| `web` | Entrega toda la experiencia visible del producto. |
| `api` | Centraliza reglas de negocio, auth, publicacion, pagos y moderacion. |
| `worker` | Evita bloquear la API con email, imagenes y webhooks. |
| `postgres` | Conserva datos transaccionales, geograficos y de auditoria. |
| `minio` | Permite archivos desacoplados del contenedor y faciles de respaldar. |
| `nginx` | Publica web, API, activos y TLS en una sola capa simple. |
No se crean por ahora:
- `scheduler` separado;
- `redis`;
- `grafana`;
- `prometheus`;
- `loki`;
- `tempo`;
- `rabbitmq`;
- `kafka`;
- `elasticsearch`;
- `opensearch`;
- `kubernetes`.
## 5. Estructura del proyecto
```text
makers3d/
├── apps/
│ ├── web/
│ ├── api/
│ └── worker/
├── packages/
│ ├── contracts/
│ ├── database/
│ ├── shared/
│ └── ui/
├── infrastructure/
│ ├── docker/
│ ├── nginx/
│ ├── scripts/
│ └── backups/
└── docs/
```
Esta estructura es suficiente para trabajar con un equipo pequeno y agentes de IA sin crear paquetes vacios.
## 6. Base de datos
### Entidades principales
- accounts
- sessions
- maker_profiles
- maker_locations
- maker_services
- maker_works
- inquiries
- conversations
- messages
- subscriptions
- payments
- relationships
- reviews
- moderation_cases
- audit_events
### Reglas de modelado
- UUID internos;
- slugs publicos solo donde aporten valor;
- `timestamptz` para fechas;
- dinero en enteros por moneda;
- integridad por claves y restricciones antes que por logica suelta;
- historial solo donde cambie el comportamiento del negocio.
### PostGIS
Se usa para:
- guardar coordenada privada del maker;
- derivar punto publico aproximado;
- calcular distancia real;
- filtrar por radio;
- soportar cobertura local.
No se usa para:
- analitica compleja;
- tracking continuo;
- multiples geometrias innecesarias en MVP.
## 7. Busqueda
La busqueda inicial se resuelve en PostgreSQL con:
- texto libre;
- trigramas;
- campos normalizados;
- filtros estructurados;
- radio geografico;
- distincion entre recogida local y envio.
No se incorpora motor externo hasta que exista evidencia de que PostgreSQL no alcanza.
## 8. Archivos y multimedia
### Tipos permitidos en MVP
- JPG;
- PNG;
- WebP;
- PDF.
### Tipos excluidos en MVP
- STL publico;
- ZIP;
- RAR;
- 3MF;
- videos largos.
### Flujo
1. La API autoriza una subida.
2. El archivo se guarda en MinIO.
3. El worker valida y genera derivados cuando aplique.
4. El sistema actualiza el estado.
5. Solo entonces el recurso puede usarse publicamente.
Esto simplifica mucho seguridad y moderacion.
## 9. Autenticacion y autorizacion
### Autenticacion
- email y contrasena;
- hash Argon2id;
- verificacion de email;
- recuperacion por token de un solo uso;
- sesiones opacas con cookie HttpOnly.
### Autorizacion
Roles fijos del MVP:
- guest;
- user;
- maker;
- admin.
No se implementa un motor de permisos granulares en la primera version. El admin concentra soporte, moderacion y gestion comercial en beta.
## 10. Mensajeria
### Decision
La mensajeria usa polling controlado.
### Motivo
- reduce complejidad operativa;
- no exige infraestructura de tiempo real;
- es suficiente para una beta cerrada.
### Frecuencia sugerida
- refresco manual siempre disponible;
- polling cada 20 a 30 segundos en conversacion abierta;
- pausa cuando la pestana queda inactiva.
WebSockets quedan fuera del MVP. SSE puede evaluarse mas adelante.
## 11. Infraestructura de despliegue
### Entornos
- local;
- staging;
- produccion beta.
No hace falta un cuarto entorno al principio.
### Orquestacion
- Docker Compose en todos los entornos;
- imagenes versionadas;
- variables y secretos por entorno;
- volumentes persistentes claros;
- despliegue manual asistido al inicio.
### Proxy y TLS
- Nginx como entrada unica;
- HTTPS obligatorio;
- certificados automaticos;
- sin puertos internos expuestos al exterior.
## 12. Backups y restore
### Base de datos
- backup completo nocturno;
- archivado frecuente de WAL o estrategia equivalente;
- prueba de restauracion antes de abrir beta.
### Objetos
- copia diaria de buckets;
- verificacion por hash cuando sea posible.
### Regla de salida
No se abre beta con usuarios reales sin una restauracion comprobada.
## 13. Seguridad
### Obligatoria en MVP
- HTTPS;
- cookies seguras;
- CSRF en formularios autenticados;
- rate limiting;
- proteccion basica contra brute force;
- validacion estricta de entrada;
- sanitizacion de archivos permitidos;
- ocultacion de coordenadas privadas;
- URLs firmadas para privados;
- auditoria de acciones admin.
### Diferida
- MFA para todos los usuarios;
- SIEM;
- trazas distribuidas;
- WAF externo;
- secretos centralizados avanzados.
## 14. Logs y observabilidad
### Minimo obligatorio
- logs JSON en web, API y worker;
- request ID;
- endpoint de health;
- registro de errores de pagos, uploads y webhooks;
- panel simple o lectura directa de logs en staging y produccion beta.
### No obligatorio al inicio
- paneles complejos;
- trazas distribuidas exhaustivas;
- metricas de alta cardinalidad.
## 15. CI CD
### Pipeline minimo
- install reproducible;
- lint;
- typecheck;
- tests unitarios;
- tests de integracion esenciales;
- build de web, api y worker;
- construccion de imagenes.
### Despliegue minimo
- merge a rama principal;
- build de imagenes versionadas;
- despliegue manual a staging;
- smoke test;
- aprobacion;
- despliegue a produccion beta.
Esto es mas realista que automatizar completamente el release desde el primer dia.
## 16. Hardening operativo
Antes de abrir beta:
- backups verificados;
- conciliacion de pagos probada;
- moderacion operable;
- logs utiles;
- restores probados;
- rutas privadas revisadas;
- direccion exacta protegida;
- contenido minimo de soporte.
## 17. Lo que no se debe construir todavia
- cache distribuida si no hay cuello de botella;
- cola externa si PostgreSQL aun responde;
- varios proxies;
- varios paneles de observabilidad;
- app movil;
- publicidad;
- algoritmos complejos de ranking;
- permisos internos granulares;
- ingestion de cualquier tipo de archivo.
## 18. Criterio final
La arquitectura correcta para Makers3D no es la mas sofisticada. Es la que permite:
- lanzar rapido;
- cobrar sin sustos;
- moderar sin caos;
- recuperar datos;
- y evolucionar sin rehacer el nucleo.
+170
View File
@@ -0,0 +1,170 @@
# Makers3D - Auditoria MVP
## 1. Dictamen ejecutivo
La propuesta original acierta en la promesa de negocio, pero mezcla un MVP real con capas de producto, UX y arquitectura propias de una fase posterior. La reauditoria reduce el proyecto a una plataforma de descubrimiento y contacto profesional para makers 3D en Argentina, manteniendo el negocio principal:
- descubrir makers por zona, especialidad y capacidad;
- mostrar portfolio real y servicios;
- iniciar contacto dentro de la plataforma;
- permitir seguimiento basico de la conversacion;
- cobrar al maker por aparecer publicamente.
Se elimina o difiere todo lo que no acelera esas cinco promesas.
## 2. Decisiones de recorte
### Se conserva como nucleo
- mapa, lista, busqueda y filtros;
- perfil publico del maker;
- trabajos publicados;
- servicios publicados;
- cuenta unica para cliente y maker;
- alta de maker en borrador;
- publicacion condicionada a calidad minima y suscripcion activa;
- contacto guiado;
- bandeja de mensajes;
- resena verificada tras relacion completada;
- moderacion y backoffice basicos;
- un unico plan de pago.
### Se difiere
- favoritos;
- comparacion entre makers;
- escaparates tematicos;
- multiples ubicaciones por maker;
- dashboard avanzado y analitica de negocio;
- PWA instalable completa;
- notificaciones push;
- patrocinio y publicidad;
- SEO programatico avanzado;
- permisos granulares internos;
- telemetria avanzada;
- automatizaciones comerciales.
### Se elimina del MVP
- marketplace;
- checkout cliente-maker;
- apps nativas;
- gamificacion;
- likes, comentarios y senales sociales publicas;
- reputacion externa no verificable;
- microservicios;
- orquestacion compleja;
- motores de busqueda externos;
- tiempo real por WebSockets;
- stack de observabilidad pesada desde el dia uno.
## 3. Clasificacion funcional
| Componente | Clasificacion | Decision |
|---|---|---|
| Descubrimiento en mapa y lista | OBLIGATORIO | Es la promesa central del producto. |
| Busqueda textual y filtros por servicio, tecnologia, material, distancia y envio | OBLIGATORIO | Sin esto el mapa es solo decoracion. |
| Perfil publico del maker | OBLIGATORIO | Convierte descubrimiento en confianza. |
| Trabajos publicados con fotos | OBLIGATORIO | La prueba principal de calidad del maker. |
| Servicios publicados | OBLIGATORIO | Permiten explicar que ofrece cada maker. |
| Cuenta unica cliente-maker | OBLIGATORIO | Reduce friccion y soporte. |
| Perfil maker en borrador privado | OBLIGATORIO | Permite preparar la oferta antes de pagar. |
| Publicacion condicionada a minimos de calidad | OBLIGATORIO | Evita mapa vacio o basura pagada. |
| Suscripcion unica para aparicion publica | OBLIGATORIO | Es el modelo de ingresos inicial. |
| Contacto guiado | OBLIGATORIO | Convierte visitas en consultas utiles. |
| Mensajeria interna basica | OBLIGATORIO | Da trazabilidad y permite resenas verificadas. |
| Resena verificada tras trabajo completado | OBLIGATORIO | La reputacion debe nacer de relaciones reales. |
| Moderacion y backoffice basicos | OBLIGATORIO | Sin esto no hay confianza operable. |
| Geolocalizacion del navegador | RECOMENDADO | Mejora la apertura, pero debe existir alternativa manual. |
| SEO basico de perfil y trabajo | RECOMENDADO | Aporta captacion sin rehacer producto. |
| Emails transaccionales | RECOMENDADO | Necesarios para verificacion y eventos criticos. |
| Favoritos | FASE 2 | Util, pero no cambia la propuesta inicial. |
| Comparacion entre makers | FASE 2 | Valiosa, pero prescindible para abrir beta. |
| Escaparates tematicos | FASE 2 | Son una mejora editorial, no una necesidad comercial. |
| Multiples ubicaciones por maker | FASE 2 | Añade complejidad operativa y geoespacial. |
| Dashboard con embudos y estadisticas avanzadas | FASE 2 | Conviene medir primero antes de sofisticar. |
| Notificaciones internas ricas y push | FASE 2 | La combinacion email + badge es suficiente al inicio. |
| SEO programatico por provincias y categorias | FASE 2 | Requiere oferta real y control editorial. |
| Programa de makers fundadores automatizado | FASE 2 | Puede operarse manualmente en beta. |
| Publicidad sectorial y patrocinio | FASE 3 | Solo cuando exista volumen y reglas maduras. |
| Comunidad, cursos, eventos y contenido social | FASE 3 | Son negocios distintos. |
| App nativa iOS/Android | FASE 3 | No acelera validacion inicial. |
| Marketplace completo | ELIMINAR | Cambia el negocio y multiplica riesgo legal y tecnico. |
| Gamificacion | ELIMINAR | No resuelve el problema principal. |
| Likes y comentarios publicos | ELIMINAR | Introducen ruido y falsos signos de calidad. |
| Reseñas externas no verificadas | ELIMINAR | Complican confianza y moderacion sin suficiente valor. |
## 4. Clasificacion tecnica
| Componente | Clasificacion | Decision |
|---|---|---|
| API REST monolitica modular | OBLIGATORIO | Mas barata y mas facil de operar que microservicios. |
| Next.js para web responsive | OBLIGATORIO | Resuelve publico, cuenta, area maker y admin en una sola app. |
| NestJS para API | OBLIGATORIO | Ordena dominio, auth y pagos sin inventar estructura. |
| PostgreSQL | OBLIGATORIO | Fuente canonica unica para negocio, mensajes y pagos. |
| PostGIS | OBLIGATORIO | El mapa y la distancia son parte del producto, no un adorno. |
| FTS + pg_trgm en PostgreSQL | OBLIGATORIO | Cubre busqueda inicial sin otro motor. |
| Docker | OBLIGATORIO | Simplifica desarrollo, staging y despliegue. |
| Docker Compose | OBLIGATORIO | Suficiente para MVP autoalojado. |
| Nginx como proxy y servidor de activos | OBLIGATORIO | Una sola pieza perimetral basta para empezar. |
| Storage S3-compatible | OBLIGATORIO | Evita acoplar archivos al contenedor. |
| MinIO | OBLIGATORIO | Opcion self-hosted simple para almacenamiento inicial. |
| Worker unico para tareas asincronas | OBLIGATORIO | Necesario para email, imagenes y webhooks. |
| Polling controlado para mensajeria | OBLIGATORIO | Mucho mas simple que tiempo real completo. |
| Logs estructurados | OBLIGATORIO | Base minima de soporte y auditoria. |
| Backups de base de datos y objetos | OBLIGATORIO | Sin esto no debe abrirse beta. |
| Seguridad base: Argon2id, cookies seguras, CSRF, rate limiting, URLs firmadas | OBLIGATORIO | Minimo para usuarios y cobros reales. |
| Autenticacion por email y contraseña | OBLIGATORIO | Camino mas directo y entendible. |
| Autorizacion por roles fijos | OBLIGATORIO | Guest, user, maker y admin cubren el MVP. |
| Mercado Pago | OBLIGATORIO | Solucion inicial mas pragmatica para cobrar en Argentina. |
| CI minimo con tests y build | OBLIGATORIO | Reduce roturas al trabajar con humanos e IA. |
| Geolocalizacion del navegador | RECOMENDADO | Buen atajo UX, nunca obligatoria. |
| Email transaccional externo | RECOMENDADO | Ahorra mucho riesgo de entregabilidad. |
| MapLibre + PMTiles | RECOMENDADO | Mantiene control de costes y evita dependencia temprana de terceros. |
| Observabilidad minima de salud y errores | RECOMENDADO | Suficiente para beta cerrada. |
| Redis | FASE 2 | Solo si el trafico o el rate limiting lo exigen. |
| BullMQ | FASE 2 | Solo si PostgreSQL deja de ser suficiente para colas. |
| CDN | FASE 2 | No hace falta antes de comprobar volumen y geografia real. |
| Cloudflare | FASE 2 | Puede ayudar despues, no debe condicionar el arranque. |
| SSE para actualizacion de bandeja | FASE 2 | Mejora UX sin ser requisito inicial. |
| Scheduler separado | FASE 2 | El worker puede asumir tareas programadas al principio. |
| Observabilidad con paneles y alertas avanzadas | FASE 2 | Conveniente tras la beta interna. |
| Grafana | FASE 3 | Util cuando haya mas servicios y alertas formales. |
| Prometheus | FASE 3 | No justifica su coste operativo al inicio. |
| Loki | FASE 3 | Los logs estructurados bastan en MVP. |
| Tempo | FASE 3 | Trazas distribuidas sin sistema distribuido no son prioridad. |
| Traefik | ELIMINAR | Duplica funciones cubiertas por Nginx. |
| RabbitMQ | ELIMINAR | Sobreingenieria para el volumen esperado. |
| Kafka | ELIMINAR | Totalmente fuera de escala para el MVP. |
| Elasticsearch | ELIMINAR | PostgreSQL cubre el problema inicial. |
| OpenSearch | ELIMINAR | Mismo motivo que Elasticsearch. |
| Kubernetes | ELIMINAR | Añade operacion sin aportar valor temprano. |
| WebSockets | ELIMINAR | La mensajeria puede nacer con polling. |
| Prisma | ELIMINAR | Penaliza flexibilidad SQL y PostGIS; no simplifica el nucleo. |
| Microservicios | ELIMINAR | Mas coste, mas despliegue, mas mantenimiento. |
## 5. Reglas de simplificacion aprobadas
1. Un maker tendra una sola ubicacion operativa en el MVP.
2. Un maker publicara al menos un servicio y un trabajo con foto.
3. La suscripcion habilita la posibilidad de publicar, pero no publica por si sola.
4. Las resenas validas nacen de una relacion completada en la plataforma.
5. Los archivos del MVP se limitan a imagenes y PDF. No habra STL, ZIP o 3MF publicos.
6. El mapa es importante, pero toda accion critica debe tener alternativa en lista.
7. El backoffice sera austero: cola de revision, ficha de maker, pagos, casos y auditoria.
8. Toda capacidad futura solo entra si mejora conversion, confianza o coste operativo.
## 6. Forma final del MVP
Makers3D debe salir como:
- una web responsive;
- con mapa y lista;
- con makers publicos de pago;
- con portfolios visuales simples;
- con contacto guiado;
- con seguimiento basico de mensajes;
- con reputacion nacida de trabajos reales;
- y con operacion interna suficiente para moderar, cobrar y responder incidencias.
Todo lo demas debe esperar a que exista uso real.
+413
View File
@@ -0,0 +1,413 @@
# Makers3D - Especificacion Minima
## 1. Proposito
Makers3D es una plataforma web para descubrir, evaluar y contactar makers y proveedores de fabricacion 3D en Argentina. No es un marketplace ni procesa el pago entre cliente y maker. Su funcion es ayudar a encontrar al profesional adecuado y permitir el primer contacto con contexto suficiente.
## 2. Alcance del MVP
El MVP incluye:
- descubrimiento publico mediante mapa y lista;
- busqueda y filtros;
- perfil publico del maker;
- publicacion de trabajos y servicios;
- cuenta unica para cliente y maker;
- alta de maker en borrador;
- suscripcion unica para aparecer publicamente;
- contacto guiado;
- mensajeria interna basica;
- resenas verificadas;
- moderacion y administracion basicas.
Queda fuera del MVP:
- compra de piezas o servicios dentro de la plataforma;
- apps nativas;
- favoritos;
- comparacion entre makers;
- escaparates tematicos;
- multiples planes;
- multiples ubicaciones por maker;
- gamificacion;
- publicidad;
- patrocinio;
- comunidad social;
- cotizaciones automáticas.
## 3. Actores
### Visitante
Persona que navega sin cuenta y puede:
- explorar mapa y lista;
- buscar y filtrar;
- ver perfiles, trabajos y servicios;
- iniciar una consulta;
- registrarse sin perder el contexto.
### Cliente registrado
Usuario con cuenta que puede:
- enviar consultas;
- mantener conversaciones;
- marcar un trabajo como completado si ambas partes lo confirman;
- dejar una resena verificada cuando exista relacion valida;
- gestionar su cuenta y privacidad.
### Maker
Usuario con cuenta que, ademas, puede:
- crear un perfil profesional privado;
- configurar una ubicacion publica;
- publicar servicios;
- publicar trabajos;
- gestionar disponibilidad;
- responder consultas;
- contratar y gestionar su plan.
### Admin
Usuario interno que puede:
- revisar makers, contenido y resenas;
- gestionar casos e incidencias;
- consultar estado de pagos;
- suspender publicacion cuando exista causa;
- acceder a auditoria basica.
## 4. Objetos funcionales
### Cuenta
Identidad base del usuario. Una misma cuenta puede actuar como cliente y maker.
### Perfil maker
Ficha profesional del maker. Puede existir en borrador sin ser publica.
### Ubicacion
Unica ubicacion operativa del maker en el MVP. Se guarda con coordenada privada y proyeccion publica protegida cuando corresponda.
### Servicio
Oferta que explica que hace el maker, con capacidad, tecnologia y modalidades.
### Trabajo
Caso real publicado por el maker con fotos y descripcion.
### Consulta
Primer contacto estructurado entre cliente y maker.
### Conversacion
Hilo de mensajes asociado a una consulta.
### Suscripcion
Estado comercial del maker respecto a su aparicion publica.
### Relacion
Confirmacion de que la consulta llego a convertirse en trabajo realizado.
### Resena
Valoracion posterior a una relacion completada.
### Caso de moderacion
Registro interno para revisar contenido, resenas o conducta.
## 5. Recorridos principales
### 5.1 Descubrir un maker
1. El visitante entra en la home.
2. Ve mapa, lista o ambas vistas segun dispositivo.
3. Puede usar ubicacion manual o geolocalizacion opcional.
4. Aplica busqueda y filtros.
5. Abre un perfil.
6. Revisa trabajos, servicios, ubicacion publica y resenas.
7. Inicia una consulta.
### 5.2 Enviar una consulta
1. El usuario pulsa contactar desde perfil, trabajo o servicio.
2. La plataforma muestra un formulario guiado segun contexto.
3. El usuario responde necesidad, material, tamano, cantidad, urgencia, envio y adjuntos permitidos.
4. La plataforma genera un resumen editable.
5. Si el usuario no esta registrado, se registra o accede sin perder el borrador.
6. La consulta se envia una sola vez.
7. Se crea una conversacion.
### 5.3 Crear una presencia maker
1. El usuario crea cuenta.
2. Activa su area maker.
3. Completa perfil basico.
4. Configura una ubicacion.
5. Declara disponibilidad.
6. Publica al menos un servicio.
7. Publica al menos un trabajo con foto.
8. Contrata el plan.
9. Solicita publicacion.
10. El perfil pasa a visible si cumple requisitos y no tiene bloqueos.
### 5.4 Gestionar una conversacion
1. Cliente y maker ven la misma conversacion.
2. Pueden responder y adjuntar imagenes o PDF.
3. El maker puede rechazar la consulta con motivo.
4. Ambas partes pueden continuar por canales externos si lo desean.
5. La plataforma conserva el origen y el historial de mensajes internos.
### 5.5 Generar una resena verificada
1. La consulta existe.
2. La conversacion deriva en trabajo realizado.
3. Hay confirmacion de relacion completada.
4. El cliente recibe invitacion para valorar.
5. Se permite una sola resena por relacion y autor.
6. La resena puede ser reportada y moderada.
## 6. Modulos funcionales
### 6.1 Descubrimiento publico
Incluye:
- home con propuesta de valor;
- mapa interactivo;
- lista de resultados;
- busqueda textual;
- filtros;
- perfil publico;
- detalle de trabajo;
- detalle de servicio.
No incluye:
- feed social;
- ranking por popularidad;
- favoritos;
- comparacion;
- contenidos patrocinados.
### 6.2 Perfil publico del maker
Debe mostrar:
- nombre comercial;
- descripcion;
- localidad y provincia;
- cobertura local y modalidad de envio;
- disponibilidad declarada;
- servicios;
- trabajos;
- resenas verificadas;
- CTA de contacto.
No debe mostrar:
- direccion privada;
- telefonos privados si no han sido marcados como publicos;
- datos fiscales;
- senales internas de riesgo;
- metricas vanidosas sin valor publico.
### 6.3 Servicios
Cada maker debe poder publicar servicios con:
- tipo de servicio;
- descripcion;
- tecnologias compatibles;
- materiales compatibles;
- modalidad local y/o envio;
- plazos orientativos;
- precio orientativo opcional.
### 6.4 Trabajos
Cada trabajo debe incluir:
- titulo;
- descripcion orientada a cliente;
- fotos;
- tecnologia o servicio relacionado;
- material cuando aplique;
- resultado mostrado;
- enlace de contacto contextual.
### 6.5 Cuenta y acceso
El sistema debe permitir:
- registro por email y contrasena;
- verificacion de email;
- login;
- recuperacion de contrasena;
- cierre de sesion;
- gestion basica de privacidad.
### 6.6 Area maker
Debe permitir:
- editar perfil;
- editar ubicacion;
- editar disponibilidad;
- crear y editar servicios;
- crear y editar trabajos;
- consultar estado de publicacion;
- consultar estado de suscripcion;
- responder conversaciones;
- ver resenas recibidas.
### 6.7 Suscripcion y publicacion
Reglas:
- existe un unico plan;
- pagar no publica automaticamente;
- la publicacion requiere accion explicita del maker;
- el perfil solo es visible si cumple minimos y no tiene suspension;
- al perder suscripcion, el contenido se conserva pero deja de ser visible publicamente.
### 6.8 Moderacion
Se moderan:
- perfiles;
- trabajos;
- servicios;
- resenas;
- reportes de conducta.
El sistema debe permitir:
- reportar;
- revisar;
- dejar evidencia;
- tomar una medida;
- dejar trazabilidad.
## 7. Reglas de negocio
1. La plataforma cobra por presencia profesional, no por transaccion.
2. El ranking organico no se vende.
3. El perfil publico exige:
- suscripcion activa o habilitacion comercial valida;
- perfil completo;
- una ubicacion;
- un servicio;
- un trabajo con foto;
- un medio de contacto;
- ausencia de suspension.
4. La distancia se calcula con coordenada privada, pero se muestra redondeada.
5. Un maker que trabaja desde casa no publica direccion exacta por defecto.
6. La geolocalizacion del visitante es opcional.
7. La plataforma no garantiza contratacion ni ingresos al maker.
8. Las resenas validas solo nacen de relaciones registradas en la plataforma.
9. No se permiten likes, comentarios publicos ni popularidad social.
10. Los resultados patrocinados no forman parte del MVP.
11. Un archivo subido al sistema no se publica sin pasar por las reglas del contexto correspondiente.
12. El contacto puede continuar fuera de la plataforma, pero el origen queda registrado.
## 8. Estados principales
### Perfil maker
- borrador;
- listo para publicar;
- publicado;
- suspendido;
- oculto por suscripcion inactiva;
- eliminado.
### Consulta
- borrador;
- enviada;
- respondida;
- rechazada;
- cerrada;
- convertida en relacion.
### Suscripcion
- pendiente;
- activa;
- en gracia;
- vencida;
- cancelada.
### Resena
- publicada;
- reportada;
- en revision;
- retirada.
## 9. Modelo funcional minimo
| Entidad | Relacion principal |
|---|---|
| Cuenta | 1 cuenta puede ser cliente y maker |
| Perfil maker | 1 cuenta puede tener 1 perfil maker activo |
| Ubicacion | 1 perfil maker tiene 1 ubicacion operativa en MVP |
| Servicio | 1 perfil maker tiene muchos servicios |
| Trabajo | 1 perfil maker tiene muchos trabajos |
| Consulta | 1 cliente abre 1 consulta hacia 1 maker |
| Conversacion | 1 consulta genera 1 conversacion |
| Mensaje | muchos mensajes pertenecen a 1 conversacion |
| Suscripcion | 1 perfil maker tiene 1 suscripcion vigente como maximo |
| Relacion | 1 consulta puede generar 0 o 1 relacion completada |
| Resena | 1 relacion permite 1 resena por cliente |
| Caso | puede referenciar perfil, contenido, resena o usuario |
## 10. Criterios de aceptacion por modulo
### Descubrimiento
- un visitante puede buscar sin cuenta;
- puede usar mapa o lista;
- puede entender por que un maker aparece;
- nunca ve direccion privada.
### Perfil maker
- muestra oferta, evidencia y contacto en una sola vista;
- no muestra informacion privada;
- permite abrir consulta desde varias entradas.
### Publicacion maker
- el maker puede guardar borradores;
- sabe exactamente que le falta para publicar;
- el sistema no publica perfiles vacios.
### Contacto y mensajeria
- el contexto del origen se conserva;
- el registro no destruye el borrador;
- no se crean mensajes duplicados por doble click o recarga.
### Suscripcion
- el pago se registra;
- la activacion economica no publica automaticamente;
- una suscripcion vencida retira la visibilidad publica sin borrar contenido.
### Resenas y moderacion
- solo hay resenas verificadas desde relacion completada;
- toda accion de moderacion deja auditoria;
- el admin puede retirar contenido si existe causa.
+78
View File
@@ -0,0 +1,78 @@
# Makers3D - Matriz de Trazabilidad
## 1. Cobertura cruzada
| Capacidad | Negocio | Especificacion | UX/UI | Arquitectura | Plan | Estado |
|---|---|---|---|---|---|---|
| Descubrimiento por mapa y lista | captar demanda y demostrar valor rapido | 5.1, 6.1 | 4.1, 4.2 | 3, 8, 10 | F3 | CUBIERTO |
| Perfil publico del maker | convertir visita en confianza | 5.1, 6.2 | 4.3 | 6 | F2, F3 | CUBIERTO |
| Servicios publicados | explicar oferta | 6.3 | 4.9 | 6 | F2 | CUBIERTO |
| Trabajos con fotos | mostrar evidencia real | 6.4 | 4.4, 4.10 | 8 | F2 | CUBIERTO |
| Cuenta unica | reducir friccion | 3, 6.5 | 4.8 | 9 | F1 | CUBIERTO |
| Perfil maker privado | preparar oferta antes de pagar | 5.3, 6.6 | 4.8 | 6 | F1 | CUBIERTO |
| Suscripcion unica | monetizacion simple | 6.7 | 4.11 | 3, 10 | F5 | CUBIERTO |
| Publicacion con minimos | proteger calidad del mapa | 6.7, 7 | 4.8 | 6, 9 | F2, F5 | CUBIERTO |
| Contacto guiado | subir calidad de consulta | 5.2, 6.1, 6.7 | 4.6 | 10 | F4 | CUBIERTO |
| Mensajeria interna | trazabilidad y relacion | 5.4, 6.7 | 4.7 | 10 | F4 | CUBIERTO |
| Resena verificada | confianza basada en hechos | 5.5, 6.8 | 4.7, 4.12 | 6, 9 | F6 | CUBIERTO |
| Moderacion y admin | operar beta real | 6.8 | 4.12 | 9, 14 | F6 | CUBIERTO |
| Backups y restore | continuidad operativa | 7, 10 | 8 | 12 | F7 | CUBIERTO |
| Seguridad base | proteger usuarios y cobros | 7 | 9 | 13 | F1-F7 | CUBIERTO |
## 2. Diferidos confirmados
| Componente | Estado | Razon |
|---|---|---|
| Favoritos | FASE 2 | No cambia la validacion del negocio inicial. |
| Comparacion entre makers | FASE 2 | Util, pero no critica para beta. |
| Escaparates | FASE 2 | Aportan presentacion, no nucleo. |
| Multiples ubicaciones | FASE 2 | Complejidad geoespacial adicional. |
| Dashboard y analitica avanzada | FASE 2 | Primero hay que generar actividad real. |
| PWA avanzada | FASE 2 | La web responsive cubre el objetivo inicial. |
| Patrocinio y publicidad | FASE 3 | Requiere reglas maduras y volumen. |
| Apps nativas | FASE 3 | No aceleran lanzamiento. |
## 3. Eliminados del MVP
| Componente | Motivo |
|---|---|
| Marketplace | Cambia el modelo de negocio y complica pagos, legales y soporte. |
| Gamificacion | No resuelve el problema principal. |
| Likes y comentarios publicos | Generan ruido y senales falsas. |
| Resenas externas no verificadas | Debilitan la confianza. |
| WebSockets | Polling basta en beta. |
| Microservicios | Añaden despliegue y mantenimiento sin necesidad. |
| Kafka, RabbitMQ, Elastic, OpenSearch, Kubernetes | Sobreingenieria clara para el volumen esperado. |
## 4. Auditoria transversal final
### No existen contradicciones abiertas entre documentos
- El modelo de negocio habla de una sola suscripcion y la especificacion tambien.
- UX no define pantallas de favoritos, comparacion o escaparates, coherente con el alcance.
- Arquitectura no introduce servicios que el plan no necesite.
- El plan no ordena construir modulos eliminados.
### No existen pantallas sin logica
- Cada pantalla del manual UX esta respaldada por un modulo funcional.
### No existen tablas o dominios sin uso funcional
- La arquitectura solo conserva entidades necesarias para descubrimiento, contacto, cobro, reputacion y operacion.
### No existen servicios sin justificar
- Todos los servicios activos tienen una responsabilidad directa en la entrega del MVP.
### No existe sobreingenieria critica pendiente
- Se descartan microservicios, orquestacion compleja, tiempo real avanzado y motores externos.
## 5. Resultado
AUDITORIA SUPERADA
- Sin contradicciones detectadas entre los documentos finales.
- Sin huecos funcionales criticos para el MVP definido.
- Sin componentes tecnicos injustificados para la fase inicial.
+415
View File
@@ -0,0 +1,415 @@
# Makers3D - Plan de Desarrollo
## 1. Objetivo
Construir un MVP operable por un equipo pequeno, con trabajo paralelo entre humanos y agentes de IA, minimizando dependencias innecesarias y cerrando primero los recorridos que generan valor real.
## 2. Principios de ejecucion
1. Desarrollo vertical por recorridos completos.
2. Nada entra en produccion beta sin prueba y criterio de salida.
3. La prioridad la marca el negocio: descubrir, contactar, publicar, cobrar y moderar.
4. Todo diferido queda documentado y fuera del backlog P0.
## 3. Roles de trabajo
- Producto: protege alcance y acepta entregas.
- Backend: dominio, API, datos y pagos.
- Frontend: experiencia publica, area maker y admin.
- Infra: entornos, despliegue, backups y operacion.
- QA: criterios, evidencia y regresion.
En equipos pequenos una misma persona puede asumir varios roles, pero las responsabilidades deben seguir existiendo.
## 4. Fases
| Fase | Objetivo | Prioridad | Estimacion |
|---|---|---|---|
| F0 | Base de trabajo | P0 | 1 semana |
| F1 | Identidad y perfil maker privado | P0 | 2 semanas |
| F2 | Servicios, trabajos y publicacion | P0 | 2 semanas |
| F3 | Descubrimiento publico | P0 | 2 semanas |
| F4 | Consulta y mensajeria | P0 | 2 semanas |
| F5 | Suscripcion y Mercado Pago | P0 | 1-2 semanas |
| F6 | Resenas, moderacion y admin | P1 | 2 semanas |
| F7 | Hardening y beta cerrada | P0 | 2 semanas |
## 5. Epicas, historias y tareas
### F0 - Base de trabajo
Objetivo:
- dejar el repositorio listo para construir sin improvisacion.
Historias:
- como equipo quiero un monorepo funcional;
- como equipo quiero levantar local con un solo comando;
- como equipo quiero CI minimo antes de tocar negocio.
Tareas:
- crear estructura `web`, `api`, `worker`;
- configurar TypeScript, lint y testing;
- levantar PostgreSQL, MinIO y Nginx en Compose;
- crear pipeline minimo;
- documentar comandos y convenciones.
Definition of Done:
- instalacion limpia funciona;
- `docker compose up` levanta entorno local;
- CI ejecuta checks basicos.
Pruebas:
- build de cada app;
- smoke test local;
- test de conexion a base de datos y storage.
### F1 - Identidad y perfil maker privado
Objetivo:
- permitir cuenta, login y area maker sin visibilidad publica.
Historias:
- como usuario quiero registrarme y verificar email;
- como usuario quiero acceder y recuperar mi cuenta;
- como usuario quiero crear mi perfil maker privado.
Tareas:
- tablas de cuentas y sesiones;
- registro, login y recuperacion;
- cookies seguras y CSRF;
- formulario de perfil maker;
- ubicacion unica con privacidad;
- disponibilidad basica.
Dependencias:
- F0 cerrada.
Definition of Done:
- un usuario puede registrarse;
- puede crear perfil maker;
- puede salir y volver sin perder su borrador.
Pruebas:
- unitarias de auth;
- integracion de sesiones;
- E2E de alta y login.
### F2 - Servicios, trabajos y publicacion
Objetivo:
- permitir que el maker prepare una oferta real publicable.
Historias:
- como maker quiero publicar un servicio;
- como maker quiero publicar un trabajo con fotos;
- como maker quiero saber si ya cumplo minimos.
Tareas:
- entidades de servicios y trabajos;
- subida de imagenes;
- procesamiento basico;
- pantalla de checklist de publicacion;
- estado de perfil listo/no listo;
- URLs publicas de perfil, servicio y trabajo.
Dependencias:
- F1 cerrada.
Definition of Done:
- el maker puede publicar 1 servicio y 1 trabajo;
- el sistema calcula si esta listo para publicar;
- lo publico sigue inaccesible si no hay habilitacion comercial.
Pruebas:
- integracion de uploads;
- unitarias de elegibilidad;
- E2E de crear servicio y trabajo.
### F3 - Descubrimiento publico
Objetivo:
- abrir la promesa principal al visitante.
Historias:
- como visitante quiero buscar por necesidad;
- como visitante quiero filtrar por cercania y capacidad;
- como visitante quiero abrir perfiles y trabajos desde resultados.
Tareas:
- documento de busqueda;
- filtros y ranking minimo;
- pagina de resultados;
- mapa con clusters;
- lista sincronizada;
- fallback a lista si el mapa falla.
Dependencias:
- F2 para contar con oferta real.
Definition of Done:
- un visitante puede descubrir makers sin cuenta;
- entiende resultados;
- nunca ve datos privados.
Pruebas:
- integracion de busqueda y PostGIS;
- E2E de descubrimiento;
- pruebas de permisos sobre recursos publicos.
### F4 - Consulta y mensajeria
Objetivo:
- convertir trafico en conversaciones utiles.
Historias:
- como visitante quiero iniciar una consulta contextual;
- como usuario quiero registrarme sin perder el borrador;
- como cliente y maker quiero conversar dentro de la plataforma.
Tareas:
- flujo de contacto guiado;
- persistencia de borrador;
- registro diferido;
- entidades de consulta, conversacion y mensaje;
- bandeja;
- polling controlado;
- rechazo con motivo.
Dependencias:
- F1 y F3.
Definition of Done:
- el contacto se envia una sola vez;
- el contexto de origen se conserva;
- ambos actores ven la misma conversacion.
Pruebas:
- E2E de consulta completa;
- integracion de idempotencia;
- test de polling y permisos.
### F5 - Suscripcion y Mercado Pago
Objetivo:
- convertir presencia profesional en negocio.
Historias:
- como maker quiero contratar el plan;
- como sistema quiero recibir el webhook;
- como plataforma quiero controlar visibilidad segun estado comercial.
Tareas:
- modelo interno de suscripcion;
- inicio de pago;
- retorno del navegador;
- verificacion de webhook;
- conciliacion basica;
- retiro de visibilidad por vencimiento.
Dependencias:
- F2 y F4 recomendadas;
- puede empezar al final de F3 para ganar tiempo.
Definition of Done:
- el pago se refleja;
- la suscripcion cambia de estado;
- el perfil no se publica solo por pagar.
Pruebas:
- sandbox de pagos;
- duplicados y eventos fuera de orden;
- E2E de alta comercial.
### F6 - Resenas, moderacion y admin
Objetivo:
- cerrar confianza y operacion basica.
Historias:
- como cliente quiero valorar una relacion real;
- como admin quiero revisar una resena reportada;
- como admin quiero suspender un perfil si existe causa.
Tareas:
- relacion completada;
- resena verificada;
- reportes;
- cola de casos;
- pantalla admin de makers;
- auditoria de acciones internas.
Dependencias:
- F4;
- F5 si la beta ya cobra.
Definition of Done:
- existe trazabilidad;
- el admin puede operar sin tocar base de datos manualmente.
Pruebas:
- integracion de moderacion;
- E2E de reporte y revision;
- permisos admin.
### F7 - Hardening y beta cerrada
Objetivo:
- demostrar que el sistema soporta usuarios reales controlados.
Historias:
- como equipo quiero restaurar backups;
- como equipo quiero desplegar con rollback claro;
- como operador quiero abrir beta con soporte y monitoreo basicos.
Tareas:
- runbook de deploy;
- backup y restore;
- smoke tests;
- accesibilidad basica;
- pruebas en movil;
- checklist de salida;
- carga inicial de makers fundadores.
Dependencias:
- F1 a F6.
Definition of Done:
- staging estable;
- restore probado;
- cohortes iniciales definidas;
- no hay bloqueantes P0 abiertos.
Pruebas:
- E2E principales;
- pruebas de restore;
- validacion manual de pagos, mensajes y publicacion.
## 6. Orden optimo de implementacion
1. F0 Base
2. F1 Identidad y perfil privado
3. F2 Servicios, trabajos y publicacion
4. F3 Descubrimiento
5. F4 Consulta y mensajeria
6. F5 Suscripcion y pagos
7. F6 Resenas, moderacion y admin
8. F7 Hardening y beta
Este orden protege una regla: primero crear oferta, despues mostrarla, despues convertirla en consultas, despues cobrarla y operarla.
## 7. Dependencias criticas
- No hay descubrimiento real sin oferta maker publicada.
- No hay resena valida sin consulta y relacion.
- No hay publicacion comercial sin suscripcion y sin minimos de calidad.
- No hay beta con cobros reales sin restore probado y conciliacion basica.
## 8. Trabajo paralelizable
### Puede correr en paralelo
- frontend publico y modelado de resultados una vez definidos contratos;
- area maker y backend de servicios/trabajos;
- pipeline CI y entorno staging;
- copy UX y validaciones de formularios;
- QA sobre auth mientras backend continua con publicacion.
### No conviene paralelizar demasiado pronto
- pagos antes de fijar modelo interno de suscripcion;
- admin antes de definir exactamente que modera;
- optimizaciones de rendimiento antes de tener recorridos completos.
## 9. Riesgos por fase
| Fase | Riesgo principal | Mitigacion |
|---|---|---|
| F0 | deuda de estructura | monorepo austero y pocas abstracciones |
| F1 | auth insegura | pruebas y cookies seguras desde el inicio |
| F2 | complejidad de uploads | limitar tipos de archivo |
| F3 | ranking confuso | explicaciones simples y filtros duros |
| F4 | duplicados de consulta | idempotencia y borrador persistente |
| F5 | incoherencias de pago | webhook verificado y conciliacion |
| F6 | moderacion lenta | backoffice minimo y motivos claros |
| F7 | falsa sensacion de preparacion | restore, smoke tests y checklist real |
## 10. Criterios de aceptacion globales
Una fase se acepta solo si:
- cumple el recorrido principal;
- contempla errores y estados vacios;
- respeta permisos;
- tiene pruebas suficientes;
- queda documentada;
- y no introduce dependencias tecnicas nuevas sin aprobacion.
## 11. Definition of Done global
Una historia o tarea esta terminada cuando:
- el comportamiento funciona;
- los permisos son correctos;
- hay prueba adecuada;
- el usuario entiende el resultado;
- no hay regresion conocida;
- y la documentacion minima esta actualizada.
## 12. Preparacion para humanos e IA
### Reparto recomendado
- humanos: decisiones de negocio, revision de UX, moderacion, riesgos y aceptacion final;
- IA: scaffolding, CRUD, validaciones, tests, refactor y documentacion operativa;
- trabajo compartido: contratos, copy UX, casos limite y revisiones.
### Regla
La IA acelera entrega, pero no reemplaza la aceptacion del flujo ni la comprobacion de negocio.
+428
View File
@@ -0,0 +1,428 @@
# Makers3D - UX UI
## 1. Principios
1. Menos pasos, mas claridad.
2. El mapa atrae; el trabajo publicado convierte.
3. Todo CTA importante debe estar disponible tambien fuera del mapa.
4. La interfaz debe explicar confianza sin inventar prestigio.
5. Ninguna pantalla debe depender de datos que el MVP todavia no sabe medir con honestidad.
## 2. Direccion visual
### Personalidad
- tecnica;
- cercana;
- clara;
- confiable;
- visual;
- sobria.
### Sistema visual
- fondo principal: grafito profundo;
- superficies: azul grisaceo oscuro;
- accion primaria: azul electrico;
- acento secundario: cyan frio;
- exito: verde controlado;
- alerta: ambar;
- error: rojo sobrio.
### Tipografia
- titulos: `Space Grotesk`;
- interfaz y cuerpo: `Manrope`;
- datos tecnicos o chips: `IBM Plex Sans`.
### Radio y forma
- tarjetas y modales: 18 px;
- chips y botones pequenos: 999 px;
- sombras suaves, no teatrales;
- bordes sutiles para separar sin endurecer la UI.
## 3. Navegacion
### Publica
- Inicio
- Resultados
- Perfil maker
- Trabajo
- Servicio
- Acceso / Registro
- Consultas
### Privada maker
- Resumen
- Perfil
- Servicios
- Trabajos
- Bandeja
- Resenas
- Suscripcion
- Cuenta
### Admin
- Makers
- Casos
- Resenas
- Pagos
- Auditoria
## 4. Pantallas obligatorias
### 4.1 Inicio
Objetivo:
- explicar rapidamente que hace la plataforma;
- llevar al usuario a buscar por zona o necesidad.
Bloques:
- hero con buscador;
- acceso a geolocalizacion opcional;
- vista inicial de mapa o lista segun dispositivo;
- categorias o necesidades frecuentes;
- explicacion simple de como funciona.
### 4.2 Resultados
Objetivo:
- combinar descubrimiento geografico con evaluacion rapida.
Elementos:
- buscador superior;
- filtros visibles;
- conmutador lista/mapa en movil;
- lista de tarjetas;
- mapa con clusters;
- aviso claro cuando la geolocalizacion no esta activa;
- estados vacios y alternativa de ampliar zona.
### 4.3 Perfil publico del maker
Objetivo:
- convertir curiosidad en confianza y confianza en consulta.
Jerarquia:
- cabecera con nombre, localidad, disponibilidad y CTA;
- servicios principales;
- trabajos publicados;
- resenas verificadas;
- informacion de cobertura y envio;
- datos de contacto publicos si el maker decide mostrarlos.
### 4.4 Detalle de trabajo
Objetivo:
- demostrar calidad y contexto.
Contenido:
- galeria;
- titulo;
- problema resuelto;
- solucion aplicada;
- servicio relacionado;
- CTA "Quiero algo parecido".
### 4.5 Detalle de servicio
Objetivo:
- aclarar que puede contratarse.
Contenido:
- tipo de servicio;
- descripcion;
- tecnologias y materiales;
- modalidad local y envio;
- plazo orientativo;
- precio orientativo opcional;
- CTA de consulta contextual.
### 4.6 Contacto guiado
Objetivo:
- obtener una consulta mas util que un "hola, cuanto sale?".
Flujo:
1. necesidad;
2. detalles del trabajo;
3. urgencia y entrega;
4. adjuntos permitidos;
5. resumen editable;
6. registro o acceso si hace falta;
7. confirmacion.
### 4.7 Bandeja y conversacion
Objetivo:
- sostener el intercambio minimo necesario.
Vista:
- lista de conversaciones;
- ficha breve del contexto;
- hilo de mensajes;
- composer;
- estado de envio;
- acciones de rechazo o cierre.
### 4.8 Alta maker
Objetivo:
- convertir una cuenta normal en presencia profesional.
Pasos:
- datos del perfil;
- ubicacion;
- disponibilidad;
- primer servicio;
- primer trabajo;
- resumen de requisitos;
- suscripcion;
- solicitud de publicacion.
### 4.9 Gestion de servicios
Objetivo:
- publicar una oferta clara y mantenible.
Vista:
- lista de servicios;
- crear/editar;
- activar/desactivar;
- indicador de servicio incompleto.
### 4.10 Gestion de trabajos
Objetivo:
- construir portfolio con el menor esfuerzo posible.
Vista:
- lista de trabajos;
- borradores y publicados;
- formulario con fotos primero;
- vista previa publica;
- control de minimos.
### 4.11 Suscripcion
Objetivo:
- explicar el estado comercial sin ambiguedad.
Contenido:
- plan actual;
- precio;
- estado;
- fecha relevante;
- accion principal;
- aviso de que pagar no publica automaticamente.
### 4.12 Moderacion y admin
Objetivo:
- operar sin glamour, con velocidad y trazabilidad.
Pantallas:
- listado de makers;
- cola de casos;
- detalle de caso;
- detalle de pago;
- historial de acciones.
## 5. Wireframes textuales
### Inicio movil
```text
[Logo] [Entrar]
Encuentra quien imprime cerca de ti
[Buscar por pieza, material o servicio]
[Usar mi ubicacion] [Elegir ciudad]
[Mapa/Lista]
[Filtros rapidos]
[Tarjetas de makers]
```
### Perfil maker movil
```text
[Portada]
[Avatar] Nombre del maker
Localidad - Disponibilidad
[Contactar]
Servicios
[chips]
Trabajos
[galeria vertical]
Resenas verificadas
[bloques]
Informacion
```
### Contacto guiado movil
```text
Paso 2 de 5
Que necesitas imprimir o fabricar?
[campo]
Tienes archivo?
( ) Si
( ) No
[Adjuntar imagen o PDF]
[Continuar]
```
### Area maker movil
```text
Hola, Nombre
Estado: listo para publicar / publicado / incompleto
Te falta para publicar
- Ubicacion
- Primer trabajo
[Editar perfil]
[Crear servicio]
[Crear trabajo]
[Ver suscripcion]
```
## 6. Componentes
### Basicos
- boton primario;
- boton secundario;
- chip de filtro;
- tarjeta de maker;
- tarjeta de trabajo;
- tarjeta de servicio;
- badge de estado;
- barra superior;
- bottom sheet movil;
- modal de confirmacion.
### Formularios
- input de texto;
- textarea;
- select;
- chips multiseleccion;
- subida de imagen;
- subida de PDF;
- resumen revisable.
### Feedback
- skeleton;
- vacio;
- error;
- exito;
- aviso;
- bloqueo por requisito pendiente.
## 7. Estados
Toda pantalla relevante debe contemplar:
- carga;
- vacio;
- error;
- sin permisos;
- sin conexion momentanea;
- accion exitosa;
- accion duplicada bloqueada.
## 8. Responsive
### Movil
- prioridad absoluta;
- mapa y lista no compiten en pantalla reducida;
- CTA fijo en perfil y trabajo;
- formularios en un solo eje vertical.
### Tablet
- mas densidad de tarjetas;
- filtros laterales cuando convenga;
- lista y mapa pueden convivir parcialmente.
### Escritorio
- mapa y lista simultaneos en descubrimiento;
- bandeja con dos columnas;
- admin con tablas densas.
## 9. Accesibilidad
- contraste AA como minimo;
- foco visible;
- navegacion completa por teclado;
- labels reales en formularios;
- mensajes de error claros;
- alternativa funcional al mapa;
- respeto a `prefers-reduced-motion`;
- iconos nunca como unico soporte semantico.
## 10. Animacion
Mantener solo animaciones con utilidad:
- aparicion suave de clusters;
- subida de bottom sheet;
- confirmacion de mensaje enviado;
- transicion corta al aplicar filtros.
No usar:
- parallax;
- counters de vanidad;
- animaciones largas de carga;
- efectos de marca que ralenticen la tarea.
## 11. Criterio de calidad UX
Una pantalla esta bien resuelta si:
1. el usuario entiende que hacer en menos de cinco segundos;
2. la accion principal es obvia;
3. no depende de datos falsos o insuficientes;
4. el sistema evita callejones sin salida;
5. la confianza aumenta antes del contacto.
+248
View File
@@ -0,0 +1,248 @@
# Makers3D - Vision de Negocio
## 1. Tesis
Makers3D quiere resolver un problema concreto y cotidiano: encontrar un proveedor fiable de impresion o fabricacion 3D sin depender de busquedas desordenadas en redes sociales, Google y WhatsApp.
La oportunidad no esta en vender objetos dentro de la plataforma, sino en ordenar una oferta fragmentada y convertirla en presencia profesional pagable.
## 2. Problema
Hoy el cliente no sabe:
- quien puede resolver su necesidad;
- quien esta cerca;
- quien envia;
- quien ya hizo trabajos parecidos;
- quien responde bien;
- en quien se puede confiar.
Hoy el maker tampoco tiene un escaparate profesional especializado ni un canal comun donde competir por calidad, especializacion y reputacion en lugar de depender solo de Instagram o del boca a boca.
## 3. Propuesta de valor
### Para clientes
- descubrir makers por ubicacion y capacidad;
- ver trabajos reales antes de escribir;
- comparar especializacion y reputacion verificable;
- iniciar una consulta con contexto util;
- reducir tiempo y riesgo antes del primer contacto.
### Para makers
- presencia profesional visible en un canal especializado;
- llegada a clientes locales y nacionales;
- portfolio ordenado;
- reputacion construida sobre trabajos reales;
- un flujo de consultas mas util que un mensaje vacio por redes.
## 4. Mercado
El mercado inicial es Argentina, con foco en:
- personas que necesitan piezas, repuestos o impresiones puntuales;
- profesionales creativos y tecnicos;
- pequenos negocios y talleres;
- makers independientes;
- estudios y microempresas de fabricacion digital.
La expansion geografica no es prioridad inicial. Antes debe validarse:
- densidad de oferta por zona;
- tasa de consulta util;
- conversion de maker a pago;
- retencion de makers publicados.
## 5. Competencia real
La competencia principal no son otras startups especializadas. Son los sustitutos actuales:
- Instagram;
- Facebook;
- Google Maps;
- Mercado Libre como canal impropio;
- grupos de WhatsApp;
- recomendaciones personales;
- sitios web individuales.
Makers3D no gana por tener mas funciones. Gana por:
- especializacion sectorial;
- mejor contexto antes del contacto;
- evidencia visual estructurada;
- reputacion ligada a relaciones reales;
- busqueda geografica y funcional en el mismo lugar.
## 6. Modelo de ingresos
### Modelo inicial
- un solo plan de suscripcion;
- el maker paga por aparecer publicamente;
- el cliente no paga;
- la plataforma no toma comision por trabajo.
### Por que este modelo
- es simple de explicar;
- es simple de operar;
- evita negociar comisiones o custodiar pagos;
- filtra perfiles poco comprometidos;
- se alinea con el valor principal: visibilidad profesional.
### Ingresos futuros posibles
- complementos funcionales reales;
- mayor capacidad de contenido;
- herramientas avanzadas para makers;
- espacios patrocinados claramente etiquetados.
No entran en la fase inicial:
- comision por transaccion;
- reputacion pagada;
- posicion organica vendida;
- publicidad invasiva.
## 7. Roadmap de negocio
### Etapa 1 - Beta cerrada
Objetivo:
- validar que los makers pagan por presencia;
- validar que los clientes entienden el valor del mapa y del portfolio;
- medir si el contacto guiado mejora la calidad de las consultas.
### Etapa 2 - Beta ampliada
Objetivo:
- aumentar oferta por zonas con suficiente densidad;
- mejorar retencion del maker;
- estabilizar soporte, cobros y moderacion.
### Etapa 3 - Crecimiento controlado
Objetivo:
- ampliar provincias;
- introducir SEO mas fuerte;
- lanzar herramientas de retencion y analitica;
- evaluar patrocinio etiquetado.
### Etapa 4 - Expansion
Objetivo:
- decidir si conviene abrir nuevas categorias, nuevos paises o evolucionar a un modelo comercial mas profundo.
## 8. Riesgos
### Riesgos de producto
- mapa sin oferta suficiente;
- baja calidad de perfiles;
- consultas pobres o poco convertibles;
- exceso de complejidad antes de tener uso real.
### Riesgos comerciales
- makers que no perciben valor suficiente para pagar;
- concentracion geografica en pocas zonas;
- demanda insuficiente al inicio;
- soporte manual costoso si el flujo no esta claro.
### Riesgos operativos
- moderacion insuficiente;
- conciliacion de pagos defectuosa;
- mala entregabilidad del correo;
- caidas o perdida de datos.
## 9. Ventajas competitivas defendibles
- foco exclusivo en makers 3D;
- descubrimiento geografico + portfolio + reputacion en una sola experiencia;
- reputacion nacida de relaciones dentro de la plataforma;
- menor dependencia de algoritmos sociales externos;
- modelo simple de monetizacion;
- operacion posible con equipo pequeno.
## 10. Estructura de costes
### Costes fijos principales
- servidores;
- almacenamiento;
- correo transaccional;
- dominios y certificados;
- soporte operativo minimo;
- tiempo de moderacion y atencion al maker.
### Costes variables principales
- trafico de imagenes y mapas;
- volumen de correo;
- soporte;
- comisiones de pago;
- almacenamiento de portfolios.
### Regla de control
No se añade una tecnologia o funcionalidad si:
- no aumenta conversion;
- no mejora confianza;
- no reduce soporte;
- o no reduce riesgo operativo real.
## 11. KPIs de direccion
### Oferta
- makers en borrador;
- makers publicados;
- makers con suscripcion activa;
- cobertura geografica por provincia.
### Demanda
- visitas a perfiles;
- consultas iniciadas;
- consultas enviadas;
- ratio visita a consulta.
### Calidad
- tiempo medio de primera respuesta;
- porcentaje de consultas rechazadas;
- porcentaje de relaciones completadas;
- porcentaje de resenas verificadas.
### Negocio
- conversion maker gratuito a pago;
- churn de makers;
- ingreso mensual recurrente;
- coste operativo por maker activo.
### Riesgo
- casos de moderacion por cada 100 consultas;
- pagos inconsistentes;
- tiempo medio de resolucion;
- incidentes tecnicos criticos.
## 12. Pitch corto
Makers3D organiza el mercado fragmentado de impresion y fabricacion 3D en Argentina. Ayuda a cualquier persona a encontrar un maker fiable cerca suyo o con envio, ver trabajos reales, entender capacidades y contactarlo con contexto suficiente. Cobra a los makers por una presencia profesional visible, sin convertirse en marketplace ni intermediar el pago del trabajo.
## 13. Decision de negocio final
El producto no debe optimizarse para parecer grande. Debe optimizarse para demostrar tres cosas lo antes posible:
1. que hay makers dispuestos a pagar por aparecer;
2. que los clientes encuentran oferta relevante mas rapido que en redes;
3. que la reputacion y el portfolio convierten mejor cuando el contacto empieza con contexto.
+57
View File
@@ -0,0 +1,57 @@
# Makers3D - Production Checklist
## Antes de usuarios reales
- Cambiar todas las credenciales demo.
- Cambiar `SESSION_SECRET`.
- Configurar dominio y HTTPS real delante de Nginx.
- Sustituir `PAYMENT_PROVIDER=demo` por el proveedor real.
- Validar correo transaccional real.
- Confirmar politicas de privacidad y terminos.
- Probar login, publicacion y consulta desde movil Android real.
## Antes de cobros reales
- Cargar credenciales reales de Mercado Pago.
- Confirmar URLs y webhooks productivos.
- Validar que pagar no publica automaticamente.
- Ejecutar prueba completa de activacion, renovacion y cancelacion.
- Registrar responsable operativo de conciliacion.
## Seguridad minima
- Limitar acceso SSH por IP o clave.
- Mantener Debian actualizado.
- No publicar puertos internos salvo `80/443`.
- Respaldar `.env` fuera del servidor.
- Revisar logs de `api`, `nginx` y `worker`.
## Backup minimo
- Backup diario de PostgreSQL.
- Backup diario de buckets de MinIO.
- Ensayo de restauracion antes de abrir beta real.
## Escalado recomendado
Primero:
- mas RAM;
- mas disco;
- cache HTTP;
- tuning de PostgreSQL.
Despues:
- Redis si aparece necesidad real;
- CDN si el trafico de imagenes lo justifica;
- observabilidad mas profunda si la operacion lo exige.
## No hacer todavia
- microservicios;
- Kubernetes;
- Elastic u OpenSearch;
- WebSockets;
- app nativa;
- features sociales.