'''[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]''' ''. [[TOC]] = Codeathon Projects = Since we expect GHC2010 Codeathon participants to reflect diverse skills and expertise, we have identified a range of projects. Regardless of the amount of coding needed, all of these are useful! == 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'' ==== 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 submitter 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 * Step-by-step documentation -- we have been concentrating on Windows & Debian/Ubuntu so other distros are poorly-documented. == Projects for beginning coders, or if new to Python or web services == ==== ''Bug fixing'' ==== * 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]. * 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'' ==== 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. ==== ''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). == 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. ==== ''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 * BluePrintMessagingModule#Micro-Syntax ==== ''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] * Android Application: MobileAndroid * 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 [/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?