WhatsApp Photo Intake with Face Recognition
Overview
A build that ingests photos sent over WhatsApp, runs them through AWS Rekognition for face indexing and matching, and records people/photos into a NocoDB backend. It connects a self-hosted WhatsApp HTTP API gateway to a serverless image-processing function.
Why It Exists
The goal was to let an event’s attendees receive their own photos automatically: send a selfie over WhatsApp, get matched against indexed event photos, and have the right images routed back, without a custom app. It validates a chat-native, face-recognition photo-distribution flow.
What We Built
Python scripts covering the pipeline: create-collection.py and create-session.py set up the Rekognition face collection and WhatsApp session, get-qr-code.py handles device linking, and process-image.py indexes/searches faces. aws_client.py provisions the Rekognition client, the WhatsApp gateway runs from devlikeapro/whatsapp-http-api-plus via start.sh (Docker), and image processing is wrapped in a Modal serverless function (FastAPI web endpoint). Structured data, photos, people, events, is stored in NocoDB, with MongoDB (pymongo) available for additional state.
Technologies & Approach
AWS Rekognition for face collections and SearchFaces, Modal for on-demand serverless compute with a FastAPI endpoint, a Dockerized WhatsApp HTTP API for messaging, S3 for image storage, and NocoDB as a no-code structured backend. The mix lets a non-trivial CV workflow run with minimal standing infrastructure.
Outcome / Impact
Proved that a WhatsApp-driven, face-recognition photo-matching flow can be assembled quickly from managed building blocks. Demonstrates integration of messaging, computer vision, serverless compute, and no-code data storage in one pipeline.
Capabilities Demonstrated
- WhatsApp messaging automation via a self-hosted gateway
- Face-recognition pipelines with AWS Rekognition
- Serverless image processing on Modal + FastAPI
- No-code/low-ops data backends (NocoDB, S3)