Hotel Booking Backend
Sam Laskowski / December 21, 2024
This project was created in Java using Spring Boot. The goal for this application was to allow users to book different hotel rooms. It allowed users to filter rooms based on their preferences and then ultimatley book which one they wanted. This was also my first project that took a look at using AWS services. I used an S3 bucket in order to store the images of the hotel rooms.
Features
-
Authentication: Allowed users to create an account, register and login. Two primary roles when it comes to users, Admins and regular users. The admins being allowed to create new rooms that regular users can then book.
-
Searching: Users can query the hotel rooms by type (single, double) and date.
-
Cloud Services: Utilizes AWS S3 bucket in order to store the images of the hotel rooms.
Technologies
- Java: A class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is widely used for building enterprise-scale applications and has a strong emphasis on performance, security, and portability.
- Spring Boot: An open-source Java-based framework used to create stand-alone, production-grade Spring-based applications. It simplifies the development process by providing a set of conventions and defaults, reducing the need for boilerplate code and configuration.
- Postman: A collaboration platform for API development. It allows developers to design, test, and document APIs with a user-friendly interface. Postman simplifies the process of sending requests and inspecting responses, making it an essential tool for backend development and testing.
- MySQL: An open-source relational database management system. It is widely used for storing and managing data in web applications. MySQL is known for its reliability, performance, and ease of use, making it a popular choice for both small and large-scale applications.
- AWS S3: Amazon Simple Storage Service (S3) is an object storage service that offers industry-leading scalability, data availability, security, and performance. It allows developers to store and retrieve any amount of data from anywhere on the web, making it ideal for backup, archiving, and big data analytics.
Future and Conclusion
For me this project was a first look at how to use cloud services within an application. It also gave me solid insights in to how a backend system looks like and some generic conventions. Looking back at the code I realised that it can be alot cleaner and there is alot of uneccassery code which pollutes some of the controller and service classes. However this was still a very key project in my learning and understanding and I have already taken alot away from it, to use in future.