Skip to content

SarfarazAkram17/TourNest-Client

Repository files navigation

TourNest β€” Tourism Management System

TourNest is a full-stack tourism and travel management platform where users can explore tour packages, book trips, apply as tour guides, share their stories, and securely make payments. It supports multiple user roles with robust access control, real-time updates, and a responsive user interface.


πŸ”— Live Project


πŸ” Admin Credentials

  • βœ‰οΈ Email: sarfaraz.akram055@gmail.com
  • πŸ”‘ Password: Sarfaraz1234

πŸš€ Features Overview

πŸ‘₯ User Roles

  • Tourist: Browse, book, and share stories.
  • Tour Guide: Handle assigned tours, share stories.
  • Admin: Manage users, packages, candidates, stats, and share stories.

🌍 Tour Packages

  • Explore tour packages with gallery, location, and plan.

πŸ“… Bookings & Payments

  • Tourists can book trips with selected guide/date.
  • Stripe integration for secure card payments.
  • Status flow: Pending β†’ In Review β†’ Accepted/Rejected.
  • Confetti animation after 3 successful payments πŸŽ‰.

πŸ§‘β€πŸ« Tour Guide Application

  • Tourists can apply as guides with title, reason, CV and other things.
  • Admin approves or rejects tour guide applications.

πŸ“ Stories

  • Users and guides can add stories with title, content, and images.
  • Shareable via Facebook using react-share.
  • Guides’ stories visible on their public profile.

πŸ“Š Admin Dashboard

  • View total:
    • βœ… Payments (sum of all)
    • βœ… Tour Guides (count)
    • βœ… Tourists (count)
    • βœ… Packages
    • βœ… Stories
  • Manage:
    • βœ… All users (search/filter by role)
    • βœ… Candidate applications
    • βœ… Add packages

πŸ“„ Profile & Dashboard

  • All users can update their profile (except email/role).
  • Role-based dashboard views and actions.
  • Join as Tour Guide button for tourists.
  • Manage guide profile page where tour guides update their guide profile.

🎯 Homepage Highlights

  • Tabs for "Our Packages" and "Meet Our Tour Guides"
  • Randomized content with MongoDB $sample
  • Stories with share options and All Stories link

πŸ” Auth & Security

  • Firebase Auth (Email/Password + Google Sign-In)
  • JWT-secured API access
  • Role-based route protection
  • Persistent login after page refresh

🧠 Smart UX

  • SweetAlert2 modals for actions
  • Toast feedbacks
  • Lottie animations for loaders
  • Fully responsive design
  • Framer Motion for smooth transitions on homepage

🧰 Tech Stack

Layer Technology
Frontend React, Tailwind CSS, DaisyUI
Backend Node.js, Express.js, MongoDB
Auth Firebase Authentication, JWT
Animation Framer Motion, Lottie
Payment Stripe
Deployment Netlify (Client), Vercel (Server)

πŸ“¦ All NPM Packages

Package Version Purpose
@stripe/react-stripe-js ^3.7.0 Stripe frontend integration
@tanstack/react-query ^5.82.0 API data fetching
framer-motion ^12.23.5 Animations & transitions
lottie-react ^2.4.1 Lottie animations for loaders
react-confetti ^6.4.0 Confetti celebration after 3 paid bookings
react-datepicker ^8.4.0 Elegant datepicker for booking form
react-hook-form ^7.60.0 Form handling and validation
react-icons ^5.5.0 Icons for UI
react-responsive-carousel ^3.2.23 Carousel for banner section
react-router ^7.6.3 Routing system
react-select ^5.10.1 Stylish select/dropdown UI
react-share ^5.2.2 Share stories on Facebook
react-tabs ^6.1.0 Tab components
react-toastify ^11.0.5 Toast notifications
react-use ^17.6.0 to get window size to show confetti
sweetalert2 ^11.22.2 Confirmation modals

πŸ‘¨β€πŸ’» Developer

πŸ› οΈ Getting Started

git clone https://github.com/SarfarazAkram17/TourNest-Client
cd TourNest-Client

About

Client-side of a full-stack Tourism Management System | 🧭 Tour booking, guide applications, and story sharing etc. |πŸ”— Live: https://tournest-sarfaraz-akram.netlify.app

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages