Version 39 (modified by 11 years ago) ( diff ) | ,
---|
Table of Contents
- NYC Sandy Recovery Site
- Dashboards
- Sahana Sunflower
- Deployment Tools
- Out-Of-The-Box Sahana Deployment
- Mobile Interface
- Translation Support
- Workflow Support
- Search
- Export Graphs
- Optimization
- Rostering
- Automatic Test Framework
- Social Media
- GIS/Mapping
- Fix Web2Py Cron on Win32 Service
- Framework
- Tweet / SMS Parsing
- Mobile Photo/Video Upload
- Run Eden on a smart phone
- Chat in Sahana
- New Use Cases
- Image Library
- Flash Drive Version
- Timeline
- Usability
- Job Jar
- Optimisation
- Web Setup
- Logistics
- Build library(ies) to integrate Emergency Data Exchange Language …
- Other Ideas
- See Also
Coding Projects
These are bigger projects that will require more effort and commitment to compel
Some things to keep in mind when working on these projects or planning new modules or major features:
- Engage with the Sahana Eden Mailing List to share your ideas and get input on the project. (Not everything is documented on the wiki - but if you are committed to working on a project the community can help point you in the right direction!)
- Please ask on the mailing list whether the project you're interested in has already been done, or is being worked on by others. That is not always recorded here, and some completed projects are not removed right away. That doesn't mean there are not other aspects to the project you could work on, and you might join in with a project in progress. But if you are looking for a complete project, e.g. for a college team to work on, it's better to check.
- Prepare a detailed Blue Print design to outline your design approach for the project
- Familiarise yourself with the Sahana Eden Framework and make use of it - no need to reinvent the wheel :)
- Consider what other FOSS tools exist, that could be installed alongside Eden.
- Look at tools and libraries already in use in Eden, e.g. jQuery and ExtJS for UI work.
NYC Sandy Recovery Site
See: Deployments/Sandy/Recovery
Dashboards
Focal Persons: Michael Howden, Fran Boon
- Reusable Dashboard template
- User Customizable
- Dynamically load Dashboard components
- See:
- http://eden.sahanafoundation.org/wiki/BluePrint/UserInterface#ModuleIndexPages
- http://eden.sahanafoundation.org/wiki/BluePrint/UserInterface/Dashboard
- https://docs.google.com/document/d/1EKt6lSs1d2kuyCfCM8hQZdeL2zfCJ2JKvPU-dm81TUQ/edit?usp=sharing
- https://github.com/flavour/eden/blob/master/modules/s3/s3profile.py (Current implementation used in DRMP template)
Sahana Sunflower
Focal Persons: Michael Howden, Fran Boon
Continue the work from the Sahanathon to use Sahana as a Community Management Tool to:
- Track volunteers
- Manage tasks (potentially including bugs/feature requests)
- Record Sahana Projects & Deployments
More details here:
- BluePrint/Sunflower
- http://eden.sahanafoundation.org/wiki/Event/2012/Sahanathon This would involve:
- Writing up Deployment Page for Sahana Sunflower
- Create http://eden.sahanafoundation.org/wiki/Deployments/Sunflower
- Using Sahana as a Project Management / Bug Ticketing tool
- Manage Improvements to PM Tool / Sunflower
- Get outstanding tasks from existing Sunflower site
- Review Permissions
- Settings to have new tasks automatically assigned to specific people (based on people for project / activity?)
- Different types of tasks
- Filter lists for different users
- Users can only see
- Make it simpler to log bugs
- http://eden.sahanafoundation.org/ticket/1307
- Less fields
- No login required - but allow user to specify who’s login it in a field
- Add a default link to log a bug in Sunflower - which copies the current URL to the “Source” field
- Log a bug when an error is encountered
- If not already logged for this bug
- Ability to “vote” on tasks
Deployment Tools
Focal Persons: Fran Boon, ...
- Fabric scripts to be able to deploy Eden
- can extend https://github.com/lifeeth/spawn-eden
- select physical servers &/or Amazon EC2 account (walk-through creating keys/certs, region(s))
- select server roles distribution
- select Database (MySQL or PostgreSQL/PostGIS)
- select Webserver (Apache/mod_WSGI or Cherokee/uWSGI)
- select Template
- install all necessary/chosen components on the selected servers
- add optional co-apps, such as GeoServer &/or OptaPlanner
- optionally run Load Tests & then cleanup
- add simple UI (e.g. web2py or Tk app)
- this could then develop into a WebSetup app
Out-Of-The-Box Sahana Deployment
Focal Persons: Michael Howden, ...
- Modules to Enable / Configure
- Volunteer Management
- Staff Management
- Project Management
- CMS (User Updates)
- Request Management
- Automate Test Scripts
- UI
- Re-design Homepage
- Design Menu Hierarchy to match User Stories
- Design Module Index Pages / Dashboards
- Design/implement new theme (Using Bootstrap/JqueryUI?)
Mobile Interface
Focal Persons: Michael Howden, Graeme Foster, Fran Boon
- Implement a responsive HTML interface for mobile devices.
- Style standard CRUD + Search + Report
- Possible options include Bootstrap, jQuery Mobile & Sencha
- Represent Menus in a meaningful way for Mobile Devices
Translation Support
Focal Persons: Fran Boon
- A translation module was developed for GSoC last year which is already in active use however it still suffers from many limitations:
- Provide a set of admin scripts (perhaps run by git commit hook?) to update Pootle with any changed strings as a merge.
Workflow Support
Focal Persons: Graeme Foster
- UI design to indicate steps in a workflow
- Functionality to split the completely of large forms up into smaller steps (possibly using JS?)
- Workflow Engine (probably beyond the scope of GSoC - actually I think this should be the primary scope of the project GF)
Search
Focal Persons: Pat Tressel, Dominic König
- Full Text Search [Completed as a 2013 Google Summer of Code project by Vishrut Mehta.]
- e.g. using Apache Lucene
- Search uploaded documents (must follow authorization rules!)
- Global Search
- Over multiple resources (must follow authorization rules!)
- Search box in the top right corner
Export Graphs
Export Graphs as Images.
Focal Person: Dominic König
We currently use the Flot JavaScript library to produce interactive graphs - primarily via the S3Report (/report, /report2) method:
We have 2 usecases for exporting graphs:
- A user would like to download the report they're seeing on screen as a PDF
- A user would like to download the report they're seeing on screen as an XLS
- to have both the Pivot Table & associated Graph
- A user would like to subscribe to a report to receive by email daily/weekly/monthly
- again this report could be in PDF or XLS
- Subscription will be done using this:
- Notification will be done using this:
So, your task, as I see it, is to take the settings for a Report & produce the PDF &/or XLS version thereof.
- ideally this would work for both the interactive & subscription usecases i.e. subscription would store the Report options extending the existing Saved Filter options:
We convert our internal S3XML data format to PDF or XLS using codecs:
- https://github.com/flavour/eden/blob/master/modules/s3/codecs/pdf.py
- https://github.com/flavour/eden/blob/master/modules/s3/codecs/xls.py
I would focus on just one of these to keep scope feasible.
- personally I'd be more interested in XLS as this gives users a more useful tool to explore the data than just a static PDF.
Options:
- Use Flot to Export graphs
- parallel matplotlib method (extend modules/s3chart.py)
- server-side webkit browser to take a screenshot (ClimateDataPortal used this solution)
See Also
Optimization
Focal Persons: Dominic König, Fran Boon
Performance enhancements to handle 10,000's of records:
- Server-side clustering of map features with different report-style aggregate representations
- Optimize Report generation (probably beyond GSoC)
- Data Warehouse? (Flattened tables structure, NoSQL)
- Stored Procedures?
Concurrency:
- Non-blocking web server setup: http://uwsgi-docs.readthedocs.org/en/latest/Gevent.html
Rostering
Focal Persons: Dominic König
- Staff/Volunteer Roster GUI
- a prototype was done for GSoC 2012 which can be used as a point of reference - what was good about it? What was bad?
- Development of/Integration with a wCSP engine for automatic rostering
Automatic Test Framework
Focal Persons: Michael Howden, Dominic König See:
Ideas
- Automatically create Dummy Data
- Extend Role Tests
- Run Selenium Tests & Smoke tests in multiple templates with multiple user accounts
- Clearer Error Messages
- Simplify Selenium Tests and make them easier to read and more robust.
- Adapt tests to meet needs of evolving CI Server (SysAdmin/ContinuousIntegration)
- Load Tests
- Selenium Test show web2py error messages
- Write Functional Tests using Selenium
- Figure out how to do unit tests against a web application.
Social Media
Focal Persons: Fran Boon, Michael Howden, Connie White See:
Facebook Integration
- Pull a feed from Sahana to a Facebook book page
- Add a "Like" button to Sahana Pages (+ social media toolbar)
- Login with Facebook ID (already possible)
GIS/Mapping
These are a number of GIS/Mapping Tasks to be done:
- complete support for Mobile devices
- integrated Legends in the West Panel (see GeoExplorer or http://api.geoext.org/1.0/examples/legendpanel.html)
- OpenStreetMap PoI Layers
- Tracking people ( John Smith was registered at Camp A, then collected food at Camp B, then volunteers at Site C), or Items (The shipment of Tarpaulins moved from site C to site D, where it was split, and then half of them have been distributed from site E)
- Having a playable timeline slider (like http://haiti.ushahidi.com/main)
- Photo Bulk Uploader
- Add EXIF support to geolocate images
- Provide opportunity to add Metadata for all files
- Add support for GPX Track timestamp correlation
- More: BluePrintGeographicInformationSystems
Wikipedia Locations
Allow Sahana to import Wikipedia locations easily: both Hierarchy & Lat/Lon info
- Probably more about work in Wikipedia/Geohack to get these stored in a strctured way & an API to extract the data.
- Similar need to: http://wiki.rhok.org/Population_Centers_in_Disaster
Fix Web2Py Cron on Win32 Service
Web2Py has a nice Cron utility, but this doesn't work currently on Win32 in Service mode: #438
Framework
- Provide localisation of jquery.ui.datepicker
- Means that user profile will need extending to support locales
- Replace jquery.cluetip.js with jquery.ui.tooltip.js (1.9 once released)
Tweet / SMS Parsing
Allow users to provide info via tweets or SMS messages
- Parse formatted SMS messages or tweets (e.g. key value pairs).
- Detect when message interpretation isn't certain and dispatch to a human reader (use existing "task" database, or Job Jar, below!).
- Create database records from parsed messages.
- BluePrintMessagingModule#Twitter
- NCSU Students working on this
- BluePrintMessagingModule#Micro-Syntax
Mobile Photo/Video Upload
- Design a widget (to be included in an Eden form) that can be used to select images or video, with any needed detection of the type of phone.
Run Eden on a smart phone
- See BluePrintMobileClient.
- Alternate Layout for web view: BluePrintCSS
- NCSU Students working on this
- Android Application: MobileAndroid
- NCSU Students working on this
Chat in Sahana
New Use Cases
Extensions to support:
- Organizations such as Ten Thousand Villages assist craftspeople in disadvantaged countries organize to purchase supplies and market their crafts. What would such a crafts coop need to help run their business? What's missing from Eden to support this?
- Maitri provides support to victims of domestic violence.
- They have a page listing resources but part of the page is organized topically and the rest by location. Consider how to store the resource data to allow displaying it either by topic or by location, and also make it searchable.
- Look at the volunteer page. Compare with the existing (incomplete) volunteer module. What additional features might Maitri need to use the Eden volunteer module?
Image Library
- Provide a .represent for the view to display image thumbnail with option to zoom large (such as Fancyzoom)
- Provide a beautiful image viewer to flip between images
- Use Mapping API to display images on Map
Flash Drive Version
Extend and configure the flash drive version to support:
- Different sets of Prepop Data
- Multiple user access configuration
- Sync with online instance (auto-set up)
Timeline
Usability
Job Jar
Optimisation
Web Setup
Logistics
Build library(ies) to integrate Emergency Data Exchange Language Distribution Element
Proposed by: | Nuwan
Specific : | EDXL-DE is the final wrapper (envelope) of all | 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.
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.
Attainable: run through the steps
Step 1 :: select one of the existing EDXL-based applications in Eden, I recommend the EDXL-RM
Step 2 :: discuss each of the attributes/elements; then determine how EDXL-DE would be added to EDXL-RM as a pop-up GUI.
Step 3 :: create some example XML files to get a feel for the inputs and outputs
Step 4 :: write code to add to take the inputs EDXL-RM and EDXL-DE to package the data for delivery
Step 5 :: test the code, fix bugs, and generalize the functions
Step 6 :: Apply to EDXL-HAVE and EDXL-SITREP to generalize the library
Relevant : Applies to Sahana Interoperability policy. Present developments to investigate are: HAVE, RM, and SITREP http://www.oasis-open.org/standards#edxl
Time-bound: If steps 1 - 4 are completed that can be a full accomplishment; additional work is a bonus
Evaluate : Produce XML files with the EDXL-DE element appended to the EDXL-RM, SITREP, or HAVE
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
Other Ideas
To be elaborated on later:
- User Statistics
These are smaller tasks that could be completed over a few days:
- Better handling of image and file uploading and representations
- Multiple-File Upload with Previews: https://github.com/blueimp/jQuery-File-Upload
- Represent function for full image or thumbnail
- Lightbox viewer for full sized image
- e.g. Make use of the one within Vulnerability module