05/11/2012

Forms and Questionnaire Module for DNN – Part 1

A tutorial on how to create a DNN module.

 

A tutorial on how to create a free DNN module.

For my next few blog posts I would like to write a tutorial on creating a module for DotNetNuke (DNN). The new module that will be created in parallel as I am writing the blog posts will be called the “Forms and Questionnaire Module for DNN”. After completion, the DotNetNuke module will be released for free and the source code will be made available under an open source license.

The goal of this project is to share experience and to provide another free option to the DotNetNuke community for when it comes to creating forms. In addition, we are all going to learn some more about software development from this experience.

Requirements 

The first thing that I would like to talk about is defining the requirements of the new module for DotNetNuke. We should have a good idea of what we want to build before we can start creating anything. The general idea is to create a DNN module that has an easy to use interface and that does not require any programming experience from the user.

The main function of the DNN module will be to allow users to create web forms. The web forms could be simple (a single page contact us form) or more complex (a questionnaire comprising multiple pages with ability to load a next page according to choices the user made on previous pages). These will be an admin user interface allowing an administrator to manage everything and view reports as well as a front end interface that will allow the front end user to file a form.

ADMINISTRATOR MODE

  • Manage forms. Includes creating forms, editing existing forms, deleting forms, and copying forms.

  • Manage form contents.
    • Managing pages including creating new pages, copying pages, creating alternatives for a given page, creating display rules as to which page alternative is loaded at which moment depending on previous selections made on previous pages, deleting pages
    • Managing the page contents will allow the user to add form controls to a page. Managing the form controls includes adding form controls, copying form controls, arranging the form controls in rows and columns, deleting form controls, editing form controls, creating alternatives for a form control, creating display rules regarding which form control alternative should be displayed depending on selections made on the same page.
    • When adding a form control the user will be able to select the type of control (checkbox, dropdown), for data bound controls select the data source (dynamic or static), choose validation rules.
  • Reports. The administrator will be able to view reports on each form and export the data to excel
USER MODE

  • The user facing form will use Ajax.
  •  Form validation. 

OTHER CONSIDERATIONS


  • All filed forms will be saved in the database. 
  • The module will support multiple languages. 
  • Performance and security are important.

Stay tuned for my next blog post and more on creating a module for DotNetNuke. Soon I will have the Forms and Questionnaire Module for DNN free download.