|Version 10 (modified by 9 years ago) ( diff ),|
Table of Contents
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.
Install the Eden development kit
Instructions for installing from the kit supplied at the event on flash drives are here.
Suggested Codeathon Projects
Leveraging the synergy of Kate Chapman's presence, and more generally, of OSM's participation...
There is already a basic integration of 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):
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
- 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:
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 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
- 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)
- Add a page to
controllers/admin.pyto 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 web2py2po to convert the .py file to a standard PO file for the user to download
Import PO file
- Upload Widget which calls 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
Provide a set of admin scripts (bzr post-commit hook?) to update Pootle with any changed strings as a Merge.
CAP: Common Alerting Protocol
This is the least well defined project, and may be more investigation than coding.
- 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.
See more here.
SAARAA: Situational Awareness and Rapid Assessment Application
This was started as an Android app at !RHoK #3 that allows the user to report on a dangerous situation by filling out a form and uploading an image. That version uploaded data to a very simple Heroku back end.
As a follow-on to that project, allow the app to send to an Eden back end.
- Add an appropriate model to hold the uploaded situation report.
- Allow users who have an Eden account to give their username and password. (Current version has no accounts.)
- Handle receiving uploaded messages from users who don't include a username and password -- 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 to the user.