Skip to content

MarvinTai/Taro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nomadic App - Find Your Travel Tribe

A revolutionary social platform for van lifers, RV travelers, and digital nomads. Unlike traditional dating apps that show people nearby, Nomadic App matches users based on where their paths will intersect in the future.

🎯 Core Innovation

Predictive path matching: "You and Sarah will both be near Moab in 3 days - want to climb together?"

🚀 Quick Start

Prerequisites

  • Node.js (v20.19.4 or higher recommended)
  • Expo CLI
  • Expo Go app on your phone (iOS/Android)
  • Supabase account

Setup

  1. Install dependencies:

    npm install
  2. Configure Supabase:

    a. Create a new Supabase project at https://supabase.com

    b. Run the SQL schema from the project documentation to set up your database tables

    c. Create a storage bucket called "profiles" (make it public for MVP)

    d. Copy .env.example to .env and add your Supabase credentials:

    cp .env.example .env

    Then edit .env with your actual values from Supabase Dashboard > Settings > API

  3. Start the development server:

    npm start
  4. Run on your device:

    • Scan the QR code with Expo Go (Android) or Camera app (iOS)
    • Make sure your phone and computer are on the same WiFi network

📱 Features

Phase 1 (MVP) - Completed

  • ✅ User authentication (email/password)
  • ✅ Profile creation with van photos
  • ✅ Route input system
  • ✅ Map visualization of routes
  • ✅ Route intersection algorithm
  • ✅ Swipe interface (Tinder-like)
  • ✅ Real-time messaging
  • ✅ Match notifications
  • ✅ Window of opportunity countdown

🏗 Project Structure

nomadic-app/
├── src/
│   ├── components/         # Reusable UI components
│   │   ├── RouteInput.tsx
│   │   └── SwipeCard.tsx
│   ├── screens/           # App screens
│   │   ├── AuthScreen.tsx
│   │   ├── ProfileSetupScreen.tsx
│   │   ├── HomeScreen.tsx
│   │   ├── SwipeScreen.tsx
│   │   ├── MapScreen.tsx
│   │   ├── MessagesScreen.tsx
│   │   └── ChatScreen.tsx
│   ├── navigation/        # Navigation setup
│   │   └── AppNavigator.tsx
│   ├── services/          # Backend services
│   │   ├── supabase.ts
│   │   ├── auth.ts
│   │   ├── database.ts
│   │   ├── storage.ts
│   │   └── matching.ts
│   ├── utils/            # Helper functions
│   │   ├── types.ts
│   │   └── routeCalculations.ts
│   ├── contexts/         # React contexts
│   │   └── AuthContext.tsx
│   └── constants/        # App constants
│       └── theme.ts
├── App.js               # Root component
└── package.json

🎨 Tech Stack

  • Frontend: React Native with Expo
  • Navigation: React Navigation
  • Maps: React Native Maps
  • Backend: Supabase (PostgreSQL + Auth + Storage + Real-time)
  • State Management: React Context API
  • Geospatial: Turf.js
  • Date/Time: date-fns

🗄 Database Schema

The app uses Supabase with the following main tables:

  • profiles - User profiles
  • routes - Travel routes
  • potential_matches - Calculated route intersections
  • likes - User likes
  • matches - Mutual matches
  • messages - Chat messages

See the full schema in the project documentation.

🧪 Testing

Test User Flow

  1. Create an account with email/password
  2. Set up your profile (name, age, bio, van type, photos, interests)
  3. Create a route (start location, end location, dates)
  4. Click "Find Matches" to calculate route intersections
  5. Go to Swipe tab to see potential matches
  6. Swipe right to like, left to pass
  7. When both users like each other, you'll get a match
  8. Go to Messages to chat with your matches

Example Test Routes

User 1:

  • Start: Denver, CO (39.7392, -104.9903)
  • End: Moab, UT (38.5733, -109.5498)
  • Dates: 2026-03-01 to 2026-03-15

User 2:

  • Start: Salt Lake City, UT (40.7608, -111.8910)
  • End: Arches National Park, UT (38.7331, -109.5925)
  • Dates: 2026-03-05 to 2026-03-20

These routes should intersect and create a match!

🔐 Environment Variables

Create a .env file with:

EXPO_PUBLIC_SUPABASE_URL=your-supabase-url
EXPO_PUBLIC_SUPABASE_ANON_KEY=your-anon-key

📝 Next Steps

Future Enhancements

  • Video intro cards
  • Advanced compatibility algorithm
  • Push notifications
  • Safety check-in system
  • Route editing
  • Profile editing
  • Real-time location tracking
  • Google Places API integration
  • Date picker UI

🤝 Contributing

This is a prototype/MVP. Feel free to fork and enhance!

📄 License

MIT License

🆘 Troubleshooting

"Supabase URL not configured"

  • Make sure you've created a .env file with your Supabase credentials
  • Restart the Expo development server after adding environment variables

Map not showing

  • Make sure you've granted location permissions
  • Check that your route has valid coordinates

Images not uploading

  • Ensure your Supabase "profiles" storage bucket exists and is public
  • Check that you've granted camera roll permissions

No matches found

  • Make sure you've created a route first
  • Ensure there are other users with routes that intersect yours
  • Check that date ranges overlap

📞 Support

For issues or questions, please refer to the project documentation.


Built with ❤️ for the nomadic community

Taro

About

app for vanlifers! part of #revenuecat challenge

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors