Matt and I just spent all day working on the one piece of our latest project we were both dreading: the middleware to port the old database over to the new one.
The old DB was an evolutionary system. Four years of adjustments. new features. and changes really had left the thing in baaaaad shape. Naturally. we did a "clean sheet" approach to the new DB but while it was being designed kept an eye towards data porting.
It took 8 hours. but we figured out what we had to do. ran numbers on the current database so we knew what to expect. then built out a simple component-based system for doing the data transfer. Since we're not going live on Monday. we needed to make sure our work today would be repeatable in two weeks when we do it again. All i can say is "yaaaay inheritance and method overriding".
26 different sports. each bastardizing different fields in the source database. It's kinda icky in there! The new structure is much more accomodating and that makes them happy. In turn. we're happy that they are happy. The data porting step is now all coded up and tested. so that'll just take an hour at most to run when we cut over. Such a relief.
Anyway...technically. here's a system overview of the whole project if you're interested:
In two weeks we'll be going live with RecruitWeb. It's (obviously) web based. SQL Server on the back end with ColdFusion 7 doing the heavy lifting. Mach-ii architecture and a front end that uses a hefty dose of Ajax (all piped through Mach. which I'll be showing at CFUNITED). The Ajax stuff all uses cfAjax for the time being. but we could just as easily swap that out too. Front end is all XHTML/CSS so it should be easily skinnable for the next client who wants to buy it and implement at their college or university.
By late June (hopefully also in time for CFUNITED) we should also have a Palm interface for the system working too. Coaches currently travel with stacks of paper and that's just not cool. They've all been provided with Treos. so now we just have to figure out how to get data to/from them.
This is the cool part:
For the Palm client we'll be using AppForge to build a UI in C# and deploy on their Palm runtime. storing data in a Palm database. We'll use their Crossfire conduit to get the recruit data back to a PDB file on the local machine at sync time. When the user syncs up the Palm. we're going to fire off a Windows C# app that calls a set of secured web services. These requests go to our ColdFusion back end (crazy simple web services!) to push/pull recruit data to/from out of the main database. Naturally. security and data protection are vital (HIPPA. FERPA to name two reasons).
Since the whole thing is web service based. the coaches will have access to the synchronization tool from anywhere they have a laptop and a connection to the web. Once wireless service becomes commonplace (and accessible in packed gymnasiums and the middle of corn fields in Nebraska). we'll have a PDA-sized browser interface talking to the system too.
Contrast that with the Access front end to a SQL Server DB that they use now. and it's quite a step forward. It's been a fun project and I can't wait to show it off!