Saltar al contenido principal
Volver a proyectos

Caso de estudio

Laburo

Gestión laboral inteligente

App móvil para la gestión de asistencia con fichaje por QR, geolocalización y comprobación de datos biométricos. Integrada con una API en NestJS.

Rol

Desarrollo fullstack: app móvil (React Native / Expo) y backend (NestJS).

Stack

React NativeExpoTypeScriptNestJSTypeORMMySQLJWT
1 / 3
El problema

Las empresas necesitaban una forma confiable de registrar el ingreso y egreso de su personal sin depender de planillas manuales ni de hardware de fichaje dedicado.

Decisiones técnicas

Fichaje por código QR generado dinámicamente, validado además por radio geográfico con expo-location, para evitar marcaciones hechas fuera del lugar de trabajo.

Confirmación del fichaje con el dato biométrico que el usuario ya tenga configurado en su dispositivo (huella o rostro), sin capturar ni almacenar biometría propia.

Autenticación con JWT (access + refresh token) y bcrypt para el hash de contraseñas, con guards y decoradores custom (@CurrentUser) en NestJS.

Persistencia de sesión con expo-secure-store en vez de AsyncStorage, para no guardar tokens en texto plano en el dispositivo.

Desafíos

El mayor desafío fue diseñar la validación de ubicación de forma que tolerara la imprecisión normal del GPS sin permitir marcaciones fraudulentas desde fuera de la oficina. Se resolvió con un radio configurable por empresa en vez de exigir un punto exacto.

Aprendizajes

Trabajar con permisos nativos (cámara, ubicación, notificaciones) en Expo me obligó a pensar la UX de los errores: qué mostrar cuando el usuario niega un permiso, y cómo degradar la funcionalidad sin bloquear el resto de la app.