Skip to content

Console app simulating a simple hotel reservation functionality

Notifications You must be signed in to change notification settings

ivan-zykov/udacity-hotel-reservation-app

Repository files navigation

Udacity hotel reservation app

Description

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.

Main menu:
main menu

Admin menu:
admin menu

How to clone this repo in terminal

git clone https://github.com/IvanZet/udacity-hotel-reservation-app.git ivans-hotel-app

How to run this app in IDE

Open

src/main/java/com/udacity/hotel/HotelApplication.java

file and run the main() method.

How to run this app in terminal

  1. Navigate to the source root of the project
    cd ivans-hotel-app/src/main/java
  2. Compile the project
    javac com/udacity/hotel/HotelApplication.java
  3. Run the app
    java com.udacity.hotel.HotelApplication

TODO

Priority

  • 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

Optional

  • 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

New features

  • 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.

About

Console app simulating a simple hotel reservation functionality

Topics

Resources

Stars

Watchers

Forks

Languages