I’m glad to announce that the Haynes Catalog went live yesterday. The Haynes Catalog is an online project which “presents an interactive and continuously updated database containing music for and with oboe up to 1800“. A friend of mine, Peter Wuttke, continually collects information and uses the online catalog to make this available to the public.
The application is using Ruby on Rails with a Mysql database in the background. Apart of the public part of the application, there is an admin interface which allows Peter to update the data. Since I worked on this project only sporadically in my spare time, two challenges proved to be more complicated than expected:
- Versioning of changes:
We tried to make changes of the data transparent to the user. It should be visible to the user, when information has been changed, for example when a composition has been published, or other data is corrected. Hence there is some change history.
However, not all changes should be mentioned – simple corrections of typos etc. should be ignored.
Finally, the versions must span several tables as there are a lot one-to-many or many-to-many relations. - Synchronisation:
Most of the research is done offline, for example in libraries or when travelling. Therefore there exist two installations, both being “productive”: the official homepage plus an offline installation which is used during the research.
Both problems can be solved, but there is no “out-of-the box” solution. There will be some detail about how to solve these two issues in a Rails application in following posts.