Version 9 (modified by 13 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.
Suggested Codeathon Projects
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 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
- 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")
- http://pub.nursix.org/eden/s3xrc/vita.modules.s3xrc.s3rest.S3Resource-class.html#import_xml
- 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
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 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
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.