Connect, Discover, Live Local and Stay Safe
Nomad is a travel buddy finder app for adults (18+) that connects like-minded travellers around the world. Think of it as a travel-focused social network where you can find verified companions for your next adventure — safely and meaningfully.
- Verified Profiles — All users go through identity verification (ID + selfie upload) so you always travel with trusted people
- Travelling Personas — Match based on your travel personality:
- 🗺️ The Precision Planner
- 🌿 The Serenity Seeker
- 🏃 The Explore-It-All
- 💎 The Lavish Lover
- 🎭 The Cultural Connoisseur
- AI Compatibility Matching — Smart algorithm scores compatibility based on personas, hobbies, travel preferences, and age proximity
- Interactive Map — Pick your dream destinations using an embedded Google Map with continent filters
- Tinder-Style Swiping — Browse potential travel buddies and swipe to match
- Real-Time Chat — WebSocket-powered messaging with browser notifications
- Safety First — Every profile on Nomad is verified for a safe travel experience
| Layer | Technology |
|---|---|
| Frontend | React + TypeScript + Vite |
| Backend | Node.js + Express |
| Styling | Tailwind CSS + shadcn/ui |
| Routing | Wouter |
| Data Fetching | TanStack Query (React Query v5) |
| Forms | React Hook Form + Zod |
| Real-time | WebSockets |
| Maps | Google Maps API |
| Storage | In-memory (MemStorage) |
- Node.js 18+
- A Google Maps API key
-
Clone the repository
git clone https://github.com/AnsonChan2023/GlobalWanderers_Nomad_TravelApp.git cd GlobalWanderers_Nomad_TravelApp -
Install dependencies
npm install
-
Set up environment variables
Create a
.envfile in the root directory:GOOGLE_MAPS_API_KEY=your_google_maps_api_key_here
To get a Google Maps API key, visit Google Cloud Console and enable the Maps JavaScript API.
-
Run the development server
npm run dev
-
Open your browser and navigate to
http://localhost:5000
| Page | Description |
|---|---|
/ |
Homepage — hero section with destination cards and app intro |
/profile |
Create your traveller profile with photo, bio, destinations, and persona |
/matches |
Browse and swipe through compatible travel buddies |
/chat |
Real-time messaging with your matched travel companions |
├── client/ # React frontend
│ └── src/
│ ├── pages/ # Route pages (home, profile, matches, chat)
│ ├── components/ # Reusable UI components
│ └── lib/ # Query client and utilities
├── server/ # Express backend
│ ├── routes.ts # API endpoints
│ ├── storage.ts # In-memory data storage
│ └── index.ts # Server entry point
├── shared/
│ └── schema.ts # Shared TypeScript types and Zod schemas
└── attached_assets/ # Images and media assets
The app showcases some of the world's most exciting travel spots:
- 🇮🇹 Milan
- 🇳🇬 Lagos
- 🇵🇹 Lisbon
- 🇭🇰 Hong Kong
- 🇨🇳 Shanghai
Nomad takes safety seriously:
- Every user must upload a government-issued ID and a selfie for verification
- All profiles are reviewed before matching is enabled
- The platform is restricted to adults aged 18 and over
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -m 'Add my feature') - Push to the branch (
git push origin feature/my-feature) - Open a Pull Request
This project is open source and available under the MIT Licence.
Built with ❤️ by the Nomad team — making the world a smaller, friendlier place, one trip at a time.