Skip navigation.

Your Online Presence > Delivering Services Through Your Website
Databases > Sharing your data

Database Sharing with Django

By Lisa Thyer

Many organisations hold information that would be usefully shared. This article describes how Kettering Voluntary Network made use of Django, an open source development tool, to set up an affordable online database of local voluntary organisations.

The Project

Kettering Voluntary Network (KVN) is the Local Infrastructure Organisation (LIO) for the borough of Kettering in Northamptonshire. Like many small LIOs, it is expected to accomplish a great deal with the monies it is given. Perhaps one of the most important roles that it has is bringing the local not for profit sector together and facilitating communication and community building.

In 2006, it successfully bid for some ChangeUp money to create a directory of local community and not for profit groups, and Doodleweb Design was approached for suggestions as to how this might be achieved.  A great deal of research went into looking at existing solutions and software, such as Salesforce and Razor’s Edge, and seeing how they might be customised. They were mostly ‘over the top’ for what was required, and prohibitively expensive. It was decided to construct an application based on the existing database, with a user friendly administrative interface, options for exporting data and a web front that coordinated with their existing website.

The existing database

A directory of contacts profiling the sector already existed in the organisation’s email address book and in a Microsoft Access database. A great deal of time and energy had already been spent in creating a database ‘community’, but the database was not in the public domain. Requests for a list of local groups in the area had to be constructed from these existing sources each time and then formatted and sent out by someone in the organisation. Maintaining the database was time consuming and, as in so many organisations, it was stored on a single computer.

The Brief

The overriding aim in the building of an online directory for the community was to provide information in a variety of accessible and easy to use formats, so that information on the local not for profit sector could be stored, publicised and retrieved by any interested parties. There needed to be a good search facility, an attractive design, and the facility for new groups to register online if they wished. The administration interface was to include the ability for KVN to add, amend and delete both organisations and the categories that those organisations saw themselves fitting in to.

Not all the organisations in the area had emails, let alone websites, and the directory needed to place equal emphasis on each contact in the directory, from the largest to the smallest. A form was designed for each organisation to complete, which captured all of the data needed. With regard to maintaining the accuracy of information in the database, the thinking was that organisations would be more inclined to take ownership of a local resource that was in the public domain, and help KVN maintain the directory, one of the most problematic areas always for a project such as this.

Enter Django

The web is both becoming easier to use and more complex at the same time. Web developers need to keep up with an enormous variety of new technologies that paradoxically are making the web easier to customise, and there is no reason why the not for profit sector cannot also utilize the newest and best technologies. Such technologies help future proof an organisation and therefore ultimately provide good value for money. Application frameworks such as Ruby on Rails, TurboGears and Django itself are all growing rapidly in popularity; more importantly, they are all open source and will become easier to set up and use with time.

Django was chosen for the KVN Community Directory. It is what is called a ‘high-level’ Python framework. High level means that most of the hard work has already been done by the developers. Python is simply a programming language (named by its founder, a Monty Python fan!). At the present time, it requires a reasonable level of skill to set up and use, but this will change rapidly, as the framework increases in popularity, and more applications are developed. There are some specialist hosts and developers already out there.

How was Django used to create the online community?

Django can do many amazing things already, but for the purpose of the KVN project, there was one that stood out: Django comes with an automatic administration panel – it automatically constructs the administration interface according to the tables that are already in a database. The database backend itself can also be virtually anything. One of the most common databases, MySQL, was chosen as the backend for this project, and the data for that was taken directly from KVN’s existing Access database by exporting the list of organisations as an XML file.

The application was therefore constructed in three parts:

  • the database tables to capture the necessary information for each organisation;
  • the administrative interface to manage those tables; and
  • the public front end, designed to fit in with the existing KVN website.

KVN staff are greeted by a simple login screen, which takes them to an interface from where they can add, edit or delete entries, for both organisations and categories. The public web front includes a list of organisations by category, a list of all organisations alphabetically, an RSS feed, a registration form, an export as PDF file and a search facility, all of which is created automatically by the application as new data is added.

The directory now has secure online and offsite storage, is automatically formatted and has a public address which is easily found by a potential funder or volunteer. There is scope to extend the application to include more functionality if the need arises, and all the organisations in the database, even those without websites, have their place in cyberspace.

Advantages of an online community (no matter how small)

The directory is not a large one and never will be. But the groups in the directory all have equal listing and status. They are all included in the RSS feed, which helps with indexing by search engines. Those groups in the directory that have websites have a link to those websites, all of which helps search engines drive traffic both to and form their sites and the Directory site.

Emails and contact telephone numbers are provided for all organisations, so that with the click of a button or a quick phone call a potential volunteer or funder can make contact. A Google search for Kettering Community returns a host of options that were not there previously. Through the Kettering Community website, the local voluntary sector is receiving well deserved publicity and all the groups that are in the database have an online presence whether they have their own website or not.

Conclusion

Setting up an online community directory need not be complicated. It can be as simple as publishing a list of contacts in a section of an existing website. The potential benefits, however, are myriad.  Django was used for this project, but there are many frameworks and applications that can be put to good use; even an Access database can be exported in a wide variety of formats, such as a text or Word file, and the possibilities for sharing become endless.

 


About the author

Lisa Thyer
Doodleweb Design

Glossary

Database, Feed, MySQL, Network, PDF, RSS, Software, Storage, Website, XML

Related articles

Published: 26th February 2007

Copyright © 2007 Lisa Thyer

User comments and discussion

If you have useful information to add to this article please Add a comment. Comments will appear after they have been moderated.

Discuss this topic in the Knowledgebase forums. This is a useful place to share knowledge, experiences, and ask questions.

Please sign in or register to be able to post a comment or discussion.