This is a submission for Weekend Challenge: Dog Days Edition
What I Built
Scentinel is a decentralized community lost-dog verification network. The goal is to solve the classic neighborhood lost-dog problem by replacing unreliable paper flyers with an interactive, AI-driven, and blockchain-verified matching system.
Key features of Scentinel include:
- Dog Registry & Dashboard: Owners register their dogs with key physical traits (breed, size, markings) and a photo.
- AI Spoken Alert Scripts: When reported lost, a highly descriptive, urgent, and concise text script is automatically generated from the dog's characteristics.
- Neighborhood Voice Alerts: The alert script is synthesized into high-quality speech and uploaded as a public MP3 broadcast.
- Multimodal AI Sighting Verification: Anyone who spots a stray dog can upload a photo and location. The system performs parallel feature comparisons of the stray's photo against all active missing alerts.
- Decentralized Verification proof: When an owner confirms a matching sighting, an immutable verification receipt is written to the Solana blockchain, securing the match.
Demo
GitHub Repository: github.com/zastixx/Scentinel
- YouTube Demo: Watch the demo on YouTube
- Design System: A custom Notion (55%) × Duolingo (45%) aesthetic featuring rich typography, interactive 3D buttons that respond with tactile vertical translations, progress bars, and custom audio players.
Code
Scentinel — Decentralized Lost-Dog Verification Network
Scentinel is a web-based, decentralized lost-dog verification network. It enables dog owners to register their pets, toggle their status to missing, and instantly generate and broadcast localized spoken voice alerts. Strays spotted by the community can be photographed and reported anonymously; our Gemini AI comparison engine compares features against active lost reports with detailed reasoning. Once a match is confirmed, proof of recovery is written permanently to the Solana Devnet blockchain.
Demo Video
Technical Stack & Architecture
- Frontend: React (v19) + Vite + TypeScript + Tailwind CSS (v4) + React Router (v6). Adheres to a custom Notion × Duolingo hybrid design system.
- Backend: Node.js + Express + TypeScript.
- Database & Storage: Supabase (PostgreSQL database + storage buckets for images and audio files).
-
Integrations
- Google Gemini API (Gemini 2.5 Flash): Visual image comparison and spoken audio script drafting.
- ElevenLabs API…
How I Built It
The application is structured as a fullstack TypeScript project:
1. Frontend: React, Vite, & CSS Variables
The frontend is designed with a premium, responsive Notion × Duolingo look:
- Clean borders, generous whitespace, and minimal lines inspired by Notion.
- Deep, bright color accents, rounded boundaries, and 3D tactile push buttons inspired by Duolingo.
- Customized components (e.g.
AudioPlayer,ProgressBar, andCard) styled entirely with Vanilla CSS variables.
2. Backend: Node.js, Express, & Supabase
- Express server handling REST endpoints for registration, alerts, sightings, and verification confirmation.
- Supabase relational tables mapping dogs, alerts, sightings, and matches.
- Automated Supabase Storage bucket policy configurations for public access/uploads with strict RLS (Row-Level Security) protection.
3. Google Gemini (Interactions API / gemini-3.6-flash)
- Leverages the brand-new Gemini Interactions API for advanced model behavior.
- Generates localized spoken script text from dog details.
- Performs parallel image-to-image comparison between sighting uploads and registered dog photos.
- Configured with a dual-provider fallback system: if the direct Gemini API fails or limits are reached, the system automatically catches the error and retries the request via the OpenRouter API utilizing the
google/gemma-4-26b-a4b-it:freemodel.
4. ElevenLabs Voice Synthesis
- Automatically converts missing alert scripts into high-fidelity voice announcements using the
eleven_multilingual_v2model. - Includes a self-healing fallback mechanism: if a specific voice ID is missing or subscription limits are hit, it queries the account's available voices and immediately retries the generation.
5. Solana Blockchain Verification
- Logs confirmation metadata (match ID, sighting ID, confidence score, and timestamp) directly onto the Solana Devnet ledger.
- Communicates with the standard Solana Memo Program to register permanent, tamper-proof proof of verification.
Prize Categories
1. Best Use of Solana
Scentinel makes verification transparent by recording successful matches on the Solana Devnet ledger using the Memo program. This establishes a permanent, cryptographic link between the sighting, the owner's confirmation, and the matching confidence score.
2. Best Use of ElevenLabs
Neighborhood alerts are turned into high-fidelity voice broadcasts using ElevenLabs Text-to-Speech. Instead of reading text, users listen to automatically generated, urgent neighborhood announcements on the shareable public alert page.
3. Best Use of Google AI
Scentinel leverages Google Gemini 3.6-Flash (Interactions API) for two critical stages:
- Custom prompt parameters to draft clean, spoken alert scripts.
- Multimodal image processing to compare sighting photos with missing dog photos, returning a structured confidence percentage and breed-trait reasoning.
Top comments (0)