Thoughts
June 23, 2006
Sorry for the lack of updates thus far, work has been quite busy.
I have been thinking about the question types, and have come to the final thought that I will now include 3 different types of questions – multiple choice, filtered input and comments. Multiple choice will be radio/checkboxes depending on the multiple selection parameter. Filtered inputs will allow you to setup a field to accept only specific types of input which matches specific criteria. Comments will generate a simple text area.
To get a bit more in-depth on the question side of things, each question can be set as required – this means that the user has to complete the said questions before submitting the survey. All questions can also have conditions – conditions enable a specific question, aslong as another question in the survey has been answered a certain way. Conditions will be one of the most complex parts of the projects – so I won't go too much into it right now.
The full database diagram is almost complete, and I will post it up as soon as possible. The timeline will be out next, which has turned out to be quite an extensive post – so I will probably turn it into a "page" on my blog. The timeline will not include dates and such – and is actually more of a project outline if anything, containing alot of lengthy comments.
Also – if anyone is interested in creating a simple graphical layout for the project, please shoot me an email (chris dot partridge at gmail dot com) to express your interest.
Until next time, cyas.
The Database Schema
June 21, 2006
Morning folks,
Today I generated an image of the database schema (including PK's and FK's only) to give you all a better idea of the general "flow" of the application. Thanks to DbDesigner – I have come up with this:
![]()
Over the next few days, I will be updating the schema with additional fields and no doubt some minor structure changes. Once I am happy, I will be posting SQL create scripts for both MySQL and MSSQL.
Stay tuned for an update later this evening in regards to the time-line!
Chris.
In the beginning..
June 20, 2006
Welcome,
This blog will be covering the entire process of my first open source project. This project will be the basis of a much larger commercial project – however as I am working on this at home – I have decided to release the 'framework' of my application as OS.
This project is going to be used to boost my knowledge and productivity with the CakePHP framework and project management in general. Along the way, I will be documenting specific parts of the CakePHP framework in a more generalised fashion to help with the documentation of CakePHP.
The application is a multi-user survey system, you can have multiple admins, managing multiple surveys. Each survey can contain a bombardment of questions, which are neatly organised into sections. Questions can be of 2 main types, which are user-input and multiple-choice. The user-input questions can accept text and then apply filters and validators on it. The multiple-choice questions give you the ability to create questions with multiple answers, accompanied by check boxes or radio buttons depending on if you want to allow multiple selections or not.
Questions also have a multitude of sub-options, such as making it required – or even only making it available if they answer another question with a specific answer (or multiple answers if it is a multiple choice question).
The ability to allow multiple users and groups to participate in a survey is also going to be implemented, allowing you to specify(or tag) specific users/groups with attributes.
During an active survey, a surveyee can save, reset or submit their survey. Giving them the ability to come back at another time to complete the survey. A survey can only be submitted, if all validation requirements are met.
The applications will be heavily developed with Ajax support, provided by prototype and script.aculo.us. Other core features include an email system using easy to edit templates for messages, a report generation tool with the ability to manipulate results based on user/group credentials (of the surveyee's) or even grouped by the surveyee's specific answers.
Surveys can be made to look completely unique, with the simple use of HTML templates.
I'm sure there is a lot I have not mentioned, however it will come a lot more clear once I have a time-line up. Please feel free to leave some comments or even suggestions. This is in the late planning stages at the moment, as I currently have an old procedural application running the same style of system.
Thanks.