Work on Econsensus with us

Econsensus is the main project that we’re inviting potential volunteers to work on with us at the moment. Volunteer effort, notably from Paul Backhouse, Matthew Simpson, Sarah Bird and Jo Paulger (thanks folks!) has been fundamental to getting the codebase to where it is. If you’re interested in either collaborating remotely on this project or working with us in one of our offices, we’d be very happy to hear from you.

Technologies

Econsensus is written in Python using the Django web development framework. To collaborate on the project you’ll need to engage to some degree with Python/Django, and probably at least a touch of HTML/CSS. Suggested tutorials are listed below.

We generally write code using a test-driven development approach, where we write tests for a feature before developing the code, so testing is especially important to us. It’s worth looking into this a bit if you’ve never done it before.

We use mainly Ubuntu systems in the office, so if you’d like to work with us there, if you can practice developing on an Ubuntu system (it’s easy to set up a dual boot system on a Windows system using an Ubuntu installation disc), that would be great!

Some people use Eclipse – http://www.eclipse.org/ – as a development environment; other people hack out code in their favourite text editor; it’s up to you what you do.

Source control

As an open source project, the Econsensus code is kept on Github at https://github.com/aptivate/econsensus – note that we tend to use our own internal tools for recording and prioritising features and bugs. We use Git as a version control / code repository system. Other members of the team will be able to help you get set up with using Git if you want – it’s considered useful for multiple people collaborating on projects, and can be a bit complex to learn at first. There’s a “bootcamp” tutorial at http://help.github.com/ – at least one of our team has found this useful for getting to grips with the Git core concepts.

Once you’ve got the basic concepts of git and github, here’s how we do things on Econsensus:

We keep the ‘master’ branch of the project releasable to our live server at all times, so all new work and fixes should be done on a branch of the ‘develop’ branch. Then at some stage we’ll merge your branch into the main ‘develop’ branch, and release this to the staging (i.e. testing) server. When all changes have been tested on the staging server, they all get merged into master and released onto the live server. So, in order to be able to submit changes you’ll need to fork the develop branch into your own github account, clone it on your machine, create a new branch, and work on that. Once you’ve finished, you make a pull request through github, which tells us to review and integrate your code. There is a detailed guide explaining this kind of process at https://openshift.redhat.com/community/wiki/github-workflow-for-submitting-pull-requests

Discussion list

There is a discussion group where people ask questions about deploying, working on, or using the system at http://groups.google.com/group/econsensusdiscuss – we recommend that this is the first place to ask questions, including “what can I be working on?”. Several members of Aptivate staff are on it and will be very happy to help as much as they can.

Tutorials

The Python / Django tutorials that our tech team recommend are:

Python tutorial: http://docs.python.org/tutorial/

Other Python material: http://diveintopython.org/toc/index.html

Django tutorial: https://docs.djangoproject.com/en/1.4/intro/tutorial01/

Django testing tutorial: https://docs.djangoproject.com/en/1.4/topics/testing/

and there will be lots more resources out there.

For HTML and CSS, we recommend this site as a source of info: http://htmldog.com/ – it seems to assume that you’re using Windows, however the general principles apply on any OS.