Share Your View
An in-gallery photo-booth installation: visitors submit a photo, a vision-based similarity search matches it to artworks in the museum's collection, and the result is composited and published to a moderated public gallery.
Built the submission-gallery API, the image-compositing pipeline, and the moderation/notification flow — later revisited to find and patch a set of path-traversal and SSRF vulnerabilities after observing exploitation attempts against the production server.
The vision pipeline embeds the museum's collection images ahead of time and turns each visitor upload into a vector for nearest-neighbor lookup at request time, with bulk import/reconciliation tooling keeping the vector index in sync with the museum's Collection Online API as the source of truth.
- Python (FastAPI)
- Milvus
- PyTorch / torchvision / ultralytics
- MongoDB
- Docker Compose
- Ansible
- nginx