BookNest
BookNest is an Hotel booking and reservation system that allows users to book a room and make payment, from the comfort of their home prior to their arrival. Booknest also have live chat for customer support, questions or feedback. Booknest also have a secured administrator page that allows authorized site admin to manage what is going on the site, such as updating listing price, adding listings, replying to customers messages, approving payment/bookings. On the Admin page, admin can view total income, total users, gather user emails to send promotional mail and lots more.
FEATURES
- Google Authentication
- Booking system
- Reservation System
- User profile
- Room listings
- Mobile Responsiveness
- Live chat
- Admin Features
TECH STACK
- React
- NextJS
- TailwindCSS
- Next Router
- Next Auth
- Supabase
- Netlify
- EmailJS

How the booking is implemented
The booking system is built to help users find and reserve rooms based on their preferences while also ensuring that no two people can book the same room at the same time.
Rooms are categorized into three types: Basic, Standard, and Luxury. Each room has a unique ID, so even if multiple rooms share the same type or features, they are treated as individual units. This makes it easier to track which specific room is available or already booked.
When a user wants to book a room, they need to log in with their Google account, once they are authenticated, they fill out a form with their name, email, number of days they want to use, check in and check out dates, and payment methods.The system then calculates the total cost based on the number of nights and the room's price.
To avoid double bookings, the system checks if the selected room has already been booked by another user for the same date range. If the room is already taken, the system prevents the booking and shows an appropriate message. This ensures there are no conflicts during check-in. Paystack is used for payment. When the user pays: If the payment is successful, the system stores the bookings and shows a success page, If the payment fails or the user cancels payment process, the system shows a decline page with helpful info.
When users are trying to book and they got into an issue or they want to ask a question, or they want to give a feedback, they can easily message the hotel site administrator and the hotel admin will repy shortly. The live chat has a feature that tells the user if the message has been sent, seen or not sent or the message is sending, and each message shows the time and date it was sent.







How the Admin is implemented
The hotel booking system has a built-in admin management system that an authorized staff or manager can visit to analyze what is going on in the frontend.
Admin pages are protected by a middleware that check the URL of the current page visited, if the user is an authenticated site administrator i.e the users email matches the email of the admin in the database, it will then allow to route to the admin page, if not route to unauthorized page.
On the admin page, there are several pages, each serving different purposes. On the Dashboard, admin can see the number of rooms available, total bookings, total reservation, total revenue, recent bookings, occupied and available room, admin can insert new room into the database that will automatically show on the frontend, admin can see detailed analytics on the analytics page. On the bookings page, admin can see details of the bookings made, such as the userID, email, payment status, room type, room ID etc. On the bookings page also admin can also delete a booking, the same about the reservation page.
On the users page, admin can see the total number of users, active users, and inactive users. Also on the users page, admin can see full detail about each users that signs up, such as first name, last name, email, status, user ID etc.
Also we have the messages page where admin can view and reply messages sent by users/customers. On the analytics page, admin can analyze a chart that shows detailed monthly, daily and yearly analytics of the bookings and revenues.
Admin can also edit their profile such as their name, email address. Admin can also view detailed analytics of rooms available, rooms occupied, occupancy rate and insert a new room. When inserting a new room, details like room number, room id, room type, price, ammenities, status, room image will be provided by the admin. And when inserting room image, admin can either choose to upload an image link or an image from the local machine.
You won't be able to visit the admin management pages because you are not an authorized site admin







Want to get in touch?
Send me a message!
If you're searching for a developer, need help with something, or just want to connect, don't hesitate to get in touch.