[[TOC]] = Project Information = This page contains ideas for projects which contributors with diverse skills and expertise can work on. Projects are into: * Non-Coding * Basic Coding * Advanced Coding 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 specific events/programs will be marked with its initials, however people associated with these events are still welcome to work on the 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 programming.'' ==== ''Usability'' ==== #Usability * Role-play being a user: * Try it out -- you can use: * your locally-installed site * [http://demo.eden.sahanafoundation.org/eden/ demo site] * [http://test.eden.sahanafoundation.org/eden/ user test site for Pakistan floods response] * What do you expect it to do? * What features would you want? * What do you think the workflow should be? * Improve usability: * Find bugs: * Try to break it. * [BugReportingGuidelines Report bugs]. * Document it: * Explore it and document the existing workflow. * Develop a how-to guide for users. * Write tooltips (help info) for fields on forms. * What's missing? * What did you want to do that wasn't available? * Where is the workflow inconvenient? * [BugReportingGuidelines Request features and suggest improvements]. * Modules that could use some usability improvement: * All of them. Well, ok, try these: * [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] ==== ''Bug verification'' ==== ''GCI'' Some bugs have been left open even though they've been fixed. Others don't have much information. * Go through the list of [/report/1 open bugs] and try to reproduce the bug: * If the bug is gone, add a reply to the ticket with what you did and "resolve" the bug as "invalid". (The submitter can still reply and reopen the bug if they want.) * If you can reproduce the bug 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 bug reporter what info would be helpful. ==== ''Current relief efforts'' ==== #ReliefEfforts * Pakistan floods -- see [/Pakistan background information]. * Research missing map and location data for PakistanUnionCouncils, part of the [/PakistanUserGuide#LocationsHierarchy GIS location hierarchy]. * Do you speak Urdu? Help with [PakistanTranslation translation]. ==== ''Improve installation procedures'' ==== #ImproveInstall ''GCI'' * Step-by-step documentation -- we have been concentrating on Windows & Debian/Ubuntu so other distros are poorly-documented. == Basic Coding Projects == ''Projects for beginning coders, or if new to Python or web services'' ==== ''Bug fixing'' ==== ''GCI'' * Pick from these [/report/18 easy bugs for new Eden developers]. ==== ''Feature Enhancements'' ==== ''GCI'' * Fix UI issues, add features, provide user-requested enhancements. * You can pick from these [/report/21 feature requests]. * Or talk to the folks at the Codeathon who are [#Usability cataloging issues]. * 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? ==== ''Geocoding'' ==== ''GCI'' A favorite missing feature is geocoding addresses. There is already a geocoding service supported in Eden, but it's not used when a user adds a location. Your job: * Find the geocoding function. * When the user adds a location and enters an address, use the geocoding function to get latitude and longitude. ==== Misc. GIS/Mapping ==== #MiscGISMapping These are a number of various GIS/Mapping Tasks: * Use the !GeoCoder ({{{geolocate}}} function in {{{controllers/gis.py}}}) to lookup location Lat/Lons * Add a delay to the onHover tooltip (highlightControl) * Something like [http://cherne.net/brian/resources/jquery.hoverIntent.html hoverIntent] * Integrate [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) ==== ''Suggestion Box'' ==== ''GCI'' 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 ==== Misc. 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 ==== 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 or SMS parsing -- allow users to provide info via tweets or SMS messages'' ==== #Tweet * 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'' ==== #JobJar * 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 or video upload'' ==== #MobilePhoto * 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 * Note this [http://gracehopper.org/2010/conference/open-source-track/#session3 GHC session on Android development]! ==== ''Web interface for customizing new Eden sites'' ==== * See notes toward web-based setup and customization: BluePrintWebSetup. ==== ''Chat with other logged in users'' ==== #Chat * 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? ==== ''Refactor and complete the Survey module'' ==== #Survey 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. ==== ''Optical character recognition'' ==== * Integrate an [wiki:BluePrintOCR OCR tool] developed for GSoC into Eden. ==== ''Extensions to support new use cases'' ==== * 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