We are a small team, now starting to develop online applications for non-profit organizations. We haven't got that much experience so far, and we would like to ask the community for advice.
Basically we are going to work with a group of social and community workers who need to gather data on people participating on a drug-rehab / social insertion program. There are loads of parameters from each of the individuals covering all aspects in their social, family, psychological contexts, etc. These data needs to be stored and eventually searched in many ways by the professionals as it will be needed to generate graphical output, grid-tables, CVS/XML export capabilities, CVS/Excel import, or even some gis-mapping when applicable.
We are on the definition phase of the project and we count at least on two people versed on PHP development with experience on CodeIgniter and Symfony on a minor extent, plus a good graphical html/css designer. We also have previous experience on web portal development using Drupal (we have created custom modules when needed, developed templates, etc.).
Now we have to take a decision of either go from a custom system based on, let's say Symfony (and the correspondant data base system and tables design), or go for a Drupal based system where we will try to model and implement the data relations on a higher level. We have obviously a time constrain (a few months). We have never used Drupal on this kind of 'tailored' application and we are aware that every project can have very particular needs and requirements, but we would like to ask you if you advice of its use for this kind of project, based on your ample experience on this CMS.
Thank you very for much for any advice from your experience.
Comments
I had to make a similar
I had to make a similar decision recently. I looked at Diem CMS with Symfony for a website that needed a booking system for vehicle hire. Because Diem had limited HTML theming I concluded that if the project is mostly a website stick with Drupal and create a module for the web-app part, and if the project is mostly a web-app use something like Symfony (or more preferably Rails or Grails - not sold on PHP). It looks to me like your project is more of a web-app. With Symfony you will get things like ORM (object relational mapping) which can make complex models easier to deal with. Where's with Drupal modules you will have to do a lot of SQL. IMHO I think Drupal is very good as a CMS and adding ready-made generic functionality like forums or eCommerce but probably not the best as a web-app framework.
Tough pick
I'm a big fan of both Drupal and Symfony. They have their individual strengths and weaknesses but given the right decision, no project will feel awkward if you know these two. At least that's my opinion.
Now as for making that decision, that's tough. Generally I'd use these pros for picking one.
Drupal:
* Fast initial development. This isn't limited to the initial development of the project, but also for edge case features like Facebook Graph API integration, rendering maps, exporting data formats (CSV, XML, for example) and much more.
* Low entry bar. Pretty much anyone can, with some guidance, jump in and develop websites with Drupal.
* Excellent editorial tools. If you know your way around Drupal enough to make some small adjustments – your editors or admin staff can come to love working with the system.
Symfony:
* Cheap modifications. Because Symfony has a higher priority for separation of concern, your future changes does not involve untangling a heap of spaghetti.
* Linear development time. You are writing most functionality and output yourself, so customizing it later isn't much different. Opposed to Drupal, where 90% of the development happens in the first 10% of the project.
* Code in files, data in database. Having some Drupal logic in the database, some in the module files and some in exported features is a hassle. Less of a hassle now than before but still not as convenient, in my opinion, as in Symfony.
It's hard to say without knowing more about the project(s), but I think I'd recommend Drupal. You would probably get started faster with it and it definitely supports all of your listed requirements. Plus, you could always try Symfony for the next project and then compare your experiences before the third project.
Hope that helps some!