GRT Mobile

Attendance app for contractors at the gatehouse, with offline use, PIN and QR Code. The V2 was rebuilt in 14 days.

Year
2025 – 2026
Status
Internal use
Role
Product Builder: V1 in Bubble under contract; V2 as my own proof of concept
Client
Camada

Context

At the gatehouse of client companies, the app records the attendance of contractors according to each person’s compliance status. I built the V1 in Bubble Mobile, under contract with Camada, the contract owner. The V2, in custom code, is a proof of concept I built on my own.

What I built

  • V1 (Bubble): sign-in with an email code, PIN for offline use, lookup by CPF, list or QR Code, terms acceptance with logging, and sync with the client’s API.
  • V2 (custom code): the same product rebuilt from scratch in 14 days, part-time, working offline.

Technical decisions

  • Works without internet. Data lives in a local SQLite database and sync never loses or duplicates records.
  • Security treated as a requirement. Credentials encrypted with AES-256, passwords and PINs strongly hashed, and a limit on sign-in attempts.
  • Cheap infrastructure. From about US$ 40 a month, with Fly.io and PostgreSQL on Neon.
  • Tests as a contract. More than 1,300 automated tests running in CI.

Results

  • 20,000 workers loaded in under 10 seconds on a mid-range Android.
  • Sync with no loss and no duplicates.
  • The whole V2 was rebuilt by one person in 14 days, part-time.
14 days
to rebuild the V2, part-time
1,300+
automated tests in CI
20k
workers loaded in under 10 s on a mid-range Android

Stack

  • Expo (React Native)
  • TypeScript
  • SQLite
  • Node.js
  • Fastify
  • PostgreSQL (Neon)
  • pg-boss
  • Zod
  • Fly.io
  • Sentry
  • GitHub Actions