Wednesday, August 08, 2007

Persistence!

..not sure if I mentioned it earlier but just in case: after some debate, googling and consultation we decided that Hibernate is the best way of integrating data into our web application, so we've canned the idea of using Stored Procedures in favour of Java classes. Steve now has the database and has made some progress populating the JSFs with MySQL data via Hibernate.

Registration and Log in.

Well we've actually started work on the system. The first, prerequisite, application is "Registration and Log In". This actually proved to be more complicated than one might expect at first but is actually quite logical in hindsight.

Users need to register before they can log in, and when they've registered they need to maintain their details. Then they need to log out and then log in again... etc. This required some thought and a bit of time joining eBay again to see how they do it (thanks eBay). I created a "spec" in Visio, Mike has produced the data model in the MySQL database and we discussed & refined it with help from the nice Entity Relationship diagram that was produced from the MyEclipseIDE database tools, which reverse-engineered the database. So we now have the first part of the database designed and ready to go. Mike produced a script to build the database and populate the various drop-down fields then emailed it to me & Steve so we could reproduce it locally simply by running the script in either the MySQL Query Browser or the MyEclipseIDE SQL tool.

This first version now includes the rather irritating but essential capability of supporting different languages. This makes it quite tedious for some jobs because some Lookup tables need an entry for every language we want to support - and of course we need to be careful about using Unicode. Initially we will be concentrating on English and French.

While we're on the subject of languages, Steve has found the best way to handle multiple languages with JSFs - all you need is a bundle for each language and away you go. You still need to maintain them though!