Find-a-Flight-School Marketplace - Helping Students Find Their Perfect Flight Training Match
A modern, student-facing marketplace platform that makes finding and comparing flight schools easy. Features universal school directory, trust tiers, AI-powered matching, and tools for student conversion.
π Live Demo: https://fsp-marketplace.vercel.app (or your actual Vercel URL)
πΉ Demo Video: [Link to your demo video]
- π Universal School Directory: Browse and search 6 flight schools nationwide
- πΊοΈ Location-Based Search: Geographic filtering with PostGIS for distance-based results
- β Trust Tiers: Premier, Verified FSP, Community-Verified, Unverified badges
- π School Comparison: Side-by-side comparison of programs, costs, and features
- π Student Reviews: Submit and read verified student feedback with detailed ratings
- π° Financing Calculator: Interactive cost estimation and payment planning
- π€ AI Matching System: Smart questionnaire-based school recommendations
- π§ Inquiry System: Students can contact schools directly through the platform
- π¨βπΌ Role-Based Access: Platform Admin, School Admin, and Student roles
- π« School Admin Dashboard: Manage inquiries and reviews for your school
- π Authentication: Secure sign-up/sign-in with Supabase Auth
- π‘οΈ Row-Level Security: Database policies ensure data privacy and access control
- π¬ Inquiry Management: Track and respond to prospective student inquiries
- β Review Moderation: Approve/reject reviews before they go public
- π¨ Modern UI/UX: Minimalist, user-friendly design with smooth animations
- π± Responsive Design: Works beautifully on desktop, tablet, and mobile
- β‘ Fast Performance: Optimized with TanStack Query caching and lazy loading
- π Real-time Updates: Instant data refresh and status changes
- π‘οΈ Error Boundaries: Graceful error handling throughout the app
- π Toast Notifications: User feedback for all actions
- π Production Ready: TypeScript strict mode, no compilation errors
- π School claim flow
- πΌοΈ Photo/video uploads
- π Document management
- π³ Subscription tiers
- π Tour booking integration
- π¬ Live chat support
- π Analytics dashboard
- π Email/SMS notifications
- π― ML-powered matching refinement
- π¬ AI chatbot for student questions
- π Predictive analytics
- Node.js 18+ and pnpm installed
- Supabase account (free tier or Pro)
- Vercel account (for deployment)
# 1. Clone repository
git clone https://github.com/Davaakhatan/fsp.git
cd fsp
# 2. Install dependencies
pnpm install
# 3. Set up environment variables
cd apps/web
cp .env.example .env.local
# Edit .env.local with your Supabase keys
# 4. Set up Supabase database
# - Go to Supabase dashboard β SQL Editor
# - Run migrations from supabase/migrations/ folder in order
# - Enable PostGIS extension if not already enabled
# 5. Start development server
pnpm devVisit http://localhost:5175 π
Create apps/web/.env.local:
# Supabase (Required)
VITE_SUPABASE_URL=https://your-project.supabase.co
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
# OpenAI (Optional - for AI Matching feature)
VITE_OPENAI_API_KEY=sk-proj-your_openai_api_key- Create Supabase Project: Go to https://supabase.com and create a new project
- Enable PostGIS: Run
CREATE EXTENSION IF NOT EXISTS postgis;in SQL Editor - Run Migrations: Execute SQL files from
supabase/migrations/folder in order:create-schools-schema.sqlcreate-reviews-schema.sqlcreate-inquiries-schema.sqlcreate-school-admins.sqlinsert-sample-schools.sql- And all RLS policy files
FSP/
βββ apps/
β βββ web/ # Main React application
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ hooks/ # Custom React hooks
β β βββ lib/ # API client and utilities
β β βββ contexts/ # React contexts (Auth)
β β βββ services/ # Business logic (AI, etc.)
β βββ public/ # Static assets
βββ packages/
β βββ shared/ # Shared types and constants
βββ supabase/
β βββ migrations/ # Database schema and RLS policies
βββ memory-bank/ # Project documentation
βββ docs/ # Additional guides
βββ .cursor/rules/ # AI coding standards
- React 18 + TypeScript + Vite
- TailwindCSS for styling
- TanStack Query for data fetching and caching
- Zustand for state management
- React Router for navigation
- Lucide Icons for UI icons
- Supabase PostgreSQL with PostGIS extension
- Supabase Auth for authentication
- Row-Level Security (RLS) for data access control
- Vercel Serverless Functions (for future API endpoints)
- OpenAI GPT-4 via AI SDK (optional, for AI Matching)
- Supabase REST API with PostgREST
- Vercel for deployment and hosting
- GitHub for version control
- pnpm for package management
Total Cost: FREE (Supabase Pro optional: $25/month for PostGIS)
- Homepage (
/) - Hero section, search, featured schools - Browse Schools (
/search) - Advanced filtering and search - School Profile (
/schools/:slug) - Detailed school information, reviews, inquiry form - Comparison (
/compare) - Side-by-side school comparison - AI Matching (
/find-match) - Smart questionnaire-based matching - Financing Hub (
/financing) - Cost calculator and financing info - Sign In/Up (
/signin,/signup) - Authentication pages - Admin Dashboards:
- Platform Admin:
/admin/dashboard(overview of all schools) - School Admin:
/portal/inquiries,/portal/reviews
- Platform Admin:
-
Push to GitHub:
git push origin main
-
Connect to Vercel:
- Go to https://vercel.com
- Import your GitHub repository
- Framework: Vite
- Root Directory:
apps/web - Build Command:
pnpm build - Output Directory:
dist
-
Set Environment Variables:
VITE_SUPABASE_URL=https://your-project.supabase.co VITE_SUPABASE_ANON_KEY=your_anon_key VITE_OPENAI_API_KEY=sk-proj-... (optional) -
Deploy: Click "Deploy" and wait for build to complete!
Important: Make sure to use VITE_ prefix for all environment variables (Vite requirement).
Run in Supabase SQL Editor:
-- Platform Admin (sees all schools)
-- Email: [email protected]
-- Password: admin123456
-- Role: admin
-- School Admin (sees only their school)
-- Email: [email protected]
-- Password: admin123456
-- Role: school_admin
-- Linked to: Phoenix Aviation Academy
-- Regular Student User
-- Email: [email protected]
-- Password: student123456
-- Role: user- Browse as Guest: Visit homepage, search schools, view profiles
- Submit Inquiry: Fill out contact form on school profile
- Leave Review: Submit a review for a school (goes to moderation)
- Sign In as School Admin: Manage inquiries and approve reviews
- Sign In as Platform Admin: See all inquiries/reviews across all schools
- Try AI Matching: Complete the questionnaire and get matched schools
- Premier: Top-tier schools with FSP operational data integration
- Verified FSP: Schools using FSP for operations
- Community-Verified: Alumni-verified schools
- Unverified: New listings pending verification
- Geographic search with distance calculation
- Filter by training type (Part 141/61)
- Budget range filtering
- Aircraft fleet filtering
- VA approval filtering
- 9-question personalized questionnaire
- Intelligent scoring algorithm
- Budget, location, and training preference matching
- Detailed reasoning for each match
- Role-based access control (RBAC)
- School-specific data isolation
- Platform-wide admin oversight
- Real-time inquiry/review management
- Smooth animations and transitions
- Loading skeletons for better perceived performance
- Toast notifications for user feedback
- Mobile-responsive design
- Accessibility best practices
- 6 Flight Schools across major US cities
- Sample Programs: PPL, IFR, Commercial, CFI
- Trust Tiers: Mix of Premier, Verified, and Community-Verified
- Reviews: Sample approved reviews for each school
- 3 Admin Users: Platform admin, school admin, regular user
This is a fully functional MVP of a flight school marketplace platform built to demonstrate modern full-stack development skills.
Key Achievements:
- β Built complete marketplace in 1 week
- β Production-ready code with zero TypeScript errors
- β Deployed and live on Vercel
- β Full authentication and authorization system
- β AI-powered matching algorithm
- β Mobile-responsive design
- β Clean, maintainable codebase
What Makes This Special:
- Real-world application: Solves actual problem for flight school discovery
- Modern stack: Latest React patterns, TypeScript strict mode, serverless architecture
- Security-first: Row-Level Security policies, role-based access control
- AI integration: Optional GPT-4 powered school matching
- Production quality: Error boundaries, loading states, toast notifications, form validation
- Cost-effective: Runs on free tier (or $25/month for PostGIS)
This project demonstrates expertise in:
- Modern React/TypeScript development
- Supabase backend with RLS
- AI integration with OpenAI
- Beautiful UI/UX design
- Role-based access control
- Geographic data with PostGIS
- Full-stack deployment pipeline
Feel free to explore, learn, and build upon it!
MIT
Built with amazing tools:
- Supabase - Database, Auth, and RLS
- Vercel - Hosting and deployment
- TailwindCSS - Styling framework
- TanStack Query - Data fetching
- OpenAI - AI matching (optional)
- Lucide Icons - Beautiful icons
For questions or issues:
- Check memory-bank/ for detailed documentation
- Review docs/ for setup guides
- Check Supabase logs for database issues
- Check Vercel logs for deployment issues
Status: β Phase 1 MVP Complete - Live in Production! π
Built with: React β’ TypeScript β’ Supabase β’ TailwindCSS β’ Vercel