A location-based Q&A platform with AI-powered answer verification, blockchain rewards, and real-time ML processing.
- π Location-Based Questions: Ask and answer questions tied to specific GPS coordinates
- π€ AI Verification: Multi-stage ML pipeline for answer validation (NSFW detection, object detection, scene captioning, OCR)
- βοΈ Blockchain Rewards: Solana-based credit system for verified contributions
- πΊοΈ Interactive Map: Real-time visualization of questions in your area
- π Reputation System: Earn points for quality answers and community engagement
- π Secure Authentication: JWT-based user authentication with Supabase backend
- FastAPI - High-performance Python web framework
- Supabase - PostgreSQL database with real-time capabilities
- Solana - Blockchain integration for rewards
- ML Pipeline:
- NSFW Detection
- YOLO Object Detection
- Face Detection & Blurring
- Scene Captioning
- OCR Text Detection
- Semantic Similarity (CLIP)
- React 18 - Modern UI library
- Vite - Fast build tool
- Framer Motion - Smooth animations
- Leaflet - Interactive maps
- React Router - Client-side routing
- Python 3.13+
- Node.js 22.11.0+
- npm or yarn
- Supabase account
- Solana wallet (for blockchain features)
- Clone the repository:
git clone https://github.com/Ramysandy/Pinpoint.git
cd Pinpoint- Install Python dependencies:
pip install -r requirements.txt- Download ML models:
# YOLOv5 model (for object detection)
# Download from: https://github.com/ultralytics/yolov5/releases/download/v7.0/yolov5s.pt
# Place in project root as yolov5s.pt- Set up environment variables:
cp .env.example .env
# Edit .env with your credentialsRequired environment variables:
SUPABASE_URL=your_supabase_project_url
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
JWT_SECRET=your_jwt_secret_key
SOLANA_PRIVATE_KEY=your_solana_wallet_private_key
SOLANA_NETWORK=devnet- Set up database schema:
# Run the SQL schema in your Supabase SQL editor
# See: supabase_schema.sql- Populate sample data (optional):
python populate_db.py- Navigate to frontend directory:
cd "Frontend/Reveal copy"- Install dependencies:
npm install- Create frontend .env file:
# Create Frontend/Reveal copy/.env
VITE_API_BASE_URL=http://localhost:8000
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_anon_key- Build frontend:
npm run build- Start the backend server:
python main.pyServer will run on http://localhost:8000
- Frontend development server (optional):
cd "Frontend/Reveal copy"
npm run devFrontend will run on http://localhost:5173
The backend serves the built frontend automatically from the templates folder:
python main.pyVisit http://localhost:8000 to see the application.
Once the server is running, visit:
- Swagger UI:
http://localhost:8000/docs - ReDoc:
http://localhost:8000/redoc
See API_DOCUMENTATION.md for detailed endpoint documentation.
- Sign Up / Login: Create an account or log in
- Ask a Question: Click "Ask Question" and provide location, title, and details
- Answer Questions: View nearby questions and submit photo + text answers
- Earn Rewards: Get verified answers approved through ML pipeline and earn Solana credits
- Build Reputation: Accumulate upvotes and reputation points
Run the smoke test:
powershell -ExecutionPolicy Bypass -File smoke_test.ps1Pinpoint/
βββ Frontend/Reveal copy/ # React frontend application
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ store/ # State management
β β βββ api/ # API client functions
β βββ dist/ # Built frontend (gitignored)
βββ routes/ # FastAPI route handlers
β βββ auth.py # Authentication endpoints
β βββ questions.py # Question CRUD
β βββ answers.py # Answer submission & voting
βββ ml_pipeline/ # ML verification modules
βββ templates/ # Served frontend (gitignored assets)
βββ db.py # Supabase database client
βββ main.py # FastAPI application entry point
βββ schemas.py # Pydantic data models
βββ solana_verifier.py # Blockchain integration
βββ populate_db.py # Sample data generator
- Never commit
.envfiles - Use service role keys only on backend
- Implement Row Level Security (RLS) in Supabase
- Validate all user inputs
- ML models not included in repo (download separately)
This project is licensed under the MIT License.
Contributions are welcome! Please feel free to submit a Pull Request.
For questions or support, please open an issue on GitHub.
Built with β€οΈ using React, FastAPI, and Solana

