Hello
  • swap-tune
  • swap-tune
  • swap-tune
  • swap-tune
  • swap-tune

EasyBus

EasyBus is a Online Bus Ticket Booking platform where a user can book their desirable seats for any particular date and destination.

Live Website

React

Redux

Material UI

Express

Mongoose

JsonWebToken

Stripe

Typescript

Firebase

React Query

React-router

React-hook-form

Axios

React-hot-toast

Achievements:

React Query is used to query data from APIs, caching, and revalidation, which provides a good user experience.
Private frontend routes and backend API routes are protected. JWT is used for authentication and role-based authorization allows users to perform tasks based on their roles.
React hook form and Zod provides proper form control and validation on the front end.
Firebase handles Email/Password and Google Login.
React Context API handles the user state as a global state.
Mongoose Schema validation ensures that all documents are validated against the schema whenever they are created or updated in the database.
Stripe is used for payment.

Features:

A user can see the landing page, current deals offered by EasyBus, available bus routes, and available buses and seats for a particular date and route, and he can contact EasyBus simply by filling in a form in the contact us section.
A User can't book a seat unless the user is logged In.
A user can log in via Email-Password, Google, or Facebook.
A logged-in user can start booking a ticket by searching for a bus with a starting point, destination, and journey date. Then he can select the bus he wants to travel to and also he can choose any available seat.
After that user can pay through stripe and after successful payment that seat will be booked for that user and he can see this in the My Booking section.
Dashboard is a private route for the admin, so only the admins can see and access the route.
In the Dashboard admin will see all users, all admins, all buses, add bus, and all contact sections.
A admin can remove a user, promote a user to an admin, remove an admin, see all buses, delete a bus, add a new bus, and see all contacts.