[[TOC]] = Project Information = This page contains ideas for projects which contributors with diverse skills and expertise can work on. Projects are into: * [wiki:ProjectInformation#Non-CodingProjects Non-Coding Projects] * [wiki:ProjectInformation#InfrastructureProjects Infrastructure Projects] * [wiki:ProjectInformation#BasicCodingProjects Basic Coding Projects] * [wiki:ProjectInformation#AdvancedCodingProjects Advanced Coding Projects] People are welcome to start working on any project which interests them. They are advised to notify [wiki:MailingList Mailing List] first, to get the latest status of the project and ensure that there is no overlap and are welcome to contact community members on [wiki:Chat] for assistance. === Events and Programs === This list is used to provide projects for people attending various Sahana Events and Programs. Projects which are suitable for a specific event or program will be marked with its initials, however people associated with these events are welcome to work on other projects. ==== Google Code In 2010 (GIC) ==== '''[http://wiki.sahanafoundation.org/doku.php/foundation:sahana_gci1011 Google Code In 2010-11]''' ==== Grace Hopper Celebration Codeathon for Humanity 2010 (GHC) ==== '''[http://eden.sahanafoundation.org/wiki/GHC2010 GHC2010 Sahana-Eden Home]''' ''Each Codeathon table has an etherpad page for collaboration -- '''[ProjectAssignments find your table's page here]''' ''. == Non-Coding Projects == ''Projects that do not involve Coding but may involve design, using the software, writing documentation, etc.'' === Project: Testing === ''GCI'' ==== Role-Play Being a User ==== * Bugs - Try to break it! Some suggestions for bug-hunting: * Start with the demo system, and register for an account there: http://demo.eden.sahanafoundation.org * Pick one application to test so you get familiar with how it works. * Try all the functions. * All the menus and buttons. * Adding and deleting and listing and updating records. * Downloads and uploads. * Change settings. * Try putting in bad data. * Try different browsers and different operating systems. * Try it while logged in or not logged in. * Install your own copy, so you can... * Give yourself administrator privileges and try out administrative functions. * Start with an empty database. * Try it with different database systems. * You can report bugs you find, but first: * Check that the bug isn't already reported: [http://eden.sahanafoundation.org/search?ticket=on Search Tickets] * Follow the [http://eden.sahanafoundation.org/wiki/BugReportingGuidelines Bug Reporting Guidelines]. * Think about how could it be better. * Try Sahana Eden out -- you can use: * Your locally-installed Sahana Eden site -- see these setup instructions: * Instructions for [wiki:UserGuidelinesInstall user installation] (not for developers). * Instructions for [wiki:InstallationGuidelinesVirtualMachine running Sahana Eden in a virtual machine] (for developers but also convenient for testing because this can be updated to the latest version). * For reference, here is the [wiki:InstallationGuidelines list of all types of installations]. * Or, you can use a running Sahana Eden web site: * [http://demo.eden.sahanafoundation.org/eden/ demo site] * [http://test.eden.sahanafoundation.org/eden/ user test site for Pakistan floods response] * Modules that could use some usability improvement: * All of them, but in particular: * [http://demo.eden.sahanafoundation.org/eden/gis Mapping] * [http://demo.eden.sahanafoundation.org/eden/cr Shelter registry] * [http://demo.eden.sahanafoundation.org/eden/hms Hospital registry] * [http://demo.eden.sahanafoundation.org/eden/pr Person registry] * New or unfinished modules that would benefit from feature and workflow suggestions: * [http://demo.eden.sahanafoundation.org/eden/inventory Logistics] * [http://demo.eden.sahanafoundation.org/eden/vol Volunteer management] * [http://demo.eden.sahanafoundation.org/eden/msg Messaging] * [http://demo.eden.sahanafoundation.org/eden/rat Rapid assessment tool] ==== Report Tickets ==== See: [wiki:BugReportingGuidelines Reporting Guidelines] * What do you expect it to do? What did happen? * What additional features would you want? * What do you think the workflow should be? Report unclear/inconvenient workflow * Additional/clearer help text required. Suggest tooltips (help info) for fields on forms. * Was there something you wanted that wasn't available? === Project: Documentation === ''GCI''[[BR]] We need instructions for how to use some of our applications. We have some instructions on the [wiki:UserGuidelines] page -- this can be a starting point. For applications that have no instructions, the [wiki:UserGuidelinesTemplate User Guideline Template] tells what the form of the instructions should be. The instructions are posted on the [wiki:WikiStart Sahana Eden wiki], so you'll need an account to edit the wiki. Some instructions are in Google Docs and need to be put in the wiki.[[BR]] For GCI, we request that you complete the "Report 5 Bugs in Sahana Eden" task first and focus on the application you will be writing documentation for, to ensure that you understand the functionality. * Pick one of the applications. (For GCI, pick the task for the application you want.) * Look at any instructions that are already available for the application, linked from the [wiki:UserGuidelines] page. * Pretend you're a user -- these are tools for emergency management, so think about using it for dealing with a disaster. Try out the application -- try entering data and looking it up, see what features are available. (Look at the [wiki:ProjectInformation#Project:Testing] section for more on thinking like a user) * Things to look at: * Do the current instructions match the way the application is now? * Are there application features that have no instructions? * Are the instructions confusing? * Do the instructions fit the [wiki:UserGuidelinesTemplate User Guideline Template]? * To edit the instructions: * Register on eden.sahanafoundation.org and log in. * Make a new wiki page by going to its url in your browser. For instance, if the application's current wiki page is called IncidentReporting, make one called NewIncidentReporting by going to http://eden.sahanafoundation.org/wiki/NewIncidentReporting in your browser. Click create new page. * In the current instructions, click edit this page. Copy the wiki text to the new page and save that one. Cancel the edit in the original page. Now you can edit the new page without any worry about making a mistake. Save your work often! * There is information about [wiki:TracWiki editing the wiki] and [wiki:WikiFormatting wiki formatting]. In particular we need documentation for: * Organisation Registry * Assessment * Request Management * Project Tracking * Volunteer Management * Inventory/Warehouse Management * Incident Reporting === Project: Ticket Verification === ''GCI''[[BR]] Some of our bug reports (tickets) have been left open even though they've been fixed. Others don't have much information. We'd like you to go through some tickets to see if they're done or if they need more information. * Look at the [wiki:ProjectInformation#Project:Testing bug testing] project description for the web sites to test (or for installing your own copy if the software, if you'd rather). * Go through the list of [/report/1 open bugs]. Look at reports that have type "defect". Try to reproduce the problem reported in the ticket: * If the issue is gone, add a reply to the ticket with what you did and "resolve" the ticket as "invalid". (The submitter can still reply and reopen the bug if they want.) * If you can reproduce the issue but the description isn't clear, add better "how to reproduce" instructions. * If you can't figure out what the ticket means, add a reply that tells the ticket reporter what info would be helpful. === Project: Collate Organisation List === ''GCI''[[BR]] Collate a list of organisations involved in Emergency Management from multiple sources, for use in future emergencies. See full description [http://wiki.sahanafoundation.org/doku.php/community:gci:gci2010:org_list here]. === Project: Stock Taking of Humanitarian Catalogues === ''GCI''[[BR]] Prepare a Stock Taking Report to assess what Humanitarian Catalogues are available which could be pre-populated into Sahana Some Sources to Start with (you will need to search to find additional catalogues ): * https://www.cimicweb.org/cmo/haiti/Crisis%20Documents/Shelter%20Cluster/USAID%20OFDA%20Warehouse%20commodity%20catalog.pdf * http://procurement.ifrc.org/catalogue/ or http://www.icrc.org/emergency-items/ * http://www.unhcr.org/4bc431359.pdf * WHO supply catalogue * http://www.supply.unicef.dk/catalogue/Emergency_Items.pdf * http://www.logcluster.org/ may also be a good resource For each Catalogue list: * Source * Date of Publishing * Data model. What data "fields" are their for each item? These could be the column headings, or you could be able to determine the types of data each catalogue records for its items. Present this as a list. * Categories / Sub-categories - What is the list/hierarchy they use. * Number of Items * Summary Description of what the catalogue is for and what items it contains Prepare a report with the information listed above for each catalogue. Publish this report on a new page at BaselineSupplyCatalog (you will need to create a Trac account to do this). === Project: Scenario Cards === ''GCI''[[BR]] Running simulations of disaster scenarios is crucial to: a. Test that Sahana works correctly b. Train people to use Sahana c. Familiarise programmers with the Disaster management domain. d. Interest people in the project We have a number of different resources on simulations currently available: * SahanaCamp 1.0 * [/attachment/wiki/ProjectInformation/SahanaCamp%20Simulation.doc] * SahanaCamp 1.2 * [/attachment/wiki/SahanaCamp1.2/General%20Sessions%20Hand%20Outs.pdf General Session Hand Outs] * [/attachment/wiki/SahanaCamp1.2/Simulation%20-%20Instructions.pdf Instructions] * [/attachment/wiki/SahanaCamp1.2/Simulation%20-%20Incidents.pdf Incidents] * [/attachment/wiki/SahanaCamp1.2/Simulation%20-%20Assessments.pdf Assessments] * ADPC DMC40 - Decision Making Exercise * http://dmc.sahanafoundation.org * Contains Sample Assessment Information relating to Flooding in Vietnam. * Using the Gap Report and Gap Map, identify what additional Activities need to be planned by which Organisations to fill the gaps identified by the Assessments. You can also search the internet (please add additional resources to this page) We need to develop a series (deck) of cards which depict Disaster Scenarios which can be put together (maybe in order, maybe randomly) to create a simulation. It would be wise to share your initial ideas with the mailing list, as there are a number of people with a wealth of domain knowledge who will be able to guide you. Post any images and files (in an open data format) at TrainingSimulationsScenarioCards === Project: Icons === ''GCI''[[BR]] Sahana Eden could be made more visually appealing by having icons designed. See http://bazaar.launchpad.net/~flavour/sahana-eden/trunk/files/head%3A/static/img/markers/ for examples. ==== Map Markers ==== * Projects (See BluePrintProjectManagement) * Activities * Tasks * Offices * Warehouses * Requests * Incidents * Assessments * Camps / Temporary Shelters ==== Cluster/Sector Icons ==== * Agriculture * Camp Coordination/Management * Early Recovery * Education * Emergency Shelter * Emergency Telecommunications * Health * Logistics * Nutrition * Water Sanitation Hygiene ==== Application Icons ==== * Organisation Registry * Inventory/Warehouse Management * Incident Reporting * Request Management * Assessments * Project Tracking * Map === Action Icons === * Open * Delete === Project: Sahana Eden Theme === ''GCI''[[BR]] The design of Sahana Eden could be enhanced greatly with everything from a better colour scheme (for example, the grey menu blends into the browser which is confusing) to making more efficient use of space. If you're more of a web designer than programmer, your input is greatly needed. If you could come up with static designs for the following pages, or programmers can do their thing and make Sahana Eden beautiful. If you can design and program, even better! * Home Page - http://dmc.sahanafoundation.org/eden/ * [/attachment/wiki/ProjectInformation/Sahana%20Eden%20-%20Home.jpg] * Dashboard - http://dmc.sahanafoundation.org/eden/org/index * [/attachment/wiki/ProjectInformation/Sahana%20Eden%20-%20Dashboard.jpg] * List View - http://dmc.sahanafoundation.org/eden/project/activity * [/attachment/wiki/ProjectInformation/Sahana%20Eden%20-%20List.jpg] * List Add View - http://dmc.sahanafoundation.org/eden/org/organisation (requires login) * [/attachment/wiki/ProjectInformation/Sahana%20Eden%20-%20List%20Add.jpg] * Component View - http://dmc.sahanafoundation.org/eden/org/organisation/8/store * [/attachment/wiki/ProjectInformation/Sahana%20Eden%20-%20Components.jpg] Please share the image files and the original design files (preferably an open standard) == Infrastructure Projects == ''Projects that may involved varying degrees of technical skills, but not programming.'' === Project: Trac Theme === ''GCI''[[BR]] Design a new theme for the Sahana Eden Trac wiki. See: * http://trac.edgewall.org/ * http://trac-hacks.org/wiki/theme Provide screen shots of this design and all of the files required to install this theme on the Sahana Eden server. === Project: Develop a Process to Rebase the Bzr tree === We don't need all 1484 revisions left in the same tree - we could archive off the current version & then have a rebased version with just the last 100 edits that is the active one. This would speed up the download for new developers === Project: Improve Installation Documentation === We have been concentrating on Windows & Debian/Ubuntu, but better documentation could be provide for other distributions: * ??? == Basic Coding Projects == ''Projects for beginning coders, or if new to Python or web services'' === Easy Tickets === ''GCI'' * Pick from these [/report/18 easy bugs for new Eden developers]. === Feature Enhancements === * Fix UI issues, add features, provide user-requested enhancements. * You can pick from these [/report/21 feature requests]. * The landing page for each module is different -- some have descriptive text, others have statistics (a "dashboard"). Each has a different layout of menus. * Are any of these landing pages useful? What would be better for a typical workflow? * Make appropriate changes. * Is there a common sort of menu that would be useful? === Building Assessments === We had a basic Building Assessments tool added to Sahana recently (which is based on the ATC forms), although it was done in a Web2Py style & so didn't get completed & isn't yet merged to Trunk. The Data model is all there, so just needs the S3 REST Controller plugging-in & then using components to get sections onto Tabs (as per Rapid Assessment Tool). This would be a real nice easy project to learn the beauty of the S3 Framework & would really add value :) Current code is here: * https://code.launchpad.net/~flavour/sahana-eden/buildingAssessments Original Blueprint: * http://wiki.sahanafoundation.org/doku.php/req:housing_registry_and_reconstruction === Translations Admin Panel === * Add a page to {{{controllers/admin.py}}} to handle Translations. * Update the InstallationGuidelines with the new optional requirements. * 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. === GIS/Mapping === These are a various GIS/Mapping Tasks: * Add a delay to the onHover tooltip (highlightControl) * Something like [http://cherne.net/brian/resources/jquery.hoverIntent.html hoverIntent] * Continue Integration of [http://wiki.openstreetmap.org/wiki/Potlatch_2/Deploying_Potlatch_2 Potlatch] * for editing the main OSM database * for editing a local OSM database * Make the display_feature() & display_features() popup a Window instead of opening in a DIV * This was working in FF before: http://eden.sahanafoundation.org/browser/views/sahana_scripts_min.html?rev=836#L39 * Replace the Measure Length/Area tools with [http://trac.geoext.org/wiki/ux/Measure GeoExt.ux] * Option to go Full screen & back * Full screen view (No Ext window) will be required for use on a small-screen, such as a Mobile device * [http://dev.geoext.org/trunk/geoext/examples/tree.html Layer Tree] * Separate Overlays folder into Internal/External * Sub-folders of Overlays e.g. for: * Projects by Theme * Projects by Donor * Get a pr/person/presence record upon login if HTML5 !GeoLocation available & not changed since last time * login_next * Map Preview when Lat/Lon set in pr/person/presence (auto or not) ==== 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) === Suggestion Box === Here are some potential features for a "suggestion box", roughly in order of priority: * Text data entry form -- just use standard Eden database fields like "timestamp", "authorstamp", and "comments", maybe with a subject field. * Allow defining topics or keywords. Let user choose a topic for their suggestion. Add all module names as an initial list of topics. * Simple search in the body of posts -- match words. * Regexp search. * Allow commenting on (replying to) suggestions -- show comment thread with original post. * Some form of importance rating (e.g. voting up or down). * Original suggestion from: http://groups.google.com/group/sahana-eden/browse_thread/thread/bbda1e98b73e1437 === !SysAdmin === * DeveloperGuidelinesReleaseProcess#ExportApplication * PakistanDeploymentCycle#SysadminToDo * Installation scripts or packages for operating systems and distributions that aren't already available (i.e. other than Windows or Debian/Ubuntu). == Advanced Coding Projects == ''Projects for more experienced coders.'' Some things to keep in mind when planning new modules or major features: * 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. Fuller list of Projects being scoped: BluePrints === GIS/Mapping === These are a number of GIS/Mapping Tasks to be done: * Allow Sahana to import Wikipedia locations easily * probably more about work in Wikipedia/Geohack. * Popup to do Advanced Search for a Field (better than simple AutoComplete) * Finish the multi-file upload widget in Bulk Uploader * Port from Ext-2.2.1 to Ext-3.2.1 === 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.autocomplete.js with jquery.ui.autocomplete.js (1.8.2) * Replace jquery.cluetip.js with jquery.ui.tooltip.js (1.9 once released) * [wiki:BluePrintAuthorization#Functionrestriction Decorator to restrict access to a function based on multiple roles] * [wiki:BluePrintMany2Many Improve UI for Many<>Many] * e.g. Admin Users/Groups * e.g. GIS Layer Catalogue (esp !FeatureClasses/!FeatureGroups) * e.g. Messaging Users/Groups === Test Automation === * Figure out how to do unit tests against a web application. * Write unit and functional tests. * DeveloperGuidelinesTesting#FunctionalTests === 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 * [wiki:NCSU#Projectsbeingworkedon NCSU Students] working on this * BluePrintMessagingModule#Micro-Syntax === Sending Tweets === * BluePrintMessagingModule#Twitter * [wiki:NCSU#Projectsbeingworkedon NCSU Students] working on this === Job Jar === Manage tasks performed on the site, e.g. data entry * Assign tasks to users or let users select tasks. * Track who does what, mark completed. * Provide administrator UI for defining tasks. * Cross-check / verify task, or compare result of two users on same task. * Administer tests and training for new workers. === 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 === #Mobile * See BluePrintMobileClient. * Alternate Layout for web view: [wiki:BluePrintCSS#MobileView] * [wiki:NCSU#Projectsbeingworkedon NCSU Students] working on this * Android Application: MobileAndroid * [wiki:NCSU#Projectsbeingworkedon NCSU Students] working on this === Installation Web Interface === For customizing new Eden sites. See notes toward web-based setup and customization: BluePrintWebSetup. === Chat in Sahana === With other logged in users * Provide a chat board through which users can help each other or get help from the system administrator. * Perhaps have one chat for each organization or project. * Is there existing IRC or other chat software that could be incorporated? === Survey Application === The survey module was started during GSoC this summer. The author will be online on freenode #sahana-ghc under the nicknames '''''robbyoconnor''''' or '''''r0bby|android''''' during the Codeathon. * Change it so that it uses "components" to relate survey sections to the survey, and questions to the survey sections. * Please keep in mind that the survey tool should be able to support question data types (defined in the user guidelines) * Ideally, the look and feel of the surveys should be modeled after the Rapid Assessment Tool (rat) module. (See '''''models/rat.py''''' and '''''controllers/rat.py''''' to get an idea of what needs to happen.) * We are aiming to allow non-technical users to create surveys similar to what was done in the rat module. * Additional Resources: [UserGuidelinesSurveyTool User Guidelines] * If this project is undertaken, please update the wiki documentation to match. === OCR === Optical Character Recognition * Integrate an [wiki:BluePrintOCR OCR tool] developed for GSoC into Eden. === New Use Cases === Extensions to support: * Organizations such as [http://www.tenthousandvillages.com/ 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? * [http://www.maitri.org Maitri] provides support to victims of domestic violence. * They have a [http://www.maitri.org/res_usa.html 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 [http://www.maitri.org/secure/join.html 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 * http://blog.lieldulev.com/2010/05/21/parallel-image-preloading-in-js/ * Use Mapping API to display images on Map === Misc. Projects === To be elaborated on later: * Image Importer * YouTube Importer * User Statistics ---- BluePrints