GlobalTrotters is a full-stack travel planning application built with Next.js and Supabase.
It allows users to create customized itineraries, manage travel budgets, discover destinations, and share trips with friends or the public.
- Frontend & Backend: Next.js 14+ (App Router)
- BaaS: Supabase (PostgreSQL, Auth, Storage)
- Styling: TailwindCSS + Shadcn/UI
- Charts: Chart.js / Recharts
- Deployment: Vercel
- Other: Cloudinary (optional for image optimization), Day.js for date handling
src/
app/
page.tsx # Home Page
dashboard/ # User dashboard
trips/ # Trip pages
[id]/view/ # View trip details
[id]/edit/ # Edit trip
itinerary/[slug]/ # Public itinerary pages
components/ # Reusable components
lib/
supabaseClient.ts # Supabase client config
styles/
globals.css # Global styles
.env.local # Environment variables
- User Authentication — Email/password login & signup (Supabase Auth)
- Trip Management — Create, edit, delete trips
- Itinerary Builder — Add cities, activities, and dates
- Budget Tracking — Cost breakdowns with charts
- Destination & Activity Search — Search by filters
- Public Itineraries — Share trips via public links
- Responsive Design — Works on desktop and mobile
git clone https://github.com/yourusername/globaltrotters.git
cd globaltrottersnpm installCreate a .env.local file in the root:
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
npm run devVisit http://localhost:3000 in your browser.
users
id (UUID, PK)
name
email
profile_photo_url
language_preference
role
created_at, updated_at
trips
id (UUID, PK)
user_id (FK → users.id)
trip_name
description
cover_photo_url
start_date
end_date
created_at, updated_at
trip_cities
id (UUID, PK)
trip_id (FK → trips.id)
city_name
country
cost_index
order_number
activities
id (UUID, PK)
trip_city_id (FK → trip_cities.id)
activity_name
type
cost
duration_hours
description
image_url
budgets
id (UUID, PK)
trip_id (FK → trips.id)
transport_cost
stay_cost
meal_cost
activity_cost
total_cost
public_itineraries
id (UUID, PK)
trip_id (FK → trips.id)
public_url
share_enabled
- Push your repo to GitHub
- Connect to Vercel
- Add environment variables in Vercel project settings
- Deploy 🎉
- Offline mode (PWA support)
- Real-time collaboration on trips
- AI-powered itinerary suggestions
- Multi-language support
Pull requests are welcome! Please fork the repo and submit your changes via a PR.
This project is licensed under the MIT License.