Welcome to the NotBooking App project! This web application aims to replicate some of the key features of booking.com. Users can search for destinations, select dates, and book rooms from a list of available options. The project is built using various technologies to ensure smooth functionality and security. Let's dive into the project and the techs used.## Technologies Used
-
React: The frontend of the NotBooking App is built using React, a popular JavaScript library for building user interfaces. React allows for the creation of reusable UI components and provides efficient rendering through its virtual DOM.
-
Sass: Sass (Syntactically Awesome Style Sheets) is used for styling the frontend. Sass is a CSS preprocessor that extends the functionality of CSS by introducing variables, mixins, and nested rules, making styling more modular and maintainable.
-
Node.js: The NotBooking App's backend is powered by Node.js, a JavaScript runtime environment. It enables server-side scripting and allows the use of JavaScript on the server, making it possible to build scalable and efficient web applications.
-
Express: Express is a minimalistic web application framework for Node.js. It provides a robust set of features for building web APIs and handling HTTP requests, making it ideal for creating the backend infrastructure of the NotBooking App.
-
MongoDB: The project's database is implemented using MongoDB, a NoSQL document-oriented database. MongoDB allows for flexible data storage and retrieval, making it suitable for handling the dynamic nature of user and hotel information and booking details.
-
Mongoose: Mongoose is an Object Data Modeling (ODM) library for MongoDB and Node.js. It provides a simple and straightforward way to interact with the MongoDB database and define data models, making it easier to work with MongoDB within a Node.js environment.
-
Bcrypt: Bcrypt is a password hashing function used for securely storing and comparing passwords. In the NotBooking App, Bcrypt is used to encrypt and verify user passwords before storing them in the database, enhancing the security of user accounts.
-
Cookies: Cookies are used for session management and user authentication in the Booking App. They allow the server to identify and authenticate users across multiple requests, providing a seamless and secure user experience.
-
JSON Web Token (JWT): JSON Web Token is a standard for securely transmitting information between parties as a JSON object. In the NotBooking App, JWT is used for user authentication and authorization. It generates a token upon successful login, which is then used for subsequent API requests to authenticate and authorize the user.
The NotBooking App provides the following features:
- Search Destinations: Users can search for their desired destinations using the search functionality. They can enter the name of the destination and get a list of available hotels.
- Pick Dates: Users can select check-in and check-out dates for their stay. The app will display the available rooms for the selected dates.
- Hotel Listings: The app presents a list of hotels available for booking. Each hotel listing includes information such as description, images, prices, and ratings, allowing users to compare and choose the most suitable option.
- Room Booking: Users can book a room by selecting the desired hotel from the listings, then use the reserve option to see the available rooms with their information. If the room is already reserved on the same date by another user, it will not be available for booking.
- User Authentication: The NotBooking App includes user authentication features. Users can create new accounts or log in with existing accounts to access their profile, view booking history, and manage their information securely.