Skip to content

EddyC23/TAMUHACK2026

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Found AAgain

AI-powered luggage tracking and identification system using computer vision.

Features

  • Live Detection: Real-time luggage detection using webcam or video upload
  • Smart Description: AI generates detailed descriptions of bags (color, brand, type, features)
  • Semantic Search: Find your bag by describing it in natural language
  • Status Tracking: Track bags from check-in to conveyor belt

Tech Stack

Backend

  • FastAPI - High-performance Python API
  • Roboflow - Object detection (YOLO)
  • BLIP - Image captioning and description
  • CLIP - Semantic embeddings for similarity search
  • Supabase - PostgreSQL database with pgvector

Frontend

  • Next.js 14 - React framework
  • Tailwind CSS - Styling
  • react-webcam - Live video capture

Quick Start

1. Backend Setup

cd backend

# Create virtual environment
python -m venv venv

# Activate (Windows)
.\venv\Scripts\activate

# Activate (Mac/Linux)
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Copy env file and add your keys
copy .env.example .env
# Edit .env with your API keys

# Run server
uvicorn app.main:app --reload --port 8000

2. Frontend Setup

cd frontend

# Install dependencies
npm install

# Run development server
npm run dev

3. Open the App

API Endpoints

Method Endpoint Description
POST /api/video/upload Upload video for processing
POST /api/video/frame Process single webcam frame
GET /api/bags List all bags
GET /api/bags/{id} Get specific bag
PATCH /api/bags/{id}/status Update bag status
POST /api/search Semantic search for bags

Environment Variables

Backend (.env)

ROBOFLOW_API_KEY=your_key
SUPABASE_URL=your_url
SUPABASE_KEY=your_key
HF_TOKEN=your_token (optional)

Frontend (.env.local)

NEXT_PUBLIC_API_URL=http://localhost:8000

Supabase Setup

Run this SQL in your Supabase SQL Editor:

CREATE EXTENSION IF NOT EXISTS vector;

CREATE TABLE bags (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    status TEXT CHECK (status IN ('CHECKIN', 'CONVEYOR')),
    description TEXT,
    color TEXT,
    brand TEXT,
    bag_type TEXT,
    size TEXT,
    features JSONB DEFAULT '[]',
    image_url TEXT,
    text_embedding vector(512),
    created_at TIMESTAMPTZ DEFAULT NOW()
);

CREATE INDEX ON bags USING ivfflat (text_embedding vector_cosine_ops) WITH (lists = 100);

CREATE OR REPLACE FUNCTION search_bags(query_embedding vector(512), match_count INT)
RETURNS SETOF bags AS $$
BEGIN
    RETURN QUERY
    SELECT *
    FROM bags
    ORDER BY text_embedding <=> query_embedding
    LIMIT match_count;
END;
$$ LANGUAGE plpgsql;

Project Structure

tamuhack26/
├── backend/
│   ├── app/
│   │   ├── main.py           # FastAPI app
│   │   ├── database.py       # Supabase client
│   │   ├── routers/          # API endpoints
│   │   ├── services/         # ML services
│   │   └── models/           # Pydantic models
│   └── requirements.txt
├── frontend/
│   ├── app/                  # Next.js pages
│   ├── components/           # React components
│   └── package.json
├── mockup.html               # Design mockup
└── README.md

License

MIT - Built for TAMUHack 2026

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors