Cyclescape - cycle campaign group toolkit
PLpgSQL Ruby HTML Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.tx Add the activerecord resource to transifex. May 11, 2016
app Clean up invalid geoms by simplification Nov 11, 2017
config Increase password reset time to more sensible time period; fixes #736 Nov 9, 2017
db Add hashtag models Jul 11, 2017
doc Add source files for the custom openlayers images. Jan 10, 2012
lib wip Jun 2, 2017
log Initial Rails 3.1 application. Sep 21, 2011
public Remove OpenLayers Jun 24, 2016
script Initial Rails 3.1 application. Sep 21, 2011
spec Clean up invalid geoms by simplification Nov 11, 2017
vendor/assets Move js into browserfiy Aug 7, 2016
.env.production Revert "Foreman wip" Nov 10, 2015
.env.staging Revert "Foreman wip" Nov 10, 2015
.foreman Rename search sunspot Feb 19, 2016
.gitignore Ignore history from git Oct 30, 2017
.jshintrc Add js coding style Jan 13, 2017
.rspec Debug spec Feb 29, 2016
.rubocop.yml Add message hashtags Jul 11, 2017
.rubocop_todo.yml Rubocop fixes. Jun 22, 2016
.ruby-version Bump ruby to match chef repo Nov 20, 2017
Gemfile Revert solr upgrade Nov 21, 2017
Gemfile.lock Revert solr upgrade Nov 21, 2017
LICENCE Add LICENCE Jan 31, 2012
Procfile Rename search sunspot Feb 19, 2016 Update transifex to use cyclestreets prefix Oct 20, 2016
Rakefile Update config files inline with Jul 7, 2015 Link to transfix installation page Apr 21, 2017
coffeelint.json Lint coffeescript Jan 11, 2017 Rename all the other instances of the application name. Oct 29, 2011
package.json Bump leaflet draw Jan 2, 2017


Cyclescape is a Ruby on Rails web application created to facilitate cycle campaigning.

The software has been developed to power the Cyclescape campaigning website, and you can help improve it or take the software and customise it for your own needs.

It is split into two main sections:

  • Reporting a problem: a section open to anyone
  • Managing and solving problems: for campaigners and groups

Cyclescape aims to have the following outcomes:

  • Fundamentally, increased resolution of problems on the street/path network and therefore an improved cycling environment
  • Improved and better-organised working practices by local groups around the country through access to a new tool to help them manage the deluge of cycling problems that they get told about or wish to see resolved
  • Increased reporting of network deficiencies, i.e. increased involvement of local people
  • Increased awareness of problems faced by cyclists
  • Improved working relationships between campaign groups and Local Authorities (a common problem)
  • Increased ability for Local Authorities to justify central government investment
  • Increased demonstration of partnership working between Local Authorities and local people
  • Potentially, consolidation of existing web-based systems, reducing the need for groups to maintain custom-written and highly-specific systems.

Cyclescape is being created by CycleStreets, who run the UK-wide cycle journey planner (at, run ‘for cyclists, by cyclists’. As well as the cycle journey planner, which has planned almost a million routes in the UK, the CycleStreets website includes a Photomap campaigning tool used by cyclists to report problems and good practice, by locating photographs on a map.

Project Development

We use Github for managing development, you can clone the repository, or report bugs there.

Pull requests are very welcome! Additional developer notes are available on the github wiki.


Translations are managed using the Transifex platform. After signing up, you can go to the Cyclescape project page, select a language and click Translate now to start translating.

The words in braces preceded by a percent, for example %{name}, should not be translated into a new language: it's replaced with the group name when rails presents the text. So a German translation of Request membership of %{group_name} would look like Mitgliedsantrag aus %{group_name}

At the moment, the translations are not used by the application, but are useful for custom deployments.