Skip to content

user-synax/nomadbase-goa

Repository files navigation

NomadBase Banner

🌴 NomadBase Goa

A community-driven platform for digital nomads in Goa

Next.js TypeScript Tailwind CSS MongoDB License


✨ Features

🏠 Co-Working Spaces

  • Discover the best co-working spaces in Goa
  • Filter by area, WiFi speed, noise level, and amenities
  • View detailed information including pricing and hours
  • Read reviews from other nomads

🏑 Colivings

  • Find your perfect home away from home
  • Browse verified coliving spaces
  • Filter by area, price range, and minimum stay
  • Check amenities like WiFi, AC, pool, and more

πŸ€– AI Assistant

  • Powered by Groq for fast, intelligent responses
  • Get instant answers about Goa nomad life
  • Ask about budgets, areas, visa rules, coworking spots
  • Streaming chat interface with modern UI

πŸ‘₯ Community

  • Connect with other digital nomads
  • Share experiences and tips
  • Join community discussions
  • Build your nomad network

πŸ” Authentication

  • Sign in with Google OAuth
  • Secure credential authentication
  • Protected routes for authenticated users
  • User profile management

πŸ› οΈ Tech Stack

Frontend

  • Next.js 16.2 - React framework with App Router
  • TypeScript 5.0 - Type-safe development
  • Tailwind CSS 4.0 - Utility-first styling
  • Framer Motion - Smooth animations
  • GSAP - Advanced animations
  • Lucide React - Beautiful icons
  • Radix UI - Accessible components
  • shadcn/ui - Reusable component library

Backend

  • Next.js API Routes - Serverless functions
  • MongoDB - NoSQL database
  • Mongoose - ODM for MongoDB
  • NextAuth v5 - Authentication
  • Groq SDK - AI chat completions

Deployment

  • Netlify - Cloud hosting platform
  • Netlify Edge Functions - Edge computing
  • Netlify Images - Image optimization

πŸš€ Getting Started

Prerequisites

  • Node.js 20 or higher
  • npm, yarn, or pnpm
  • MongoDB connection string
  • Google OAuth credentials (optional)

Installation

  1. Clone the repository
git clone https://github.com/user-synax/nomadbase-goa.git
cd nomadbase-goa
  1. Install dependencies
npm install
# or
yarn install
# or
pnpm install
  1. Set up environment variables

Create a .env.local file in the root directory:

# MongoDB
MONGODB_URI=mongodb://localhost:27017/nomadbase-goa

# Google OAuth
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret

# NextAuth
NEXTAUTH_SECRET=your_nextauth_secret
NEXTAUTH_URL=http://localhost:3000

# Groq AI
GROQ_API_KEY=your_groq_api_key
  1. Run the development server
npm run dev
# or
yarn dev
# or
pnpm dev
  1. Open your browser

Navigate to http://localhost:3000


πŸ“ Project Structure

nomadbase-goa/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ (auth)/              # Authentication routes
β”‚   β”‚   └── signin/          # Sign-in page
β”‚   β”œβ”€β”€ (root)/              # Main application routes
β”‚   β”‚   β”œβ”€β”€ assistant/       # AI assistant page
β”‚   β”‚   β”œβ”€β”€ colivings/       # Colivings listing
β”‚   β”‚   β”œβ”€β”€ page.tsx         # Landing page
β”‚   β”‚   β”œβ”€β”€ profile/         # User profiles
β”‚   β”‚   └── spaces/          # Co-working spaces
β”‚   β”œβ”€β”€ api/                 # API routes
β”‚   β”‚   β”œβ”€β”€ assistant/       # AI assistant API
β”‚   β”‚   β”œβ”€β”€ auth/            # Authentication API
β”‚   β”‚   β”œβ”€β”€ colivings/       # Colivings API
β”‚   β”‚   β”œβ”€β”€ community/       # Community API
β”‚   β”‚   β”œβ”€β”€ spaces/          # Spaces API
β”‚   β”‚   └── users/           # Users API
β”‚   └── layout.tsx           # Root layout
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ assistant/           # Assistant components
β”‚   β”œβ”€β”€ colivings/           # Coliving components
β”‚   β”œβ”€β”€ profile/             # Profile components
β”‚   β”œβ”€β”€ shared/              # Shared components
β”‚   β”œβ”€β”€ spaces/              # Space components
β”‚   └── ui/                  # UI components
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ auth.js              # NextAuth configuration
β”‚   └── db.js                # MongoDB connection
β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ Coliving.js          # Coliving model
β”‚   β”œβ”€β”€ Reply.js             # Reply model
β”‚   β”œβ”€β”€ Review.js            # Review model
β”‚   β”œβ”€β”€ Space.js             # Space model
β”‚   β”œβ”€β”€ Thread.js            # Thread model
β”‚   └── User.js              # User model
β”œβ”€β”€ middleware.js            # Next.js middleware
β”œβ”€β”€ netlify.toml             # Netlify configuration
β”œβ”€β”€ .nvmrc                   # Node version
β”œβ”€β”€ next.config.ts           # Next.js configuration
β”œβ”€β”€ tailwind.config.ts       # Tailwind configuration
└── tsconfig.json            # TypeScript configuration

πŸ” Authentication

Google OAuth Setup

  1. Go to Google Cloud Console
  2. Create a new project or select existing one
  3. Enable Google+ API
  4. Create OAuth 2.0 credentials
  5. Add authorized redirect URIs:
    • http://localhost:3000/api/auth/callback/google (development)
    • https://nomadbase-goa.netlify.app/api/auth/callback/google (production)
  6. Copy Client ID and Client Secret
  7. Add to environment variables

Environment Variables

Variable Description Required
MONGODB_URI MongoDB connection string Yes
GOOGLE_CLIENT_ID Google OAuth Client ID No
GOOGLE_CLIENT_SECRET Google OAuth Client Secret No
NEXTAUTH_SECRET NextAuth secret key Yes
NEXTAUTH_URL Application URL Yes
GROQ_API_KEY Groq API key for AI assistant Yes

πŸš€ Deployment

Netlify

  1. Connect your repository

    • Go to Netlify and add a new site
    • Import from GitHub
    • Select nomadbase-goa repository
  2. Configure build settings

    [build]
      command = "npm run build"
      publish = ".next"
  3. Set environment variables

    Add all required environment variables in Netlify site settings

  4. Deploy

    • Netlify will automatically build and deploy
    • Configure custom domain if needed

Manual Deployment

npm run build
npm run start

🀝 Contributing

Contributions are welcome! Please follow these steps:

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

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments


πŸ“ž Contact


Made with ❀️ for digital nomads in Goa

⬆ Back to Top

About

A community-driven platform for digital nomads in Goa. Discover co-working spaces, find colivings, get AI-powered advice, and connect with the nomad community.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors