I've just received my results for the project assignment and I received a score of 379. Thanks so much to all who helped me out, in particular Roel De Nijs and Himai Minh.
My major design choices were as follows:
Extended the DBAccess interface with my own custom interface
Used Singleton Data class
Used a cache populated at startup and written to at shutdown
Used two helper classes "behind" the Data class - one to access the db file and another to carry out the client operations after the cache is populated
The Data class used the facade pattern - the work was done by one of these helper classes. The Singleton nature of the class meant I had to pass the instance back to the helper in order to lock on (seemed ok!).
Used the MVC pattern - but did not update all clients following a booking. It is left to clients to refresh out-of-date data.
Implemented a thin client
Used RMI - because I felt it was easier
Implemented the 48-hour rule using a checkbox (to filter out currently unavailable rooms) but also an error message to inform users should an attempt be made to book an unavailable room (checkbox not ticked)
Used System.nanoTime() as the cookie generator - it was fine as a simple solution
Didn't use any logging - I would again if I had more time