Proyecto 02 — PKD

Del chip en la hilera
al registro de horas.

PKD es la plataforma para el personal de una empresa hortícola: permite fichar con un chip NFC o un código QR directamente en la hilera del invernadero, incluso sin conexión. Cada lectura alimenta el cómputo de horas, el seguimiento de las tareas y el registro mensual. También incluye chat de equipo con llamadas, vídeos de formación en el idioma de cada persona, un contador de envases con cámara e IA y móviles de empresa en modo quiosco. Servidor, aplicación web, Android e iOS, integrados en una sola solución.

Por Abbas Hoseiny· Web, Android, iOS· Software propietario

Una empresa hortícola con personal fijo y de temporada de distintos orígenes lingüísticos. El trabajo en las hileras se anotaba en hojas sujetas a portapapeles, el programa de nóminas no ofrece una interfaz de integración y el wifi no llega a todos los rincones. PKD sustituye el papel por una lectura del chip de cada hilera y proporciona a la oficina y a la dirección lo que necesitan: horas trabajadas, registros de horas y una visión de conjunto de la jornada.

Administración de PKD en el escritorio: diagrama del flujo de trabajo de una jornada, personas a la izquierda, tareas en el centro, secciones a la derecha, unidas por bandas de colores
Fig. 1 — la jornada como diagramaEmpleados → Tiempos de trabajo → Flujo de trabajo

Cada banda representa a una persona y cada nodo, una tarea. La anchura indica los minutos registrados: quién hizo qué, dónde, durante cuánto tiempo y qué queda por aclarar.

Diagrama del flujo de trabajo en la vista por hileras: personas, tareas y las hileras de una sección con minutos y horas por hilera
Fig. 2 — el detalle de cada hileraUna sección, vista «Hileras»

Por cada hilera, los minutos, las franjas horarias y cuántas veces se trabajó en ella ese día. Ordenado por el primer escaneo, así que se lee de arriba abajo como la jornada.

Aplicación PKD en el móvil, pantalla «Ahora»: fichaje activo, tarea en curso con sección e hilera
Aplicación PKD, pantalla «Hoy»: tiempo de trabajo del día y la lista de escaneos con hora, tarea, hilera y duración
Aplicación PKD, sección «Aprender»: vídeos cortos sobre la llegada, la jornada, el cambio de hilera y las pausas
Fig. 3 — la aplicación de los empleadosAhora · Hoy · Aprender

Tres preguntas: si he fichado, qué está en curso y qué he hecho hoy. El chat, las fotos y los vídeos están en la barra inferior.

Aplicación PKD en ucraniano: pantalla «Ahora» con presencia y última tarea
Aplicación PKD en polaco: sección «Aprender» con los primeros pasos
Aplicación PKD en ucraniano: pantalla «Hoy» con tiempo de trabajo y escaneos
Fig. 4 — en el idioma de cada personaAlemán, polaco, ucraniano, rumano

El idioma se configura por cuenta, no por dispositivo: interfaz, vídeos y avisos.

Qué hace la plataforma

Registrar, analizar, comunicarse.

Fichaje con chip
Entrada, salida y cada tarea con el chip NFC de la hilera o con un código QR. El servidor fija la hora. Si no hay conexión, la lectura queda guardada en el dispositivo.
Flujo de trabajo, historial, hoy
La jornada en un diagrama por secciones o hileras, varios días en paralelo, la continuidad de las tareas de un día al siguiente y, en directo, quién está presente y qué tarea realiza.
Registro de horas y nóminas
Un registro mensual por persona, con todos los días del calendario. Cada cambio exige un comentario. Aprobación, exportación a PDF y Excel y cotejo con el programa de nóminas.
Chat de equipo y llamadas
Chats individuales y de grupo, notas de voz, archivos y llamadas por internet. Los contactos principales aparecen arriba: dirección, responsable de equipo y soporte.
Aprender en su idioma
Vídeos cortos sobre los primeros pasos y la información importante, en todos los idiomas de la aplicación.
Contador de envases con cámara
Una cámara sobre la cinta transportadora cuenta los envases de producto, los clasifica por tamaño con IA y señala los defectuosos. Los resultados pueden verse en directo, en el historial y en informes con fotos.
Ubicaciones y chips
Un plano muestra las secciones y las hileras. Cada hilera lleva una tarjeta con chip, que se programa desde el panel de administración.
Móviles de empresa e infraestructura
Móviles de empresa en modo quiosco, actualizaciones escalonadas y una cuenta por móvil. El servicio se apoya en un servidor con copias de seguridad diarias y una copia adicional en un segundo proveedor.
Fig. 5 — el contador de envasesGrabación de pantalla, sin sonido

En este ejemplo, la cámara observa las bandejas de fresas sobre la cinta transportadora. Un pequeño ordenador las cuenta y clasifica, y el servidor reúne los resultados. Cada captura queda archivada como comprobante y puede reclasificarse después.

Contador de envases, historial de un mes: cifras clave, gráfico de barras por día y tabla con total, grandes, pequeños y defectuosos
Plano de ubicaciones: hileras del invernadero dibujadas como plano con secciones y filtro por tipo de punto de escaneo
Fig. 6 — historial y planoEnvases contados por día · plano con chips por hilera
Registro mensual de horas de una persona: por cada día del calendario, estado, entrada, salida, presencia, tiempo de trabajo, tareas, avisos y observaciones
Fig. 7 — el registro mensualEmpleados → Tiempos de trabajo → Horas

Cada día del calendario es una línea. Solo se marca lo que hay que aclarar: una salida que falta, un escaneo fuera de lo habitual, un apunte posterior. Un fin de semana no es un error.

Tecnología

Cómo está construida la plataforma

