This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
What I Built
Every time a college event, trip, or wedding wraps up, someone drops a massive Google Drive link containing thousands of unorganized photos. Finding your own photos usually means spending hours manually scrolling through dozens of subfolders.
I built DropFolder to solve this exact problem for my friends.
Instead of hunting for photos manually, you simply paste the public Google Drive folder link and upload a single selfie. DropFolder scans through all the subfolders in the Drive, runs open-source face recognition to match your face against every photo, and gives you a clean gallery of just your pictures ready to download.
Demo
The app is deployed separately across two services on Render:
- Frontend App: https://dropfolder-frontend.onrender.com
- Backend API: https://dropfolder.onrender.com
Code
Check out the full open-source codebase on GitHub:
https://github.com/BStok/DropFolder
How I Built It
The app decouples heavy multi-photo scanning into a stream-and-match pipeline:
-
Google Drive Streamer: Parses the public Drive link, traverses all nested folders, and streams photo thumbnails directly in-memory using
PILandio.BytesIOwithout writing huge image files to disk. - Open-Source Face Embedding: Uses InsightFace (ArcFace architecture on ONNX Runtime) to detect faces and extract 512-dimensional floating-point vectors for every detected face.
- NumPy Cosine Similarity Engine: Rather than relying on heavy vector database dependencies for an MVP, I represented face embeddings directly as NumPy matrices. When a user uploads a selfie, its target vector is compared against the event matrix using dot-product cosine distance math in milliseconds.
Why Does Open Innovation Matter?
Using open-source AI models and self-hosting over proprietary closed APIs (like AWS Rekognition or Azure AI Vision) was critical for three key reasons:
- Biometric Privacy & Data Control: Facial embeddings and selfies contain sensitive biometric data. Proprietary APIs force you to send your friends' face data to corporate cloud servers. By running an open-weight model directly inside our self-hosted backend, photos and biometric embeddings remain under our control and are discarded after processing.
- Zero API Cost Escalation: Running closed APIs against event folders containing 2,000+ high-res photos incurs heavy per-image scanning and storage fees. Open-source models like InsightFace allow processing thousands of faces for $0 in API fees.
- Mathematical Freedom: Having direct access to raw 512-d feature vectors from open weights meant I didn't need black-box API lock-in; I could write a lightweight, hyper-fast NumPy matrix comparison script in just a few lines of Python.
Top comments (0)