Skip to content

Google Summer of Code Ideas

dboyer edited this page Mar 9, 2012 · 2 revisions

The following are several ideas proposed by developers familiar with OpenTreeMap. We are also very willing to accept additional ideas from students.

Features to support contests and competitions

Required Knowledge: Python and Javascript skills and some UI design experience

We want to allow managers to create different types of contests like “Add the most trees in March” or “Update the most trees in a certain neighborhood.” To do this, we need to create a system where managers can add and review these contests and users can view a leader board, their own progress, and the posted results after the contest is over. This might also include implementing a recognition badge system (using django-badges package) that are awarded for different thresholds of activity, both by individual users and groups.

Selective Map Cache Invalidation

Required Knowledge: This is a fairly heavy-duty task and requires good python skills and either previous experience with Tilecache and GeoServer, or a desire to learn enough about them.

The original code used a custom mapnik hack to figure out which map tiles were made out-of-date by a user adding or moving a tree. Those tiles would then be removed from the cache so that the next time someone viewed that part of the map they’d be re-cached with the new tree location. Replacing mapnik with geoserver rendered that code unusable, and the functionality hasn’t yet been replaced.

Generic Skin

Required Knowledge: Django template language and some design/UI experience. Python skills not required.

The github project includes the Philadelphia and San Francisco skins. We’d like to create a simpler, generic skin for the public repository so we can remove those implementation specific files.

Nominate Tree Planting Locations

Required Knowledge: Python and Javascript skills and some web UI experience

There is a need for users to be able to nominate locations for planting new trees as well as a feature that will provide administrators and data managers with the ability to manage the nominations. Part of this feature will require a mechanism whereby partner organization can view, download, and update the nomination records.

Social Networking Integration

Required Knowledge: Python and Javascript skills and some web UI experience

We have had many requests for the addition of social networking features that will enable volunteers to communicate with each other during the inventory process in order to improve the ability to create a community around managing the urban forest. We would like to be able to support Twitter, Facebook and Google+ integration when users add trees, make data updates, or carry out stewardship activities (watering and pruning). We would also like to be able to store this as signals for visualization and analysis by data managers and administrators.

Geography-based Administrative Dashboard

Required Knowledge: Python and Javascript skills and web UI experience

OpenTreeMap supports data manager and administrator roles that enable review of the data, user administration, and other features. While the public user has a map display for finding trees, however, administrators and data Managers do not have a similar geographic console for monitoring activity of an instance. For example, it would be good to be able to show a map of all the edits in the last 90 days or all of the new trees added, stewardship activities, comments, social media clicks, or tree nominations. This feature would likely be a combination of maps, charts and other visualizations of system activity and would require strong Javascript skills as well as learning about OpenLayers, Django, GeoServer and PostGIS.

Extend iOS and Android Apps

Required Knowledge: Objective C or Android SDK Java skills

The project team is currently engaged with implementing an iOS and Android version of the OpenTreeMap platform. We fully expect that there will be many features left unfinished by summer and there will be an opportunity to contribute to these components.

Localization and Internationalization

Required Knowledge: Python and Javascript skills, knowledge of a second language would be a plus

We have had interest in deployment of OpenTreeMap in other countries. The Django framework has a localization infrastructure, but the application was not originally developed with localization in mind. The project would involve implementing the Django localization infrastructure, designing and implementing a configuration system for adding local language files to the project, and testing culture-specific attributes such as alternative character sets, date/number formats, and languages that require double-byte character sets.

Tablet-specific Screen Layout

Required Knowledge: Python and Javascript skills, web UI experience

Our current plan for iPad support is to make the OpenTreeMap web app function well for touch screen (through OpenLayers support for multi-touch) and in Safari Mobile. There are many opportunities to improve on this by optimizing Javascript, CSS and images, improving the layout to add finger-sized touch targets, and fixing bugs specific to Safari Mobile.