- This is a 3 role web app as follows Admin, Tour Guide, Tourist.
- Admin can add travel packages and manage users (make admin and tour guide).
- Here authenticated users can book packages, cancel them, if eligible can apply discount and make payment. They can also add packages to their wishlist and remove them.
- Tour guide can accept and reject bookings, update their profiles.
- Authenticated users can also make reviews on Tour guide profiles.
- Authenticated users can also write stories that are showcased to visitors.
- MongoDB database is used with Mongoose.
- Both email-password and social-based authentication is implemented by Firebase.
- Stripe Payment system is implemented in this project.
- JWT-based authentication is implemented.
- Axios interceptor functionality is implemented.
- There is a 404 error page.
- Dynamic loading page is shown on loading.
- Successful or failed CRUD operations and authentication operations will show meaningful toasts.
- In the navbar, when users log in, he or she can see his image and dashboard.
-
Frontend:
- React.js
- React Router
- Tailwind CSS
- Daisy UI
-
Backend:
- Node.js
- Express.js
- MongoDB (Mongoose)
-
Authentication:
- Firebase (Email-password and social-based authentication)
-
Payment:
- Stripe
-
Other Libraries:
- JWT (JSON Web Token)
- Axios
- Tanstack Query
- React Hot Toast
- React Rating
- Framer Motion
- React Awesome Slider
- React Confetti
- React Datepicker
- React Helmet Async
- React Icons
- React Share
- React Simple Captcha
- Sweet Alert 2
-
Deployment:
- Client side was hosted to Firebase
- Server side was hosted to Vercel