Ed | Nov. 24, 2020, 9:24 p.m.

Consultation and community engagement is a fundamental part of preparing a Neighbourhood Plan. However, the online aspect of neighbourhood planning consultations tends to be pretty 'static' - often consisting of a pdf version of the plan, accompanied by a questionnaire in MS Word format.

Screenshot of Consult app

Screenshot of Consult app

I developed my Consult app to provide an interactive web-based approach to online Neighbourhood Plan consultation. At its heart, the Consult app is very similar to a 'blog' app, and I developed it using Wagtail and django.

An interactive version of a Neighbourhood Plan is created by uploading each chapter, including all text and images, into separate 'posts'. Visitors to the site can register, log in, and comment on the individual sections during fixed consultation periods. Combining the comment form into the plan chapter helps to ensure people make informed comments in the right place. Using Bootstrap ensures the page content looks great on any size screen - meaning people can take part even from a mobile device, thereby making the consultation process more accessible and equitable.

The Consult app includes an index listing each plan currently available for consultation (or 'archived' plans, where the consultation period is closed). After clicking on a plan, the individual chapters belonging to that plan are listed.

Consultation periods i.e. the date and time period the plan is available to comment on, are strictly enforced by validating the date through a Python function.

At the end of the consultation period, all the comments submitted by users can be exported and sent to the group preparing the plan for analysis.

The most complex aspect of this project was managing 'Users' - particularly establishing the relationship betwen users.

In plan consultations, it is fairly common for one person to respond on behalf of another. For example, an agent may respond on behalf of their client. It is necessary to record the details of both the agent and client in this situation.

I extended the built-in 'User' model to add additional fields to collect more info about the user. I also created a foreign key relationship to 'self'. This allows a relationship to be established between different User instances - i.e. an agent/client relationship.

I created a self-registration process. This process also enables agents to register their client's details as a User instance.

Once registered and logged in, users can comment on a plan section. I created a comment form which allows users to add a comment attributed to themself, or on behalf of one of their registered clients.

The Consult app was my first attempt at producing an app for commercial use (the other apps on my site are all free to use). I am pleased with the result, as the app functions well. Unfortunately the app has fallen a bit flat as I am yet to secure my first customer.

This was the first app I'd developed which collected specific info about the user. Through the process of developing the app, I learned a lot about working with the User model.

Click the button to launch the Consult app.

Launch →