[[TOC]] = Grace Hopper Celebration Codeathon for Humanity = The Codeathon at GHC2011 is intended to introduce participants to rapid development of FOSS applications in a collective coding setting. == Suggested Codeathon Projects == === [http://wiki.openstreetmap.org OpenStreetMap] integration === Leveraging the synergy of Kate Chapman's presence, and more generally, of OSM's participation... ==== Potlatch integration ==== There is already a basic integration of [http://wiki.openstreetmap.org/wiki/Potlatch_2 Potlatch] (web-based OSM editor) into Sahana Eden (currently we have an 'Edit in Potlatch' button on the toolbar in the fullscreen map which opens the relevant area): * http://127.0.0.1:8000/eden/gis/map_viewing_client * http://127.0.0.1:8000/eden/gis/potlatch2/potlatch2.html {{{ controllers/gis.py potlatch2() views/gis/potlatch2.html }}} This could use updating & having more customisation for the Humanitarian context (there are some presets here: http://pierzen.dev.openstreetmap.org/hotpotlatch2/potlatch2.html) & tighter integration with Sahana. ==== OSM Importer UI ==== * There is an import stylesheet for .osm files: static/xslt/import/osm.xsl * This currently has hard-coded mappings between OSM admin levels & Sahana admin levels * * http://wiki.openstreetmap.org/wiki/Tag:boundary%3Dadministrative#10_admin_level_values_for_specific_countries * A custom controller should be written * provide a UI to the user to select their country from the dropdown which pre-populates the mapping fields for manual verification/adjustment * process the results of this to pass new variables back to the stylesheet: * http://pub.nursix.org/eden/s3xrc/vita.modules.s3xrc.s3rest.S3Resource-class.html#import_xml {{{ resource = s3xrc.resource("gis", "location") template = os.path.join(request.folder, resource.XSLT_PATH, "osm", "import.xsl") resource.import_xml("uploaded_filename.osm", template=template, mynewvar="xxx") }}} * The Stylesheet needs updating to act on these vars when found A nice further refinement would be to provide a UI to select a BBOX & optional filter to pull down the .osm file via [http://wiki.openstreetmap.org/wiki/XAPI XAPI] * Initially this could be manual text box entry of BBOX/filter * Then add a Map-based BBOX selection & dropdowns for the filter (which prepopulate the real dropdowns for manual verification/amendment) === Translations Admin Panel === ==== Use Cases ==== * Admin wants to update /languages on their running instance with current version from Pootle * Admin wants to be able to do offline translation of main language file(s) (either using native web2py UI or using a PO-based tool like Virtaal) * Admin wants to be able to translate additional custom strings in this instance (either using native web2py UI or using a PO-based tool like Virtaal) ==== Tasks ==== * Add a page to {{{controllers/admin.py}}} to handle Translations. * Update the InstallationGuidelines with any new optional requirements (such as translate toolkit). * Gracefully give nice error messages if the translate toolkit isn't installed. * Update UserGuidelinesLocalisation ==== Export PO file ==== * Dropdown to select which language * Button to call [http://translate.sourceforge.net/wiki/toolkit/py2web2po web2py2po] to convert the .py file to a standard PO file for the user to download ==== Import PO file ==== * Upload Widget which calls [http://translate.sourceforge.net/wiki/toolkit/py2web2po po2web2py] onaccept to convert a .po file to a Web2Py .py file stored in the languages folder * Use the same filename prefix or prompt? * Do a merge ==== Update Pootle ==== Provide a set of admin scripts (bzr post-commit hook?) to update Pootle with any changed strings as a Merge. === CAP: Common Alerting Protocol === * Receive CAP messages from an external CAP source. * Provide a form for originating CAP messages. * Send CAP messages to subscribers, retrying on failure. * Write a Facebook app to receive CAP messages and post them on one's wall. === SAARAA: Situational Awareness and Rapid Assessment Application This was started as an Android app at RHoK !#3. That version uploaded data to a very simple Heroku back end. http://www.rhok.org/problems/saaraa-situational-awareness-and-rapid-assessment-application As a follow-on to that project, allow the app to send to an Eden back end. * Add an appropriate model. * Handle receiving uploaded messages from non-logged in users -- provide a code they can use to log in later. * Display the messages by category and time. * Allow commenting on the messages (e.g. adding updates about handling the messages). * Allow sending a message back.