Skip to content

Repository files navigation

🧭 Nomad — The Travel Social Network

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.


✨ Features

  • 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

🖥️ Tech Stack

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)

🚀 Getting Started

Prerequisites

  • Node.js 18+
  • A Google Maps API key

Installation

  1. Clone the repository

    git clone https://github.com/AnsonChan2023/GlobalWanderers_Nomad_TravelApp.git
    cd GlobalWanderers_Nomad_TravelApp
  2. Install dependencies

    npm install
  3. Set up environment variables

    Create a .env file 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.

  4. Run the development server

    npm run dev
  5. Open your browser and navigate to http://localhost:5000


📱 Pages

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

🗂️ Project Structure

├── 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

🌍 Featured Destinations

The app showcases some of the world's most exciting travel spots:

  • 🇮🇹 Milan
  • 🇳🇬 Lagos
  • 🇵🇹 Lisbon
  • 🇭🇰 Hong Kong
  • 🇨🇳 Shanghai

🔒 Safety & Verification

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

🤝 Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Commit your changes (git commit -m 'Add my feature')
  4. Push to the branch (git push origin feature/my-feature)
  5. Open a Pull Request

📄 Licence

This project is open source and available under the MIT Licence.


👋 About

Built with ❤️ by the Nomad team — making the world a smaller, friendlier place, one trip at a time.