This is my implementation of the first out of three projects in Udacity Java Programing Nanodegree.
I wrote this console app from scratch based on architecture suggested in the course. The project demonstrates:
- designing classes using OOP
- organizing and processing data with collections
- using common Java types
- using Maven to organise third-party libraries
- unit testing and mocking dependencies.
This app allows customers to find and book a hotel room based on room availability. Following screenshots demonstrate the functionality implemented.
git clone https://github.com/IvanZet/udacity-hotel-reservation-app.git ivans-hotel-app
Open
src/main/java/com/udacity/hotel/HotelApplication.java
file and run the main()
method.
- Navigate to the source root of the project
cd ivans-hotel-app/src/main/java
- Compile the project
javac com/udacity/hotel/HotelApplication.java
- Run the app
java com.udacity.hotel.HotelApplication
- Add how run it
- Add description
- Add JavaDock for methods, especially public ones
- Add unit tests
- Clean FIXME and TODO tags
- Fix IDEA’s standard linter errors
- Add IDEA's plug-in to catch code style errors (Sonar) and fix errors
- Catch exceptions later in UI?
- Ensure that entered check in date is earlier that check out date
- Validate check-in and check-out dates in constructor of Reservation class
- Fix duplicate booking
- Refactor suggesting other dates
- Sort elements in collections when printing them (reservations, customers)
- Add option to add a room using FreeRoom class
- Make classes final where applicable
- Check PROJECT SPECIFICATION
- Add variables' values to exception messages
- When dates are printed to console, truncate time
- Customize the find-a-room method to search for paid rooms or free rooms.
- Provide a menu option from the Admin menu to populate the system with test data (Customers, Rooms and Reservations).
- Allow the users to input how many days out the room recommendation should search if there are no available rooms.