Skip to content

Trip Mate: A collaborative travel platform where users can explore trips created by others (users or admins), request to join journeys, and connect with fellow travelers for a shared travel experience.

Notifications You must be signed in to change notification settings

NiharMondal/trip-mate

Repository files navigation

TripMate 🚀

A user-friendly platform where travelers can create trips, request for trip mates, manage trips, and share reviews. The platform provides features for users to manage their trips seamlessly from a personal dashboard.

Here is the link of backend code - Trip Mate Backend Link

Features ✨

Exclusive

  • Change your password
  • Reset your password if you forgot password. For that you will need a email address that belongs to you.
  • Update your profile.

Common Features

  • Explore Popular Trips
  • Discover the most popular trips based on ratings and user reviews.
  • Browse the latest trips added to the platform.
  • See all trips but when you logged in you will not see your created trip in the trip list. Becase you are the host. Surely you will not sent buddy request on your own trip. 😍

User Features 🧑‍💻

1. Dashboard Management

  • Users can manage their trips: create, edit, and delete.
  • View and respond to incoming trip-mate requests.
  • Track outgoing requests sent to join other trips.
  • Update personal profile information.
  • Share trip reviews and ratings after completion.

2. Advanced Filtering Options

  • Filter by Destination: Explore trips by continent or specific destinations.
  • Filter by Title or Price Range: Narrow down trips based on a title keyword and minimum-maximum price ranges.

3. Sorting

  • Sort trips by:
    • Title (alphabetical order)
    • CreatedAt (recently added trips)
    • Price (ascending/descending)
    • Rating (user reviews)
    • Freshly Added Trips

4. Pagination

  • Optimized page navigation for a seamless user experience.

Admin Features 🔑

1. Trip and Review Management

  • Admins can view, edit, or delete all trips and user reviews.

2. Destination Management

  • Only admins can create, update, or delete official destinations.

3. User Overview

  • View all registered users and manage their activities.

4. Admin Profile Update

  • Admins can update their personal profile information.

5. Overall Dashboard Overview

  • Access a complete overview of trips, reviews, and user activities.

Tech Stack 🛠️

  • Frontend: Next.js, TypeScript, TailwindCSS
  • Backend: Node.js, Express.js
  • Database: MongoDB with Mongoose
  • State Management: Redux Toolkit
  • Authentication: JWT
  • Authorization: Role-based access control (RBAC)
  • Pagination & Filtering: Efficient API querying
  • Deployment: Vercel

Installation ⚙️

Follow these steps to set up the project locally:

  1. Clone the repository:
    git clone https://github.com/NiharMondal/trip-mate
  1. Navigate to the project folder:
    cd trip-mate
  1. Install dependencies:
    npm install
  1. Set up environment variables:
  • Create a .env.local file in the root directory.
  • Add the required environment variables:
    NEXT_PUBLIC_BACKEND_URL = "http://localhost:5000/api/v1"
  1. Start the development server:
    npm run dev
  1. Access the app at http://localhost:3000.

Screenshots 📸

Home Page preview

User Dashboard preview

Admin Dashboard preview

How to Contribute 🤝

Contributions are welcome! Follow these steps:

1. Fork the project. 2. Create a new branch:

    git checkout -b feature/your-feature-name

3. Commit your changes:

    git commit -m "Add some feature"

4. Push the branch:

    git push origin feature/your-feature-name

5. Open a Pull Request.

License 📝

This project is licensed under the MIT License.

About

Trip Mate: A collaborative travel platform where users can explore trips created by others (users or admins), request to join journeys, and connect with fellow travelers for a shared travel experience.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published