El servidor mantiene el registro principal. Los móviles y ordenadores usan clientes ligeros. El modelo de datos conserva el significado original de cada lectura.

1. Un servidor, muchos dispositivos

El hub es un servicio en Go que utiliza PostgreSQL. Un proxy Caddy sirve la API y la interfaz web desde un mismo dominio. El acceso externo pasa exclusivamente por un túnel.

Dispositivos
Android, iOS, quiosco, navegador, ordenador de la cámara
  • Una aplicación web para el móvil y la administración
  • Capas nativas para NFC, notificaciones, llamadas y actualizaciones
  • Aplicación de quiosco en los móviles de empresa
⇄HTTPS
un dominio
Hub · Go
API, evaluación, notificaciones, correo, tareas
  • Permisos por persona y por área
  • Calcula tiempo de trabajo, flujo de tareas y registro de horas
  • Notificaciones, correos, informes, cruce con nóminas
⇄SQL
PostgreSQL
Una sola base de datos como referencia
  • Todos los módulos en una base de datos
  • Volcados diarios, copia en un segundo proveedor

El panel de administración y la aplicación móvil comparten la misma aplicación web. La capa nativa añade las funciones que el navegador no ofrece. Un único despliegue sirve a todas las plataformas.

2. El modelo de escaneo

El chip solo almacena un identificador, llamado slot. Su significado se guarda en una definición que indica desde cuándo se aplica. Cada lectura genera un evento inmutable.

  1. El móvil envía el slot, el identificador del evento y su hora. La hora válida la fija el servidor.
  2. El hub escribe el evento con persona, slot, definición, hora y origen.
  3. La duración se calcula solo al leer. Si una hilera cambia de uso, los eventos antiguos siguen siendo correctos.
  4. Si el mismo escaneo llega dos veces, cuenta una vez.

3. Sin red

ColaCada lectura se registra de inmediato en el dispositivo. Los datos se envían más tarde, en el mismo orden.
Marcas de tiempoEl servidor comprueba el reloj del dispositivo, acota los valores inverosímiles y los marca para su revisión.
Arranque en fríoLa aplicación arranca y escanea incluso tras días sin red. Una prueba automática lo comprueba en cada cambio.
CatálogoLas tareas, ubicaciones y traducciones se guardan en el dispositivo. El panel de administración muestra la versión y las lecturas pendientes de cada uno.

4. Análisis

El hub realiza todos los cálculos. El diagrama de tareas, el historial, el registro de horas y los informes por correo utilizan las mismas funciones.

Flujo de trabajoUn diagrama de Sankey muestra personas, tareas y secciones o hileras. Cada nodo ofrece más detalles. Los días aparecen en paralelo, sin mezclar sus datos en un solo diagrama.
Historial¿Se retomó una tarea en la misma hilera donde se había interrumpido? Para considerarla continuación, deben coincidir la tarea y la hilera.
Registro de horasLos días de trabajo se determinan según el periodo de contratación o las normas de la empresa; los festivos, mediante una tabla. Cada corrección exige un comentario y permanece visible.
NóminasEl programa de nóminas no ofrece una interfaz de integración utilizable. Un pequeño ordenador de la red de la empresa lee su base de datos y aplica las operaciones de escritura que envía el hub.

5. Chat, llamadas, formación

ChatChats individuales y de grupo, confirmaciones de lectura, notas de voz y archivos. Los adjuntos se guardan en un almacenamiento de objetos y se someten a un análisis antivirus.
LlamadasLlamadas de voz por WebRTC, cifradas entre los dispositivos. Si falla la conexión directa, interviene un relé TURN propio.
NotificacionesLas llamadas y los mensajes importantes activan el dispositivo. Si falla la notificación push, la aplicación sigue comprobando si hay llamadas mediante consultas periódicas al servidor.
FormaciónVídeos explicativos cortos, locutados automáticamente en cada idioma.
AvisosLas correcciones de horario salen en el idioma de la persona y la respuesta vuelve traducida. Una asistente de IA puede llamar y resolver dudas breves.

6. Dispositivos

Modo quioscoUna aplicación propia administra el dispositivo en modo quiosco: solo permite PKD y otras aplicaciones autorizadas, supervisa la batería y el volumen y despliega las actualizaciones por etapas.
Una cuenta por móvilEl cambio se hace con un código QR y cierra la sesión del dispositivo anterior. Hay hojas con códigos QR de respaldo.
Claves de dispositivoCada dispositivo se empareja una vez y recibe su propia clave. La administración puede bloquearlo en cualquier momento.

7. Infraestructura

ContenedoresHub, base de datos, proxy, almacén de objetos, antivirus, relé TURN, túnel y copias de seguridad en una sola pila de Docker Compose.
Copias de seguridadUn volcado diario de la base de datos en el servidor y una copia cifrada en un segundo proveedor.
MigraciónUn aviso firmado comunica a las aplicaciones el cambio de dirección del servidor. Los dispositivos se conectan automáticamente a la nueva dirección.

8. Ficha técnica

RolDiseño, arquitectura, desarrollo, operación y soporte
UsuariosPersonal fijo y de temporada, encargados, oficina, dirección; alemán, polaco, ucraniano, rumano
ServidorGo, PostgreSQL, Caddy, Docker Compose, túnel, almacén de objetos, antivirus, relé TURN
FrontendAstro, TypeScript, service worker, d3-sankey, exportación a PDF y Excel
AplicacionesAndroid e iOS con capa nativa, aplicación propia de modo quiosco; chips NFC en las hileras, códigos QR de respaldo
MódulosFichaje, flujo de trabajo, historial, registro de horas, cotejo con nóminas, chat y llamadas, formación, contador de envases, ubicaciones, control de calidad, invernadero, avisos, buzón y explorador de archivos
CódigoPropietario y no publicado