Skip to content

Lost & Found is a cross-platform mobile application designed to modernize campus lost-and-found systems.

License

Notifications You must be signed in to change notification settings

Tensor-Club/Lost-Found

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 

Repository files navigation

📦 Lost & Found: Campus Asset Recovery System

A decentralized, trust-based platform for efficient campus asset recovery.
Built using Flutter & Supabase.


📖 Overview

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.


🚀 Key Features

🗺️ Geospatial Tagging & Visualization

  • 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).

🤝 Two-Handshake Verification Protocol

To prevent fraudulent claims and ensure item recovery, the system enforces a strict double-confirmation logic:

  1. Finder Action: Marks the item as Handed Over (Status updates to verification_pending).
  2. Owner Action: Receives a prompt to Confirm Receipt upon physical retrieval.
  3. Completion: The transaction closes only when both parties confirm, triggering the reputation algorithm.

🌟 Reputation & Incentive System

  • 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.

🛡️ Privacy-Centric Architecture

  • 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.

👮 Administration & Moderation

  • Content Management: Automated and manual tools to flag spam or inappropriate content.
  • Data Integrity: Database constraints ensure consistency during post deletion or user removal.

📸 User Journey

  1. Reporting: A user locates a lost item, captures an image, and pins the location on the map.
  2. Claiming: The owner identifies the item via the feed or map and submits a claim with specific proof.
  3. Verification: The finder reviews the proof and approves the claim. Contact information is mutually revealed.
  4. Handover: Both parties meet. The finder initiates the handover sequence in the app.
  5. Confirmation: The owner confirms receipt, closing the ticket and updating the finder's reputation score.

🛠️ Technical Architecture

  • 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

⚡ Quick Start Guide

1. Prerequisites

Ensure the Flutter SDK is installed and configured:

flutter --version

2. Installation

Clone the repository and install dependencies:

git clone <repository-url>
cd lost_and_found_app
flutter pub get

3. Environment Configuration

Create 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

4. Database Initialization

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;

5. Execution

Run the application on a connected device or emulator:

flutter run

📄 License

This project is licensed under the MIT License.

About

Lost & Found is a cross-platform mobile application designed to modernize campus lost-and-found systems.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published