Hi
I’m planning to build a website that will collect data from registered users with a sequence of forms - an application for a financial service. The idea is that the user data will go into a database and be retrieved by a backend application that is able to sort and search the collected data and provide some simple charting. The admin will also be able to update the status of each user’s application in the backend (the process has around 20 steps). Users for their part will be able to log in and see the status of their application. Users will also be able to save the application forms halfway through and return to finish at a later data. Users may also opt to recieve automated email notifications when their application status is updated, and view some other simple data about their application.
Now this is typically the kind of thing I would build with a framework like CodeIngnitor or Cake, but in this instance there are three things making me think that I need to use MODx. Firstly, in addition to the multi-part forms there is a large amount of text content - marketing and informational material - that would need to be content managed. Secondly, I’ve already built a website for this client in MODx and they very much enjoy the interface - and the same admins will be updating content for the new site, so a MODx solution would be ideal. Thirdly, I expect there to be other CMS type requirements in the future as the site gets a bigger profile, and my feeling is that I’d most likely be able to implement these more quickly with MODx (thanks to the repository).
My thinking is so far:
* eform for the multi page forms and eform2db to store the data. I’ll write a custom handler so the user’s session can be stored and retreived when they return and log in (sort of db2eform).
* For simplicity of managing the form data, I’d investigate using jquery to split a single form into multiple tabs/pages (triggering eform validation with ajax on tab-change). Alternatively I know there are solutions to creating multi-stage form with eform
* Data could either be stored in a new table with a reference to the user id OR I could generate a new MODx document and keep the data within the system.
* I might be able to use TVs for the form fields and write a snippet to generate the form chunks used by eform according to the TVs assigned to the template, so the client could effectively add/edit/delete form fields themselves.
* webloginPE for the authentication
* A module to display the reporting data (probably use Google Charts api to generate the graphics) and where the admin can update the application status and trigger those email notifications. One problem with this bit though is that Modules are not apparently part of 0.97, so would it be better to create a front end interface for the admin to do this? How should we be manipulating custom db tables in 0.97? If I’ve stored the data as MODx docs, I’d want to use Ditto here extensively to provide sorting and filtering of the data.
Anyway, I’d love to here if anyone has experience of building this kind of thing in MODx and any advice you can give me.
Many thanks
Mark