16 — Especificaciones de interacción — SURCO
1. Principios de interacción
| Principio | Detalle |
|---|
| Directo | Pocos pasos a create y a DONE |
| Perdonable | Errores con mensaje y reintento manual |
| Rol-consciente | UI no ofrece acciones imposibles |
| Campo-first en móvil | Cards y botones grandes |
| Sin modales innecesarios | Flujos en página (v1) |
2. Home
| Interacción | Comportamiento |
|---|
| Hover CTAs | primary-strong / borde |
| Click “Abrir cuaderno” / “Entrar” / roles | → /login |
| Wordmark | → / (reload home) |
| Hero image | no click (decorativa informativa) |
3. Login
| Estado | UI |
|---|
| Idle | form vacío o browser autofill |
| Submitting | botón puede deshabilitarse (si implementado) |
| Success | guarda token+user; navigate /app/tasks |
| Error | mensaje bajo form; password no se limpia necesariamente |
| Teclado | Enter envía form |
Timing: feedback de error inmediato al 401; sin toast global obligatorio.
4. Lista de tareas
| Interacción | Comportamiento |
|---|
| Load | GET list + GET stats en paralelo |
| Click card | → detalle :id |
| Hover card | border primary/40, cursor pointer |
| + Tarea | solo FARMER → /app/tasks/new |
| Salir | clear storage → login |
| Empty | CTA crear si FARMER |
| Error | texto; usuario puede recargar página |
Stats
Solo lectura; no filtran la lista al click (v1). Futuro: click ACTIVE filtra.
5. Nueva tarea
| Campo | Interacción |
|---|
| title | text input focus inicial recomendado |
| parcelName | text; no autocomplete v1 |
| crop | text opcional |
| dueAt | date/datetime-local |
| notes | textarea |
| technicianEmail | email opcional |
| Submit | POST; on success → lista (o detalle) |
| Cancel/back | router a lista |
Validación: bloquear submit vacío en cliente si se desea; servidor es autoridad.
6. Detalle y estados
| Acción | Resultado |
|---|
| Ver datos | código, título, parcela, notas, personas |
| Cambiar status | PATCH; actualizar vista local o refetch |
| Transición a DONE | badge “Hecha”; posible disable de acciones redundantes |
| Volver | link a lista |
Feedback
- Success: cambio visible del badge (sin modal).
- Error patch: mensaje “No se pudo actualizar el estado.”
7. Transiciones de estado (UX)
| Desde | Hacia | Quién típico | Copy botón sugerido |
|---|
| PENDING | ACTIVE | Farmer o al asignar | Marcar activa |
| ACTIVE | DONE | Técnico / farmer | Marcar hecha |
| * | CANCELLED | Farmer | Cancelar tarea |
| CANCELLED/DONE | — | — | Solo lectura o reabrir futuro |
8. Responsive
| Breakpoint | Comportamiento |
|---|
| <640 | stats 2×2; stack home; header compacto |
| ≥768 | home 2 col; stats 4 col; form ancho contenido |
9. Gestos y no-gestos
- No swipe-to-done en v1.
- No drag and drop de prioridades.
- No long-press menús.
10. Criterios de aceptación interacción
- Create → visible en lista sin pasos ocultos.
- DONE en ≤3 interacciones desde lista (abrir → acción → hecho).
- Técnico nunca ve CTA create.
- Errores no silenciosos.