[
  {
    "slug": "tech-face",
    "name": "Tech Face",
    "description": "Facial recognition for electronic commercial transactions: real-time identity checks with liveness (anti-spoofing) and a cross-check against the government driver's license database through Serpro's API.\n\nIt drops into mobile or existing systems and talks only to DocuSign for the legally valid signature. Companies in more than one sector use that extra layer so the customer and the business both stay covered. A TechNegócios product, on AWS.",
    "stack": [
      "Next.js",
      "React",
      "TypeScript",
      "Python",
      "PostgreSQL",
      "AWS",
      "DocuSign"
    ],
    "status": "Production",
    "featured": true,
    "images": [
      {
        "src": "/static/img/projects/tech-face.png",
        "alt": "Tech Face landing: facial biometrics integrated with electronic signature, DocuSign and Face ID"
      }
    ]
  },
  {
    "slug": "bem-casados",
    "name": "Bem Casados",
    "description": "Wedding planning SaaS for couples and planners: themed wedding site, guest management and RSVP, symbolic gift registry with online payment, guest photos flowing from a table QR code onto a live wall at the venue, and a WhatsApp AI assistant grounded in the event's own data. A TechNegócios product, live in production.",
    "stack": [
      "Next.js",
      "React",
      "TypeScript",
      "Tailwind CSS",
      "PostgreSQL",
      "WhatsApp API",
      "AI Assistant",
      "PIX"
    ],
    "status": "Live",
    "url": "https://bemcasados.app.br/",
    "featured": true
  },
  {
    "slug": "meutiro",
    "name": "MeuTiro",
    "description": "SaaS for Brazil's CAC ecosystem — shooter, dispatcher and shooting club in one product. A digital wallet for CR, GT and CRAF with expiry alerts, a B2B desk for dispatchers, and club ops (members, dues, habitualidade).\n\nMobile-first PWA with offline reading, document OCR, subscription billing and a Chrome extension that speeds SisGCorp filling — the agency has no official API. Multi-tenant, roles by membership, Face ID at the club door.",
    "stack": [
      "Next.js",
      "TypeScript",
      "Supabase",
      "Stripe",
      "PWA",
      "Chrome Extension"
    ],
    "status": "Live",
    "url": "https://www.meutiro.com/",
    "featured": false
  },
  {
    "slug": "copacol-manager",
    "name": "Copacol Manager",
    "description": "Internal Copacol hub with corporate login and entry cards. The main modules are Copacol Agro (events and exhibitors), Events, Scale Automation (weighing, RFID, PLC and SAP), Prize wheel, Keyence reader (industrial codes and release) and Settings (users and permissions).\n\nUnderneath sit a Java API, SAP and the databases; some modules reach the shop floor. Outside the hub: the Fiori gatehouse app, the Android QR reader and the shared backend. Built for Copacol — internal use.",
    "stack": [
      "Next.js",
      "TypeScript",
      "Java",
      "SAPUI5",
      "Android",
      "MySQL",
      "Oracle",
      "SAP"
    ],
    "status": "Production",
    "featured": true,
    "images": [
      {
        "src": "/static/img/projects/copacol-manager.png",
        "alt": "Copacol Manager hub: cards for Agro, Events, Scale Automation, Prize wheel, Keyence reader and Settings"
      }
    ]
  },
  {
    "slug": "copacol-etiquetas",
    "name": "Copacol Etiquetas",
    "description": "Native Android app for Copacol's in-store supermarket work: live SAP price lookup and gondola-label printing on a Zebra ZQ521 over Bluetooth, so pricing is less manual and less error-prone.\n\nThe operator picks one of 16 centres, scans a barcode (camera) or types the material number, confirms description and BRL price, then prints a CPCL layout. The app calibrates the printer and shows a plain message when the corporate network drops. Built for Copacol — internal use.",
    "stack": [
      "Kotlin",
      "Jetpack Compose",
      "CameraX",
      "ML Kit",
      "Retrofit",
      "SAP",
      "Zebra"
    ],
    "status": "Production",
    "featured": false,
    "images": [
      {
        "src": "/static/img/projects/copacol-etiquetas.png",
        "alt": "Copacol Etiquetas printer picker: choose a paired Bluetooth printer on Android"
      }
    ]
  },
  {
    "slug": "mobilidade-piscicultura",
    "name": "Mobilidade Piscicultura",
    "description": "Android app for Copacol field crews to record the fish-farming cycle: housing juveniles, adult harvest (despesca) and technical visits (biometrics, water quality, recommendations, tank release).\n\nIt works offline on Room, syncs both ways with SAP over SOAP/XML, and prints receipts on a Zebra over Bluetooth. It replaces the old Windows Mobile/.NET handheld. QAS and production builds install side by side, with the environment on the home screen. Built for Copacol — internal use.",
    "stack": [
      "Kotlin",
      "Jetpack Compose",
      "Room",
      "Retrofit",
      "SOAP",
      "SAP",
      "Zebra"
    ],
    "status": "Production",
    "featured": false,
    "images": [
      {
        "src": "/static/img/projects/mobilidade-piscicultura.png",
        "alt": "Mobilidade Piscicultura home: housing, harvest, technical visits and SAP sync"
      }
    ]
  },
  {
    "slug": "weighing-scale-automation",
    "name": "Weighing Scale Automation",
    "description": "Java services that sit on the plant PC (Windows) and run Copacol's scales and gatehouses. Not a website: JARs that listen to the RFID antenna, SAP, PLC and hardware all day.\n\nWhen a truck brings the tag close, the antenna tells the server, the ticket comes from MySQL, the PLC (Modbus) opens the barrier and signals the weigh-in, the scale sends the weight over TCP, the LED panel shows the message and SAP is notified — with a camera still when it helps. The architecture is multi-tenant: Cafelândia URS, Nova Aurora, Universo and Jesuítas already run it, and the design was shaped so a lot more plants can come in without redrawing the flow. Built for Copacol — internal use.",
    "stack": [
      "Java",
      "MySQL",
      "Modbus",
      "RFID",
      "OpenCV"
    ],
    "status": "Production",
    "featured": true,
    "images": [
      {
        "src": "/static/img/projects/weighing-scale-hmi.png",
        "alt": "HMI for both scales: PLC, barrier, traffic light, plate and weight"
      },
      {
        "src": "/static/img/projects/weighing-scale-truck.png",
        "alt": "Truck on the weighbridge with the barrier in front"
      },
      {
        "src": "/static/img/projects/weighing-scale-pickup.png",
        "alt": "Vehicle on the weighbridge with the barrier in front"
      }
    ]
  },
  {
    "slug": "gameterapia",
    "name": "Gameterapia",
    "description": "Gameterapia is a therapeutic approach that uses games — board, digital or otherwise — as part of treatment or rehabilitation. The aim is to work emotional, cognitive, social and physical aspects through play, so the session stays motivating instead of purely clinical.\n\nThis project built five Unity modules for motor work with children who have PNEC (non-progressive chronic encephalopathy of childhood / cerebral palsy), targeting trunk, lower limbs and upper limbs. It includes patient and physiotherapist registration, a progress-analysis module, and a configuration menu per game so each session can be adapted to the person. Awarded first place at Meditec 2019.",
    "stack": [
      "Unity",
      "C#",
      "Kinect",
      "MySQL"
    ],
    "status": "Research",
    "featured": false,
    "images": [
      {
        "src": "/static/img/projects/gameterapia-penalty.png",
        "alt": "Penalty module: kick angle set in the menu decides the shot result"
      },
      {
        "src": "/static/img/projects/gameterapia-modules.png",
        "alt": "Module picker: balloon game, geometric figures, obstacle run, penalty, monster run"
      },
      {
        "src": "/static/img/projects/gameterapia-config.png",
        "alt": "Per-game setup: patient, physiotherapist, attempts, incline and which leg to work"
      }
    ]
  },
  {
    "slug": "nossa-terra-co",
    "name": "Nossa Terra CO",
    "description": "Native iOS app built as a gateway into the Sicredi Nossa Terra applications. Associates open one place instead of hunting down each system, and can also buy products from the Sicredi Store digital shop.\n\nThe app talks directly to Sicredi Admin and Espaço Digital, so catalog, access and the integrated-systems grid stay in sync with the cooperative's back office.",
    "stack": [
      "React Native",
      "TypeScript",
      "PostgreSQL"
    ],
    "status": "Delivered",
    "featured": false,
    "images": [
      {
        "src": "/static/img/projects/nossa-terra-co.png",
        "alt": "Integrated systems grid: search and shortcuts to DocuSign, Place, BrSupply, Tech Face and other Sicredi Nossa Terra apps"
      }
    ]
  },
  {
    "slug": "sicredi-admin",
    "name": "Sicredi Admin",
    "description": "Back-office for the Sicredi Nossa Terra suite: new units, user management and supervision of the modules that sit under Espaço Digital and the Nossa Terra CO iOS app.\n\nAdministration stays in one place so those pieces stay integrated and the cooperative can see what is running, instead of configuring each project on its own.",
    "stack": [
      "React",
      "TypeScript",
      "PostgreSQL"
    ],
    "status": "Delivered",
    "featured": false,
    "images": [
      {
        "src": "/static/img/projects/sicredi-admin.png",
        "alt": "Sicredi Admin login: welcome screen with user and password"
      }
    ]
  },
  {
    "slug": "organize",
    "name": "Organize",
    "description": "Contract management and tracking system for the legal regularities a legal entity (PJ) must keep in order under Brazilian rules. It watches the obligations that keep a company compliant, instead of leaving that follow-up to a spreadsheet.\n\nChecks run on configurable intervals and raise alerts automatically, so contractual and statutory duties stay visible before they lapse.",
    "stack": [
      "React",
      "TypeScript",
      "PostgreSQL"
    ],
    "status": "Delivered",
    "featured": false,
    "images": [
      {
        "src": "/static/img/projects/organize.png",
        "alt": "Organize login: organize your contracts, with email and password"
      }
    ]
  },
  {
    "slug": "go-portfolio-lab",
    "name": "Go Portfolio \u0026 Lab",
    "description": "This site. A portfolio built with the Go standard library only, doubling as a playground for concurrency experiments.",
    "stack": [
      "Go",
      "net/http",
      "html/template"
    ],
    "status": "In progress",
    "featured": false
  }
]
