After months of development, yesterday we launched version 4.0 of Jongeren in Beeld, a webbased application for tracking data for youth workers, police, city officials etc. regarding "problem youth" (though really, it's simply a data filing system that can be used for other things as well).
Version 3, which was developed before I joined Dutch Open Projects, was based on Mambo (of which the now popular Joomla! is a fork). Using various extensions, functionality as built. But due to the constant functional growth and the not really well organized structure of Mambo base as well as the extensions that were built, the application had become a hell to maintain, especially as a new developer when the original developer had already left and the code was hardly documented. And so, when I started work on this project in november of last year, after a quick assessment of the version 3 code, the decision was made to start from scratch.
After an extensive research of frameworks and content management systems, it was Symfony that ended up being our framework. It was a good choice, I'm still convinced of that. Over the past months we've been developing bigtime (we being Peter of Vak 18 who was working as contractor on this project, and myself). With just the two of us, we've been able to get this whole thing rewritten in the period of only a few months, with more than enough other tasks also to be done, and with a 6 week holiday of Peter. I'm very proud of what we've been able to do.
And so yesterday we've deployed the monster. With a complete migration script to migrate the database into several databases, and a nice deployment document written upfront so we could keep track of all the tasks we had to do, we set about deploying the new version. Unfortunately, we ended up fixing a few bugs both in the migration script and in the application itself during the deployment and the post-deployment testing, but we ended up doing the full deployment in about 6 hours, which is a pretty neat accomplishment if you ask me.
It's been a very tiring experience, and I really don't plan on working 6 days a week very often, but it's been rewarding. The new code is so much easier to maintain and also easier to extend. Since we have quite a few plans for the near and far future when it comes to extending the functionality of the application, it's a good thing to have easily extendable code.