Skip to content

aaleya5/GlobeNomad

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌍 GlobeNomad

GlobeNomad Logo

Next.js NestJS TypeScript GraphQL MongoDB

A modern, full-stack travel planning application that helps users discover, plan, and share their adventures around the globe.


🎯 About The Project

GlobeNomad is a comprehensive travel planning platform that combines the power of modern web technologies with intuitive design to create the ultimate travel companion. Whether you're planning a weekend getaway or a month-long adventure, GlobeNomad provides all the tools you need to create, manage, and share your travel experiences.

✨ Key Features

  • 🗺️ Interactive Trip Planning - Create detailed itineraries with drag-and-drop functionality
  • 🔍 Smart Destination Discovery - Explore destinations with AI-powered recommendations
  • 💰 Budget Management - Track expenses and get cost estimates for your trips
  • 🌐 Social Sharing - Share your trips publicly and discover others' adventures
  • 📱 Responsive Design - Seamless experience across all devices
  • 🔐 Secure Authentication - JWT-based auth with password recovery
  • 👥 Admin Dashboard - Comprehensive admin panel for platform management
  • 🎨 Modern UI/UX - Beautiful interface with Aceternity UI components

🛠️ Tech Stack

Frontend

  • Framework: Next.js 15.4.6 (App Router)
  • Language: TypeScript 5.x
  • Styling: Tailwind CSS 4.x
  • UI Components: Aceternity UI, Framer Motion
  • Icons: Lucide React
  • State Management: Apollo Client
  • GraphQL Client: Apollo Client 3.13.9
  • Forms: React Hook Form with Zod validation

Backend

  • Framework: NestJS 11.0.1
  • Language: TypeScript 5.7.3
  • Database: MongoDB with Mongoose ODM
  • API: GraphQL with Apollo Server
  • Authentication: JWT with Passport.js
  • Email: Nodemailer
  • Validation: Class Validator & Class Transformer
  • Security: bcrypt for password hashing
  • Scheduling: NestJS Schedule

DevOps & Tools

  • Package Manager: npm
  • Code Quality: ESLint, Prettier
  • Testing: Jest
  • Version Control: Git
  • API Testing: GraphQL Playground

🚀 Quick Start

Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (version 18 or higher)
  • npm or yarn
  • MongoDB (local or cloud instance)

Installation

  1. Clone the repository

    git clone https://github.com/KushalvDesai/GlobeNomad.git
    cd GlobeNomad
  2. Install Backend Dependencies

    cd be
    npm install
  3. Install Frontend Dependencies

    cd ../fe
    npm install
  4. Environment Setup

    Create .env file in the be directory:

    # Database
    MONGODB_URI=mongodb://localhost:27017/globenomad
    
    # JWT
    JWT_SECRET=your-super-secret-jwt-key-here
    
    # Email Configuration (for password reset)
    EMAIL_HOST=smtp.gmail.com
    EMAIL_PORT=587
    EMAIL_USER=your-email@gmail.com
    EMAIL_PASSWORD=your-app-password
    EMAIL_FROM=noreply@globenomad.com
    
    # Frontend URL
    FRONTEND_URL=http://localhost:3001

    Create .env.local file in the fe directory:

    NEXT_PUBLIC_BACKEND_URL=http://localhost:3000/graphql
  5. Start the Application

    Start the backend server:

    cd be
    npm run start:dev

    In a new terminal, start the frontend:

    cd fe
    npm run dev
  6. Access the Application

📁 Project Structure

GlobeNomad/
├── be/                          # Backend (NestJS)
│   ├── src/
│   │   ├── admin/              # Admin management module
│   │   ├── activities/         # Activities and categories
│   │   ├── auth/               # Authentication & authorization
│   │   │   ├── auth.service.ts
│   │   │   ├── jwt.strategy.ts
│   │   │   └── email.service.ts
│   │   ├── trip/               # Trip management
│   │   │   ├── trip.service.ts
│   │   │   ├── trip.resolver.ts
│   │   │   └── schema/
│   │   ├── user/               # User management
│   │   │   ├── user.service.ts
│   │   │   ├── user.resolver.ts
│   │   │   └── schema/
│   │   ├── app.module.ts
│   │   └── main.ts
│   ├── package.json
│   └── schema.gql              # Generated GraphQL schema
│
├── fe/                          # Frontend (Next.js)
│   ├── src/
│   │   ├── app/                # Next.js App Router
│   │   │   ├── page.tsx        # Landing page
│   │   │   ├── profile/        # User profile
│   │   │   └── reset-password/ # Password reset
│   │   ├── components/         # React components
│   │   │   └── ui/             # UI components
│   │   ├── graphql/            # GraphQL queries & mutations
│   │   │   ├── queries.ts
│   │   │   ├── mutations.ts
│   │   │   └── types.ts
│   │   └── lib/                # Utilities
│   ├── public/                 # Static assets
│   └── package.json
│
└── README.md                    # This file

🔧 Available Scripts

Backend (be/)

npm run start:dev      # Development mode with hot reload
npm run start:prod     # Production mode
npm run build          # Build for production
npm run test           # Run tests
npm run test:e2e       # Run end-to-end tests
npm run lint           # Lint code

Frontend (fe/)

npm run dev            # Development server
npm run build          # Build for production
npm run start          # Start production server
npm run lint           # Lint code

🌟 Core Features

🔐 Authentication System

  • User registration and login
  • JWT-based authentication
  • Password reset via email
  • Role-based access control (User, Admin, Super Admin)

🗺️ Trip Management

  • Create and manage detailed trips
  • Interactive itinerary builder
  • Budget estimation and tracking
  • Public/private trip sharing
  • Trip discovery and exploration

👥 User Management

  • User profiles with customizable information
  • Trip history and statistics
  • Social features for sharing experiences

🎨 Modern UI/UX

  • Responsive design with Tailwind CSS
  • Beautiful animations with Framer Motion
  • Premium UI components from Aceternity UI
  • Dark/light theme support

📊 Admin Dashboard

  • User management and statistics
  • Trip monitoring and moderation
  • Platform analytics and insights

🤝 Our Team

This project was developed by a talented team of developers:

Yash Bharvada
Yash Bharvada
Backend Developer
Aaleya Boxwala
Aaleya Boxwala
Frontend Developer
Kushal Desai
Kushal Desai
Frontend Developer
Shrey Lakhataria
Shrey Lakhataria
Backend Developer

🌐 Deployment

Backend Deployment

  1. Build the application: npm run build
  2. Set production environment variables
  3. Deploy to your preferred platform (Heroku, AWS, DigitalOcean, etc.)

Frontend Deployment

  1. Build the application: npm run build
  2. Deploy to Vercel, Netlify, or any static hosting service

Environment Variables for Production

  • Set secure JWT_SECRET
  • Configure production MongoDB URI
  • Set up email service credentials
  • Update CORS settings for production URLs

🤝 Contributing

We welcome contributions to GlobeNomad! Here's how you can help:

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

Development Guidelines

  • Follow TypeScript best practices
  • Write meaningful commit messages
  • Add tests for new features
  • Update documentation as needed
  • Follow the existing code style

📝 License

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

🙏 Acknowledgments

📞 Support

If you have any questions or need help, feel free to reach out:


Made with ❤️ by the GlobeNomad Team

Happy Traveling! 🌍✈️

About

GlobeNomad is a personalized, intelligent travel platform that empowers users to dream, design, and organize trips with ease. It offers flexible, interactive tools to explore destinations, create visual itineraries, make cost-effective choices, and share plans with a community—making planning as exciting as the journey.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 99.3%
  • Other 0.7%