Changes between Initial Version and Version 1 of Projects/Quick


Ignore:
Timestamp:
11/02/13 11:17:32 (8 years ago)
Author:
Fran Boon
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Projects/Quick

    v1 v1  
     1== Easy Tasks ==
     2''Tasks for beginning coders, or if new to Python or web services''
     3
     4=== Fix a Ticket ===
     5Pick a ticket (which could be a bug or an enhancement) from http://eden.sahanafoundation.org/report/1. First ensure that you can repeat this in your local instance - if not: MODIFY TICKET > resolve as > worksforme. If the bug is still present, assign the ticket to yourself. Then fix the bug or implement the feature. Submit your code as a patch to the ticket on Trac, then notify the Sahana-Eden mailing list about your patch for verification. Please submit as a patch file, not zipped. That makes it easier to review without downloading and unzipping. Alternatively (preferred method) push your code in a single commit to your Github repository and make a pull request.
     6
     7Easy tickets to get started on are listed here: http://eden.sahanafoundation.org/report/18
     8
     9=== Common Operational Datasets [GCI] ===
     10''Added to GCI spreadsheet.''[[br]]
     11 * Purpose and schemas for common datasets (schemas are at end): http://oneresponse.info/resources/imtoolbox/publicdocuments/IASC%20Guidelines%20on%20Common%20Operational%20Datasets%20in%20Disaster%20Preparedness%20and%20Response%201%20Nov.%202010.pdf
     12 * Add model definitions for these schemas. This work was started but is not included in the current version of Eden. An example from an old version is here: [http://bazaar.launchpad.net/~flavour/sahana-eden/trunk/view/head:/models/08_assess.py#L1825 models/08_assess.py]
     13 * Think about how we could make use of them.
     14  * Display on the Map?
     15  * Have Reports which compare the baseline & situational assessments?
     16
     17=== GIS/Mapping [GCI, multiple tasks] ===
     18''Added to GCI spreadsheet''[[BR]]
     19These are various GIS/Mapping Tasks:
     20 * [=#AddOnHoverDelay]'''Add a delay to the onHover tooltip''' (highlightControl)
     21  * Something like [http://cherne.net/brian/resources/jquery.hoverIntent.html hoverIntent]
     22 * [=#PotlatchIntegration]'''Continue Integration of [http://wiki.openstreetmap.org/wiki/Potlatch_2/Deploying_Potlatch_2 Potlatch]'''
     23  * for editing the main OSM database
     24  * for editing a local OSM database
     25 * [=#FeaturePopupWindow]'''Make the display_feature() & display_features() popup a Window''' instead of opening in a DIV
     26  * This was working in FF before: http://eden.sahanafoundation.org/browser/views/sahana_scripts_min.html?rev=836#L39
     27 * [=#GeoExtMeasure]'''Replace the Measure !Length/Area tools with [http://trac.geoext.org/wiki/ux/Measure GeoExt.ux]'''
     28 * ~~[=#FullScreenMap]Option to go Full screen & back~~
     29  * ~~Full screen view (No Ext window) will be required for use on a small-screen, such as a Mobile device~~ (completed by aviraldg)
     30 * [=#LayerTree]'''[http://dev.geoext.org/trunk/geoext/examples/tree.html Layer Tree]'''
     31 * [=#LookupPresence]'''Create a pr/person/presence record upon login''' if HTML5 !GeoLocation available & has changed since last time
     32  * login_next
     33 * [=#MapPreview]'''Map Preview when !Lat/Lon set in pr/person/presence''' (auto or not)
     34
     35[wiki:DeveloperGuidelinesGIS Use the Mapping API to:]
     36 * [=#ColorCodedMaps]'''Color coded maps according to Geo-data''' (threats, needs, etc)
     37 * [=#VariableSizedMarkers]'''Place variable sized markers on the map in proportion to data''' (number of people in camp, number of families needing food)
     38
     39=== !Lat/Lon converter [GCI] ===
     40''Added to GCI spreadsheet''[[BR]]
     41Portuguese Volunteer Firefighters ([Deployments/Portugal/Bombeiros Bombeiros]) use Eden.
     42
     43They get given !Lat/Lon coordinates in degrees minutes seconds, but Eden stores internally as decimal degrees.
     44
     45Tasks:
     46* Create a represent function to output the data as degrees minutes seconds, e.g. 57°55'56.6"E.
     47 * [[http://www.geomidpoint.com/latlon.html|Examples of lat lon formats]]
     48* Create a validator (& possibly widget) to allow entry of this format (allowing for variations in input format like spaces and absence of the degree symbol, which most keyboards don't have) & have it converted to decimal degrees for storage
     49
     50=== Scale Uploaded Images [GCI] ===
     51''Added to GCI spreadsheet''[[BR]]
     52When images are uploaded we can limit the size, however larger pictures should be scaled instead. Example: personal profile picture.
     53
     54 * [This part is done, see #1016] This should be implemented as a Validator {{{modules/s3/s3validators.py}}}).  The size limitation should be configurable in the model for that specific field, with a sensible default.
     55
     56 * [GCI task, #1017] UI to to allow user to crop image (this would be a widget: {{{modules/s3/s3widgets.py}}})
     57  * Ideally the image would be resized client-side to make it faster to upload...this might be hard with pure JS, so would need to be Flash?
     58  * Maybe: http://labs.corefive.com/Projects/FileManager/ (e.g. from http://code.google.com/p/django-ckeditor-filemanager/ )
     59
     60=== Suggestion Box [GCI] ===
     61~~''Added to GCI spreadsheet''[[BR]]
     62(Original suggestion from: http://groups.google.com/group/sahana-eden/browse_thread/thread/bbda1e98b73e1437)
     63
     64Here are some potential features for a "suggestion box", roughly in order of priority:[[BR]]
     65''For GCI, the first four bullets are the task.''~~
     66 * ~~Text data entry form -- just use standard Eden database fields like "timestamp", "authorstamp", and "comments", maybe with a subject field.~~
     67 * ~~Allow defining topics or keywords. Let user choose a topic for their suggestion. Add all module names as an initial list of topics. (Perhaps add a suggestion_topic table for this, and allow a suggestion to have multiple topics.)~~
     68 * ~~Simple search in the body of posts -- match words.~~
     69 * ~~Allow commenting on (replying to) suggestions -- show comment thread with original post. (Note threading now works with a normal comment field, so should not need to do much for this but see how it's handled for other comments.)~~ (completed by aviraldg)
     70 * Regexp search.
     71 * Some form of importance rating (e.g. voting up or down).
     72
     73=== Map elements between EDXL-SITREP and EDXL-RM ===
     74''Not added to GCI spreadsheet -- time required says a week.''[[BR]]
     75Proposed by: [http://lirneasia.net/profiles/nuwan-waidyanatha | Nuwan][[BR]]
     76'''Specific    : ''' There are several elements within the [http://tinyurl.com/bn9nxty | EDXL-SITREP] data standard that are identical to that of [http://docs.oasis-open.org/emergency/edxl-rm/v1.0/EDXL-RM-SPEC-V1.0.pdf | EDXL-RM]. The objective is to create a descriptive table of those elements that a programmer can use to develop a set of procedures to strip the RM data from SITREP to manage records in the relational database [[BR]]
     77'''Measurable  : ''' Requires diligently investigating each and every data element then comparing them with the two data standards SITREP and RM. Requires knowledge of data types and XML. If not, this exercise will help the student learn about XML and data standards [[BR]]
     78'''Attainable  : ''' [[BR]]
     79Step 1 :: Go through EDXL-RM and EDXL-SITREP documentations [[BR]]
     80Step 2 :: create example files to get an understanding of the data and structure [[BR]]
     81Step 3 :: develop the table with RM and SITREP elements with a description [[BR]]
     82Step 4 :: develop a simple XSL file to strip the RM data from SITREP [[BR]]
     83'''Relevant    : ''' Applies to Sahana interoperability policy. Given that Eden does support resource and incident management, it is important to derive the response resources and resource requirements from situational reports. This function would help automate some of those data extraction functions. That requires integrating the SITREP and RM components with underlying Eden schema [[BR]]
     84'''Time-bound  : ''' The exercise of understanding the data standards and mapping the elements should not take more than one week. developing a XSL to test the mapping may take another week, depending on the level of expertise with XML. (NB this is far too large a task for GCI. -- Pat)[[BR]]
     85'''Evaluate    : ''' The mapping table is the determining output. However, the example RM and SITREP files are also required. [[BR]]
     86'''Reevaluate  : ''' If the XSL transformation is developed, then the mapping can be tested with the sample RM and SITREP files [[BR]]
     87
     88== Intermediate  Tasks ==
     89
     90=== Feature Enhancements ===
     91 * Fix UI issues, add features, provide user-requested enhancements.
     92  * You can pick from these [/report/21 feature requests].
     93
     94=== OSM Importer UI [GCI] ===
     95''Added to GCI spreadsheet.''[[BR]]
     96
     97==== Current Status ====
     98* There is an import stylesheet for .osm files: static/xslt/import/osm.xsl
     99* This currently has hard-coded mappings between OSM admin levels & Sahana admin levels
     100 * http://wiki.openstreetmap.org/wiki/Tag:boundary%3Dadministrative#10_admin_level_values_for_specific_countries
     101* There is an S3ImportPOI method to allow features to be extracted from either an uploaded .osm file or an OSM mirror:
     102 * https://github.com/flavour/eden/blob/master/modules/s3/s3gis.py#L7938
     103 * this is accessed from the 'Import from OpenStreetMap menu option in /eden/gis
     104
     105==== Enhancements Needed ====
     1065 separate GCI Tasks here:
     1071. We need to add the Sahana UUID to these features in the OSM database.
     108 * This is needed so that we can do deduplication on subsequent imports (the OSM ID is insufficient for this as it can change over time)
     109 * This means we need to read the OSM credentials (currently a deployment_setting in 000_config.py) & do a REST API call to the main OSM database with the modified feature(s)
     1102. Move the OSM credentials from a global 000_config.py deployment_setting to a per-user setting (component resource of db.auth_user)
     1112. We would like to be able to control which features are imported from this UI (currently this is a deployment_setting in [000_]config.py - that should become the list of avaialble options rather than the absolute list)
     1123. We would like to be able to download features for a Location from main OSM database
     113 * We want to use the Polygon (falling-back to BBOX (min_lat, max_lon, etc)) to trigger a download of a suitably-filtered .osm file via the [http://wiki.openstreetmap.org/wiki/Overpass_API Overpass API]
     1144. We would like to be able to download features for a Polygon
     115 * Provide a map window with a Polygon selector tool which then triggers a download of a suitably-filtered .osm file via the [http://wiki.openstreetmap.org/wiki/Overpass_API Overpass API]
     116=== Fix a Hard Ticket ===
     117http://eden.sahanafoundation.org/report/1
     118Pick a bug report from http://eden.sahanafoundation.org/report/1, try to reproduce the issue in a local instance, fix the problem and submit a patch to the ticket on Trac, then notify the Sahana-Eden mailing list about your patch for verification.
     119
     120=== Build library(ies) to integrate Emergency Data Exchange Language Distribution Element ===
     121''Not added to GCI spreadsheet -- outside time bounds. Can it be split or cut down?''[[BR]]
     122Difficulty : '''HARD''' proposed by: [http://lirneasia.net/profiles/nuwan-waidyanatha | Nuwan] [[BR]]
     123'''Specific  : '''[http://docs.oasis-open.org/emergency/edxl-de/v1.0/EDXL-DE_Spec_v1.0.pdf | EDXL-DE] is the final wrapper (envelope) of all [http://en.wikipedia.org/wiki/EDXL | EDXL] data package. We may be delivering a EDXL Resource Management (RM) information and Situational Reporting (SITREP) information to the managers of several emergency organizations. The DE will contain who, when, and where those RM and SITREP data parcels would be delivered. Every EDXL message (data package) must carry this information. Otherwise, it cannot use available distribution methods and would need to rely on its own protocol; that's not very user friendly. [[BR]]
     124'''Measurable: ''' It is purely a coding task that involves playing with XML and developing a class, possibly within or using the '''??? 3R**** ???''' framework It is basically a set of procedures for packing and unpacking EDXL-DE wrapped data. [[BR]]
     125'''Attainable: ''' run through the steps [[BR]]
     126Step 1 :: select one of the existing EDXL-based applications in Eden, I recommend the EDXL-RM [[BR]]
     127Step 2 :: discuss each of the attributes/elements; then determine how EDXL-DE would be added to EDXL-RM as a pop-up GUI. [[BR]]
     128Step 3 :: create some example XML files to get a feel for the inputs and outputs [[BR]]
     129Step 4 :: write code to add to take the inputs EDXL-RM and EDXL-DE to package the data for delivery [[BR]]
     130Step 5 :: test the code, fix bugs, and generalize the functions [[BR]]
     131Step 6 :: Apply to EDXL-HAVE and EDXL-SITREP to generalize the library [[BR]]
     132'''Relevant  : ''' Applies to Sahana Interoperability policy. Present developments to investigate are: HAVE, RM, and SITREP http://www.oasis-open.org/standards#edxl [[BR]]
     133'''Time-bound: ''' If steps 1 - 4 are completed that can be a full accomplishment; additional work is a bonus [[BR]]
     134'''Evaluate  : ''' Produce XML files with the EDXL-DE element appended to the EDXL-RM, SITREP, or HAVE[[BR]]
     135'''Reevaluate: ''' Use an API to add and strip the EDXL-DE to any EDXL data standard. Use the same set of XML files to run through this process [[BR]]
     136
     137== Advanced Tasks ==
     138These are smaller tasks that could be completed over a few days:
     139* Better handling of image and file uploading and representations
     140 * Multiple-File Upload with Previews: https://github.com/blueimp/jQuery-File-Upload
     141 * Represent function for full image or thumbnail
     142 * Lightbox viewer for full sized image
     143  * e.g. Make use of the one within Vulnerability module
     144* Switch between an update and read page using JS
     145* UI
     146 * Review CSS & layout.py for different themes to avoid duplication
     147 * Ensure that elements have consistent design & class/id tags and can easily be customized
     148  * Buttons
     149  * Tables
     150  * Popups
     151  * Fonts
     152  * Throbbers
     153 * Use class/id tags which is consistent with [http://twitter.github.com/bootstrap/ Bootstrap] / JQueryUI to support easy re-theming (Can copy bootstrap) from https://github.com/flavour/eden/tree/master/private/templates/DRMP)
     154 * Implement a new default theme
     155  * Re-implement some of the existing themes using the new default theme as a base
     156 * Implement an inline login form that appear inline the top right of the menu and doesn't require loading a new page (like for https://twitter.com) eg. http://mifsud.me/adding-dropdown-login-form-bootstraps-navbar/