A decentralized, trust-based platform for efficient campus asset
recovery.
Built using Flutter & Supabase.
Traditional campus lost-and-found systems often rely on inefficient methods such as physical notice boards or unstructured chat groups. These systems suffer from low visibility, privacy risks regarding personal contact information, and a lack of verification mechanisms.
Lost & Found digitizes this process into a structured, peer-to-peer ecosystem. The platform leverages geospatial tagging for precise item location and introduces a Two-Handshake Protocol to verify physical handovers, ensuring security and trust within the campus community.
- Precision Pinning: Finders can mark the exact coordinates of a found item on an interactive map.
- Geospatial Browsing: Users can visually explore the map to locate items found near specific campus landmarks (e.g., Lab 301, Main Cafeteria).
To prevent fraudulent claims and ensure item recovery, the system enforces a strict double-confirmation logic:
- Finder Action: Marks the item as Handed Over (Status updates
to
verification_pending). - Owner Action: Receives a prompt to Confirm Receipt upon physical retrieval.
- Completion: The transaction closes only when both parties confirm, triggering the reputation algorithm.
- Trust Scoring: Successful returns award the finder +1 Reputation Point via secure database functions.
- Civic Gamification: A leaderboard system incentivizes active participation and honest behavior.
- Security: Reputation logic is handled via secure PostgreSQL RPCs to prevent client-side manipulation.
- Data Protection: User contact details (Email/Phone) are masked by default.
- Conditional Disclosure:
- Finders view Owner details only after a claim is initiated.
- Owners view Finder details only after a claim is preliminarily approved.
- Content Management: Automated and manual tools to flag spam or inappropriate content.
- Data Integrity: Database constraints ensure consistency during post deletion or user removal.
- Reporting: A user locates a lost item, captures an image, and pins the location on the map.
- Claiming: The owner identifies the item via the feed or map and submits a claim with specific proof.
- Verification: The finder reviews the proof and approves the claim. Contact information is mutually revealed.
- Handover: Both parties meet. The finder initiates the handover sequence in the app.
- Confirmation: The owner confirms receipt, closing the ticket and updating the finder's reputation score.
- Frontend: Flutter (Dart)
- Backend: Supabase (PostgreSQL)
- Authentication: Google OAuth & Secure Email/Password
- Mapping: flutter_map / Google Maps API
- State Management: setState / Provider
- Database Logic: PL/pgSQL functions for secure transaction handling
Ensure the Flutter SDK is installed and configured:
flutter --versionClone the repository and install dependencies:
git clone <repository-url>
cd lost_and_found_app
flutter pub getCreate a .env file in the root directory containing your Supabase
credentials:
SUPABASE_URL=https://your-project-id.supabase.co
SUPABASE_ANON_KEY=your-long-anon-key-here
Execute the following SQL function in the Supabase SQL Editor to enable the reputation system:
create or replace function increment_reputation(user_id uuid, amount int)
returns void as $$
begin
update profiles
set reputation = coalesce(reputation, 0) + amount
where id = user_id;
end;
$$ language plpgsql security definer;Run the application on a connected device or emulator:
flutter runThis project is licensed under the MIT License.