Conclusions

The Hotel Management System has been coded to be as user-friendly as possible to incorporate an event-driven mouse controlled environment with data input via the keyboard.

Both server and client applications are up and running and can communicate over a network, sending both control signals and class instances backwards and forwards as needed.

Some of the advanced features of the design of the system (namely the manager functions) have not been implemented due to time restrictions imposed on the project and the length of the code for the graphical user interface, but the hotel and restaurant structures are in place.

Given more time, there are several extensions that could be made to improve the Hotel Management System. Firstly, the advanced manager features could be added so that more functions are available to configure the hotel.

Secondly, the server application could be modified so that any new details added or updated since the application was started are saved to file as well as kept in memory as they are made in case of a loss of power or some other system failure. This would ensure that the new data would not be lost. As is, the data is only saved to file when the server application is exited.

Thirdly, the server application could be made multi-threaded to handle more than one client connected at once. Measures would have to be taken (by using synchronization) to stop the data being corrupted by two clients accessing the same object simultaneously.

These additions would improve the performance of the Hotel Management System and make it more useful. Unfortunately, time constraints do not allow for the addition of these features.

From developing the Hotel Management System, I have gained a sound understanding of the Java programming language and the object-oriented design methodologies involved with it.

The graphical user interface has taught me how to incorporate a detailed, practical design with the actual implementation of an interface with which the user interacts. File access has also been experienced, along with the use of the hash table data type to store objects for reference later.

Finally, the networking side of the project has proved the most interesting part. Learning about how a network is structured and how to send messages across it has given me an insight into an advanced topic, which I intend to further with a networking project in the future.