= Tasks for GCI = [[TOC]] Mentors: Tasks should be migrated to "Tasks to Upload" sheet on the [https://docs.google.com/a/sahanafoundation.org/spreadsheet/ccc?key=0Ak_4NxEC3sIUdG9qZl9MT1psOWQtWmY3NXUtVmpGX2c&hl=en_US#gid=2 mentor roster & task list spreadsheet]. Info for mentors: http://code.google.com/p/google-code-in/wiki/GCIAdminMentorInformation == '''Code''' == === Fixing Bugs === '''''Migrated'''''[[br]] ==== Hard ==== http://eden.sahanafoundation.org/report/1 Pick 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. ==== Easy ==== http://eden.sahanafoundation.org/report/18 Pick a bug report from http://eden.sahanafoundation.org/report/18, 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. === Merge Media Feed Project === '''''Migrated (hard)'''''[[br]] 1. Merge the Code from https://github.com/jscameron/Final-Project with Sahana Eden trunk (http://bazaar.launchpad.net/~flavour/sahana-eden/trunk/files) 2. Push to a branch on Launchpad 3. Share with groups.google.com/group/sahana-eden list 4. Action any requested changes to the code === Enhancements === ==== Demo deployment settings. ==== We have an increasing demand for instances of Sahana Eden to be set up quickly to show case certain aspects of the software. These demo sites are basically out-of-the-box Sahana Eden with a set of deployment_settings (e.g. certain modules enabled and a specific main menu hierarchy), along with a fixed set of data to populate the demo so that all of the required features can be easily showcased. Currently, there is a directory hierarchy {{{private/prepopulate/demo}}} which contains all of the prepopulate data and simple instructions on how to populate the database. What we want to add to this is a demo-specific {{{000_config.py}}} file. This file will hold just the deployment_settings which are different to the one in templates (e.g. details of the modules that should be enabled, which includes their order on the main menu, and the prepopulate setting). In {{{000_1st_run.py}}} the template in the demo folder should be opened and the data merged into the {{{000_config.py}}} file from {{{deployment-templates}}}. One issue is that this code needs to know which prepopulate demo directory to look into to find the demo deployment settings, and these details are in the file we're looking for. So a new file will need to be created: {{{models/0000_deploy.py}}}, which will be excluded from bzr, and will set up the path to the demo deployment template. To help deployers, an example of what this file should look like should be added to {{{000_config.py}}}. This could be as simple as just {{{demo = "Requests"}}} '''migrated''' ==== Add Social Media Share Buttons to Pages ==== Medium[[br]] '''''Migrated'''''[[br]] Add code which displays buttons to Share to Social Media (at least facebook & twitter) on every page. * This should be controllable from a deployment_setting * Please push the code to a branch on launchpad for review and submit a link to this branch http://devgrow.com/loading-social-media-buttons-after-everything-else/ ==== Projects/Basic#ScaleUploadedImages ==== Fran. Medium[[br]] '''''Migrated'''''[[br]] ==== Build library(ies) to integrate Emergency Data Exchange Language Distribution Element ==== '''''Migrated'''''[[br]] Difficulty : '''HARD''' proposed by: [http://lirneasia.net/profiles/nuwan-waidyanatha | Nuwan] [[BR]] '''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]] '''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]] '''Attainable: ''' run through the steps [[BR]] Step 1 :: select one of the existing EDXL-based applications in Eden, I recommend the EDXL-RM [[BR]] Step 2 :: discuss each of the attributes/elements; then determine how EDXL-DE would be added to EDXL-RM as a pop-up GUI. [[BR]] Step 3 :: create some example XML files to get a feel for the inputs and outputs [[BR]] Step 4 :: write code to add to take the inputs EDXL-RM and EDXL-DE to package the data for delivery [[BR]] Step 5 :: test the code, fix bugs, and generalize the functions [[BR]] Step 6 :: Apply to EDXL-HAVE and EDXL-SITREP to generalize the library [[BR]] '''Relevant : ''' Applies to Sahana Interoperability policy. Present developments to investigate are: HAVE, RM, and SITREP http://www.oasis-open.org/standards#edxl [[BR]] '''Time-bound: ''' If steps 1 - 4 are completed that can be a full accomplishment; additional work is a bonus [[BR]] '''Evaluate : ''' Produce XML files with the EDXL-DE element appended to the EDXL-RM, SITREP, or HAVE[[BR]] '''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]] ==== Add a "nice_name" for resources to the s3.crud_strings[tablename] ==== http://eden.sahanafoundation.org/ticket/1013 '''''Migrated'''''[[br]] ==== Migrating data from models/zzz_1st_run.py to prepop ==== '''''Not migrated'''''[[br]] === Packaging === ==== Easy (Fran): [InstallationGuidelines/Windows/User Windows Installer for End-Users] ==== '''''Migrated'''''[[br]] http://eden.sahanafoundation.org/ticket/1014 ==== Easy (Fran): [InstallationGuidelines/Windows/Developer/Installer Windows Installer for Developers] ==== '''''Migrated'''''[[br]] http://eden.sahanafoundation.org/ticket/1015 == Documentation == === Test Developers Installation Documentation for Windows === Follow the documentation on http://eden.sahanafoundation.org/wiki/InstallationGuidelines to install a developer's instance of Sahana Eden on your Windows OS. Once you have completed send an email to the groups.google.com/group/sahana-eden list stating: 1. Summary of the exact steps you tool 2. Screenshots of Sahana Eden installed on your OS 3. How long it took you? 4. What was the most difficult part? 5. 5 ways the documentation be improved - these need to be as specific as possible - does content need to be added? Clarified? Simplified? Is there a need for pictures (of what?)?. You will be encouraged to edit the documentation on the Wiki to make these improvements yourself. 6. Any other questions you may have about Sahana Eden '''''Migrated'''''[[br]] === Test Developers Installation Documentation for Mac === Follow the documentation on http://eden.sahanafoundation.org/wiki/InstallationGuidelines to install a developer's instance of Sahana Eden on your Mac OS. Once you have completed send an email to the groups.google.com/group/sahana-eden list stating: 1. Summary of the exact steps you tool 2. Screenshots of Sahana Eden installed on your OS 3. How long it took you? 4. What was the most difficult part? 5. 5 ways the documentation be improved - these need to be as specific as possible - does content need to be added? Clarified? Simplified? Is there a need for pictures (of what?)?. You will be encouraged to edit the documentation on the Wiki to make these improvements yourself. 6. Any other questions you may have about Sahana Eden '''''Migrated'''''[[br]] === Test Developers Installation Documentation for Linux === Follow the documentation on http://eden.sahanafoundation.org/wiki/InstallationGuidelines to install a developer's instance of Sahana Eden on your Linux OS. Once you have completed send an email to the groups.google.com/group/sahana-eden list stating: 1. Summary of the exact steps you took 2. Screenshots of Sahana Eden installed on your OS 3. How long it took you? 4. What was the most difficult part? 5. 5 ways the documentation be improved - these need to be as specific as possible - does content need to be added? Clarified? Simplified? Is there a need for pictures (of what?)?. You will be encouraged to edit the documentation on the Wiki to make these improvements yourself. 6. Any other questions you may have about Sahana Eden '''''Migrated'''''[[br]] === Test Customization Documentation === Follow the documentation on http://en.flossmanuals.net/sahana-eden/customisation/ to customize your local instance of Sahana Eden. Once you have completed send an email to the groups.google.com/group/sahana-eden list with: 1. Screen Shots of your customized module 2. How long it took you? 3. What was the most difficult part? 4. 5 ways the documentation be improved - these need to be as specific as possible - does content need to be added? Clarified? Simplified? Is there a need for pictures (of what?)?. You will be encouraged to edit the documentation on the Wiki to make these improvements yourself. 6. Any other questions you may have about Sahana Eden '''''Migrated'''''[[br]] === Test Building a New Module Documentation === Follow the documentation on http://en.flossmanuals.net/sahana-eden/building-a-new-application/ to customize your local instance of Sahana Eden. Once you have completed send an email to the groups.google.com/group/sahana-eden list with: 1. Screen Shots of your new module 2. How long it took you? 3. What was the most difficult part? 4. 5 ways the documentation be improved - these need to be as specific as possible - does content need to be added? Clarified? Simplified? Is there a need for pictures (of what?)?. You will be encouraged to edit the documentation on the Wiki to make these improvements yourself. 6. Any other questions you may have about Sahana Eden '''''Migrated'''''[[br]] === Add Screen Shots to Building a New Module Documentation === Follow the documentation on http://en.flossmanuals.net/sahana-eden/building-a-new-application/ to customize your local instance of Sahana Eden. Once you have completed send an email to the groups.google.com/group/sahana-eden list with: 1. Screen Shots of your new module. You will need to take the relevant sections of these screen shots and add them into the Book as examples 2. How long it took you? 3. What was the most difficult part? 4. 5 ways the documentation be improved - these need to be as specific as possible - does content need to be added? Clarified? Simplified? Is there a need for pictures (of what?)?. You will be encouraged to edit the documentation on the Wiki to make these improvements yourself. 6. Any other questions you may have about Sahana Eden '''''Migrated'''''[[br]] === Prepare data model relationship entity diagram for each module in Sahana Eden === Can use MySQL workbench to reverse-engineer the Eden database into an ERR diagram, then tidy up to show the actually important information for developers (e.g. hide meta-fields, auth references and similar, annotate the foreign keys for links, move objects so they don't overlap too much), for an example see http://pub.nursix.org/eden/err_model.png. '''''Migrated'''''[[br]] == '''Outreach''' == === Prepare Inventory of Sahana Eden Videos === Prepare a wiki page [wiki:/Video] with a summary of ALL Sahana Eden video. Search the following: * youtube & vimeo in Sahana Eden mailing list & wiki * sahana tags in YouTube and Vimeo === Design New Trac Template === For the Sahana Eden wiki based on: http://wiki.sahanafoundation.org/doku.php/foundation:branding '''''Migrated'''''[[br]] Issues that need resolving: * Code boxes overflow (e.g. wiki:UserGuidelinesGISData) * Some funny stuff happens when you change the width of the page: * The search box jumps above and below the dividing line * Some of the header menus overlap the icon * At a max width (>1500) the "Edit this Page", "Attach File"... jump up to the left of the page * The "last modified..." is overlap by the table of contents * Table of Contents should have a solid green background (like the outside of the page) * Add The Sahana Software Foundation logo and a link to www.sahanafoundation.org to the footer * Add links to the Sahana FB and twitter pages to the footer * Add link to the http://groups.google.com/group/sahana-eden Mailing list to the footer === Take Minutes during Sahana Community Call === You will need to attend the Sahana Community Call and take notes in the Google Doc. These calls will be on WebEx (teleconference software) and will take place on: * Sunday Dec 11th 1600 UTC * Tuesday Dec 13th 0300 UTC '''''Migrated'''''[[br]] === Videos === ==== What is Sahana Eden? ==== Produce a screencast introduction / overview for Sahana Eden. The screen cast should be focused at potential Sahana Eden users and promote the value of using Sahana Eden. 5-10 min. [[br]] http://eden.sahanafoundation.org/wiki/ScreencastHowto '''''Migrated'''''[[br]] ==== How to start developing in Sahana Eden ==== (Developer Focused - high level overview) http://eden.sahanafoundation.org/ticket/1033 http://en.flossmanuals.net/sahana-eden/installation '''''Migrated'''''[[br]] ==== How to deploy Sahana Eden ==== (Deployer Focused - high level overview) http://eden.sahanafoundation.org/ticket/1032 http://en.flossmanuals.net/sahana-eden/installing-a-developer-environment '''''Migrated'''''[[br]] === Give a presentation on Sahana Eden to a Group === Hard. Give a presentation about Sahana Eden Open Source Disaster Management Software to a group of people. 1. Prepare your presentation (notes/PowerPoint/demo) and share with the Sahana Eden MailingList 1. Deliver your presentation. If possible record this on video. 1. Report back to the Sahana Eden MailingList * Who attended? * What were the most interested in? * What questions did they ask? * How would you improve you presentation next time? '''''Migrated'''''[[br]] === Extend an IRC Bot to automatically greet new people who join the sahana-eden channel === '''''Migrated'''''[[br]] ''Note this is for the purpose of outreach, but is a coding task.''[[br]] We don't want to miss new people who show up on our IRC channels! But sometimes we're just not watching the chat. So we want a bot that will: * Send a greeting to new nicks when they appear on a channel. For this, it will need to record which nicks it has already greeted. * Ping a specified set of nicks when a new nick appears. (These would be nicks of people who can help with questions, e.g. for a project channel like #sahana-eden, ping the Eden PMC.) * We suggest starting with Sean Palmer's IRC bot, [http://inamidst.com/phenny/ phenny], or logger, [http://inamidst.com/code/loggy.py loggy]. Afterward, you can offer your code back to Sean Palmer. * As an added benefit, perhaps the same bot can log the channel (currently we use loggy for this). == '''Quality Assurance''' == === Report 2 Bugs in Sahana Eden === Following http://eden.sahanafoundation.org/wiki/BugReportingGuidelines '''''Migrated''''' === Destructive testing of a Sahana Eden module === Test the forms and screens of a Sahana Eden module for appropriate/consistent response to user errors (e.g. invalid or malformed input, accidental navigation actions, invalid URL, etc...). Document all the steps that you've taken and report any bugs you've found in the process. '''''Migrated''''' === Develop a test cases for a Sahana Eden module === Write up the steps to perform the user tasks in the module, automate the tests using Selenium IDE, provide test data where useful. '''''Migrated''''' === Test a Sahana Eden module for correct access authorization === Find out and document the common business rules for access authorization to the module, test the module for the consistent implementation of these rules and document the results '''''Migrated''''' === Create a Selenium IDE script for a Sahana Eden application === Using Selenium IDE create test scripts for a module see: http://eden.sahanafoundation.org/ticket/1035 (medium) '''''Migrated''''' == '''Research''' == === Create A Disaster Scenario === The task is to describe how your local emergency response organisations and citizens plan to act in a disaster, and to collect real or at least realistic data which can be used to demonstrate some of the capabilities of Sahana Eden, if it were being used by those agencies. The task requires research on disaster preparedness and response capabilities in your location. There are two goals for this task: One is to prepare data that can be used to run a disaster simulation. But the other is for you to become familiar with the emergency response agencies and procedures in your area. The first step is to identify the main organisations that provide emergency response in your area. For example, these might be: * Local government emergency management agency * Local office of the national government emergency management agency * Non-governmental agencies, such as the Red Cross / Red Crescent * Fire department * Citizen preparedness groups and citizen emergency response groups Try to identify about four agencies. What does each agency do in an emergency? Do the agencies coordinate activities with each other? How do they communicate with the public? What should citizens be watching for, so they can be sure not to miss emergency messages? Next choose a type of emergency to describe. Is there a type of emergency that is common in your area? or a type that people are concerned about? Look for information about what to expect in such an emergency -- what the agencies will do, and what citizens are supposed to do. For a simulation using Eden, data is needed that represents the organisations, their offices, staff, equipment, and supplies. With this, participants can role-play activities performed during the emergency, such as assigning staff, requisitioning equipment, and distributing supplies. You will need to collect some real data, and invent other data as needed, and save them in a format that can be imported directly into Sahana Eden through the pre-populate functionality. This is done by creating a number of CVS files that conform carefully to the format described in each file. Template CSV files are attached to this page (see Attachments below). The real data would include the names, locations, and contact information for the organisations. Invented data would be locations of offices and warehouses, names and skills of staff, and what equipment and supplies they have available. Note: When adding invented personal information it is essential that the names and contact information do not match any real person. All email addresses can be from the example.com domain, thus the email address for an invented person named Joe Bloggs might be joe.bloggs1234@example.com, phone numbers should be in a legal format for the locale, but should not be real phone numbers. Within Eden all email addresses must be unique. To avoid any clash with existing data or data generated by other participants, you can include your melange id immediately before the @, thus for an id of 2154, Joe Blogg's email would become joe.bloggs2154@example.com. To complete the task you will need to meet the following minimum specifications: Each scenario must contain a (short) description. This must be no more than about 1000 words (about 2 pages of text) describing the following: * The location (country, province, town,...) and setting (what is the area like? are there local geological or other features that contribute to disasters?). * The type of disaster the organistions are preparing for. * What does each organisation do in a disaster? * What are citizens expected to do? * Are there any known problems with existing disaster response capabilities? If there are instructions online for what citizens should do to prepare for emergencies, or in the event of an emergency, include those. Collect (or invent) these amounts of data for each type of resource: ||= Type of resource =||= Number of entries =||= File =|| || Organisation || 4|| org/organisation.csv || || Office || 8|| org/office.csv || || Warehouse || 4|| org/office.csv || || Staff || 40|| hrm/person.csv || || Staff skills || 80|| hrm/person.csv || || Assets || 20|| asset/asset.csv || || Stock || 80|| inv/inv_item.csv || To enter the data in spreadsheets, download the attached archive file "research disaster scenario.zip". That has appropriate CSV files with appropriate columns for the data to collect. Package the filled CSV files in a zip file like the original download. (Note to students: If you have Eden installed -- which is recommended -- you can try uploading your data through the "pre-populate" function. Ask on IRC about this. Note to mentors: The recommended means of testing the data for this task is to attempt to import the data in a pre-populate folder.) === Map elements between EDXL-SITREP and EDXL-RM === '''''Migrated'''''[[br]] Difficulty : Nuwan:'''EASY''', Pat:'''HARD''' Proposed by: [http://lirneasia.net/profiles/nuwan-waidyanatha | Nuwan][[BR]] '''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]] '''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]] '''Attainable : ''' [[BR]] Step 1 :: Go through EDXL-RM and EDXL-SITREP documentations [[BR]] Step 2 :: create example files to get an understanding of the data and structure [[BR]] Step 3 :: develop the table with RM and SITREP elements with a description [[BR]] Step 4 :: develop a simple XSL file to strip the RM data from SITREP [[BR]] '''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]] '''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]] '''Evaluate : ''' The mapping table is the determining output. However, the example RM and SITREP files are also required. [[BR]] '''Reevaluate : ''' If the XSL transformation is developed, then the mapping can be tested with the sample RM and SITREP files [[BR]] === Write blueprint to add transliteration to text entry controls === '''''Migrated'''''[[br]] Difficulty : Nuwan: '''MEDIUM''', Pat: '''HARD'''[[br]] Proposed by: [http://lirneasia.net/profiles/nuwan-waidyanatha | Nuwan][[BR]] '''Specific : ''' For local language text entry one can use a native language keyboard with native unicode character set or use transliteration to allow entering the native word phonetically. for example with [http://www.google.com/ime/transliteration/ | Google Transliteration Beta] or other plug-in like [ http://www.ucsc.cmb.ac.lk/ltrl/services/feconverter/t1.html | USCS's Real-Time Unicode Converter] [[BR]] '''Measurable : ''' Users in Sri Lanka, for example, prefer Sinhala or Tamil languages. Making the option for them to turn on transliteration in Sahana to enter critical information in the local language is an important usability aspect. [[BR]] '''Attainable : ''' [[BR]] Step 1 :: research the available Python/web2py transliteration engines [[BR]] Step 2 :: trial/experiment with each one to determine the best [[BR]] Step 3 :: develop a set of recommendations for embedding a generic transliteration engine in Eden [[BR]] Step 4 :: discuss the recommendations with Sahana community [[BR]] Step 5 :: document the specifications for developing the agreed on transliteration functionality [[BR]] '''Relevant : ''' In community-based disaster management literacy skills including English is poor. Important to develop flexible usable software for inclusiveness [[BR]] '''Time-bound : ''' No more than a few days to research the Internet. Another several days to discuss and finalize on the design specifications. '''Evaluate : ''' The recommended design would be discussed by the community to evaluate its workability. [[BR]] '''Reevaluate : ''' Validate the final specifications document. [[BR]] === Provide UTF8 names for Locations exported from GADM in Vietnam === ''''Migrated'''''[[br]] Mentor: Fran * Original Source for Boundaries: [http://gadm.org GADM] * L1 names cleaned-up: [http://eden.sahanafoundation.org/raw-attachment/wiki/Projects/GCI/VNM_L1.csv VNM_L1.csv] * L2, L3 & L4 names which need cleaning: [http://eden.sahanafoundation.org/raw-attachment/wiki/Projects/GCI/VNM_adm4.7z VNM_adm4.7z] (Focus on L2 1st, then L3, then finally L4 if you can) * Potential Source for UTF-8 Names: [http://en.wikipedia.org/wiki/Vietnam#Administrative_subdivisions Wikipedia] == '''Training''' == === Construct FAQ === '''''Not migrated'''''[[br]] * 2 x Construct FAQ (From personal experience, mailing list, IRC) === Produce Video screen casts from book chapters === '''''Migrated'''''[[br]] * http://en.flossmanuals.net/sahana-eden/configuration * http://en.flossmanuals.net/sahana-eden/customisation * http://en.flossmanuals.net/sahana-eden/building-a-new-application == '''Translation''' == === Translating key phrases === '''STUDENTS''': Please remember to update the table: '''''Files in progress and completed''''' as soon as you are assigned the task and when you have completed '''''Migrated'''''[[br]] Each task consists of translating 1 or 2 (depending on the difficulty of the task) language file (a spreadsheet ~150 phrases), see the attachments at the bottom of this page, masterLanguageFile1.csv, masterLanguageFile2.csv and masterLanguageFile3.csv (and more). This file needs to be translated to the target language, with the translation in the target column. Each phrase in the three "master" files is related to data displayed on screens on the default home page, the registration page, the login and out process, and the personnel profile. There are additional strings for more specialized pages, but we would like students to try the "master" sets first. If there are phrases which you don't understand, for example incomplete sentences, please identify these separately from your translation when you submit your task. This may indicate poor internationalization of the phrases in the code which our team will need to improve. These strings can still count towards your total. Depending upon the target language some of these phrases have already been translated but you don't need to worry about what has and what has not been translated for the three "master" files. For the remaining files, please check the table below to see which files are already being translated, so we can avoid duplication. When you select files to work on, add them to this table (if you have a Trac account) or ask a mentor to do that, and also list the files in your Melange task. When these phrases are being translated the meaning also needs to be retained. If you are unsure of the meaning, contact a mentor via IRC for assistance, and continue with other phrases, until you get a reply. Do not use an automatic translation service. Some phrases contain a special sequence as follows: %x or %(some_name)x where x is some single letter (most commonly an s). These are going to be replaced by data that is specific to the user or to what they're working on, e.g. %(name) might be replaced by the user's name. These sequences must be retained within the translated string exactly as written, but the order within the phrase may change, depending on the word order of the target language. Again, if you are unsure contact a mentor via IRC for assistance. To complete a task you should make an effort to translate all phrases but occasionally it is not possible to translate some phrases. A task will be accepted so long as more than 90% have been translated and a reasonable explanation, of why the untranslated phrases were left, is provided. The final say on this is will be left up to the mentor. Please note that you should submit files encoded as UTF-8 & be sure that the CSV opens correctly in !OpenOffice or !LibreOffice. (Excel has had problems with loading and exporting these files correctly.) Windows users can use [http://notepad-plus-plus.org Notepad++] to check/convert encodings. PLEASE STATE WHICH LANGUAGE YOU WISH TO TRANSLATE INTO WHEN YOU CLAIM THIS TASK. When all three main files have been translated for the language of your choice, you can then select one of the many appendix files. '''STUDENTS''': Please remember to update the table: '''''Files in progress and completed''''' as soon as you are assigned the task and when you have completed '''''Files in progress and completed:''''' ||Language ||Who ||Files || Link to Melange || ||Bulgarian ||guru kumar ||Incomplete ||http://www.google-melange.com/gci/task/view/google/gci2011/7121342 || ||Bulgarian ||Mihail Yanev ||.rar archive 1,2 & 3 ||http://www.google-melange.com/gci/task/view/google/gci2011/7134499 || ||Bulgarian ||Magyyy ||1 ||http://www.google-melange.com/gci/task/view/google/gci2011/7242252 || ||Bulgarian ||Desi ||MasterFileAppendium28 & 13 || http://www.google-melange.com/gci/task/view/google/gci2011/7232300 || ||Bulgarian ||Valery Poliakov ||MasterFileAppendium1 ||http://www.google-melange.com/gci/task/view/google/gci2011/7229257 || ||Bulgarian ||Magyyy ||MasterFileAppendium1 ||http://www.google-melange.com/gci/task/view/google/gci2011/7242252 || ||Bulgarian ||Magyyy ||MasterFileAppendium2 ||http://www.google-melange.com/gci/task/view/google/gci2011/7237310 || ||Bulgarian ||Mihail Yanev ||MasterFileAppendium2 ||http://www.google-melange.com/gci/task/view/google/gci2011/7237301 || ||Bulgarian ||Magyyy ||MasterFileAppendium4 ||http://www.google-melange.com/gci/task/view/google/gci2011/7238253 || ||Bulgarian ||Mihail Yanev ||MasterFileAppendium 5 & 6 ||http://www.google-melange.com/gci/task/view/google/gci2011/7238252 || ||Bulgarian ||Magyyy ||MasterFileAppendium7 ||http://www.google-melange.com/gci/task/view/google/gci2011/7237309 || ||Bulgarian ||Desi ||MasterFileAppendium28 & MasterFileAppendium13 ||http://www.google-melange.com/gci/task/view/google/gci2011/7232300 || ||Bulgarian ||Magyyy ||MasterFileAppendium9 ||http://www.google-melange.com/gci/task/view/google/gci2011/7237305 || ||Bulgarian ||Magyyy ||MasterFileAppendium22 ||http://www.google-melange.com/gci/task/view/google/gci2011/7239249 || ||Bulgarian ||Magyyy ||MasterFileAppendium23 ||http://www.google-melange.com/gci/task/view/google/gci2011/7237308 || ||Bulgarian ||Magyyy ||MasterFileAppendium10 ||http://www.google-melange.com/gci/task/view/google/gci2011/7238254 || ||Bulgarian ||Magyyy ||MasterFileAppendium17 & 20 || http://www.google-melange.com/gci/task/view/google/gci2011/7229259 || ||Bulgarian ||Plamen ||MasterFileAppendium24 || http://google-melange.appspot.com/gci/task/view/google/gci2011/7247250 || ||Bulgarian ||Plamen ||in progress MasterFileAppendium12 & MasterFileAppendium18 || http://google-melange.appspot.com/gci/task/view/google/gci2011/7230268 || ||Bulgarian ||Magyyy ||MasterFileAppendium8 & 25 || http://www.google-melange.com/gci/task/view/google/gci2011/7242253 || ||Bulgarian ||Magyyy ||MasterFileAppendium11 & 14 ||http://www.google-melange.com/gci/task/view/google/gci2011/7231248 || ||Bulgarian ||Penchev ||MasterFileAppendium17 & 18 ||http://www.google-melange.com/gci/task/view/google/gci2011/7228298 || ||Bulgarian ||Magyyy ||MasterFileAppendium19 & 21 ||http://www.google-melange.com/gci/task/view/google/gci2011/7232304 || ||Bulgarian ||Penchev ||MasterFileAppendium15 & 16 ||http://google-melange.appspot.com/gci/task/view/google/gci2011/7231247|| ||Bulgarian ||Alex ||MasterFileAppendium8 || http://www.google-melange.com/gci/task/view/google/gci2011/7239248 || ||French ||Deep_Sky28 ||masterLanguageFile1& 3 ||http://www.google-melange.com/gci/task/view/google/gci2011/7234260 || ||French ||Deep_Sky28 ||In progress - masterLanguageFile2 & MasterFileAppendium1 ||http://www.google-melange.com/gci/task/view/google/gci2011/7235241 || ||French ||laurion ||MasterFileAppendium2 & 3 -- completed ||http://www.google-melange.com/gci/task/view/google/gci2011/7235242 || ||French ||laurion ||MasterFileAppendium4 & 9 -- completed||http://www.google-melange.com/gci/task/view/google/gci2011/7234261|| ||French ||laurion ||MasterFileAppendium6 & 7 -- completed ||https://www.google-melange.com/gci/task/view/google/gci2011/7244248|| ||French ||adrian47 ||MasterFileAppendium27 & 28 -- in progress ||http://www.google-melange.com/gci/task/view/google/gci2011/7246242|| ||French ||dragoshox||MasterFileAppendium15 & MasterFileAppendium16||https://www.google-melange.com/gci/task/view/google/gci2011/7243249 || ||German ||Nostraa ||Completed - Master Languages files 1 & 2||http://www.google-melange.com/gci/task/view/google/gci2011/7231249 || ||German ||Nostraa ||Completed - Master Language 3 & Appendium 1 ||http://www.google-melange.com/gci/task/view/google/gci2011/7234259 || ||Greek ||Giannis Konstantinidis ||Completed masterLanguageFile1.csv & masterLanguageFile2.csv ||http://www.google-melange.com/gci/task/view/google/gci2011/7239252 || ||Greek ||Giannis Konstantinidis ||Completed masterLanguageFile3.csv & MasterFileAppendium1.csv ||http://www.google-melange.com/gci/task/view/google/gci2011/7230265 || ||Greek ||Giannis Konstantinidis ||Completed MasterFileAppendium2.csv & MasterFileAppendium3.csv ||http://www.google-melange.com/gci/task/view/google/gci2011/7233294 || ||Greek ||Giannis Konstantinidis ||Completed MasterFileAppendium4.csv & MasterFileAppendium5.csv ||http://www.google-melange.com/gci/task/view/google/gci2011/7233298 || ||Hindi ||aki ||1,2,3&MasterFileAppendium28WIP MasterFileAppendium27 &MasterFileAppendium26 ||http://www.google-melange.com/gci/task/view/google/gci2011/7239253 http://www.google-melange.com/gci/task/view/google/gci2011/7246243 http://www.google-melange.com/gci/task/view/google/gci2011/7232301 || ||Hindi ||Snowy ||2 & 3 & ? ||http://www.google-melange.com/gci/task/view/google/gci2011/7234263 || ||Hindi ||Abhishek ||Hindi Translations all complete || || ||Italian||barbum94 || masterLanguageFile1 and 2 ||https://www.google-melange.com/gci/task/view/google/gci2011/7245255|| ||Polish ||programer1234 || 1, 2, & 3 ||http://www.google-melange.com/gci/task/view/google/gci2011/7121342|| ||Polish ||Eternity ||MasterFileAppendium1 ||http://www.google-melange.com/gci/task/view/google/gci2011/7228297 || ||Polish ||Eternity ||MasterFileAppendium2 ||http://www.google-melange.com/gci/task/view/google/gci2011/7237307 || ||Polish ||Eternity ||MasterFileAppendium3 ||http://www.google-melange.com/gci/task/view/google/gci2011/7237306 || ||Polish ||Eternity ||MasterFileAppendium4 ||http://www.google-melange.com/gci/task/view/google/gci2011/7232303 || ||Polish ||Eternity ||MasterFileAppendium5 ||http://www.google-melange.com/gci/task/view/google/gci2011/7232303 || ||Polish ||Eternity ||masterLanguageFile2 ||http://www.google-melange.com/gci/task/view/google/gci2011/7228297 || ||Polish ||programer1234 ||MasterAppendium23.csv ||http://www.google-melange.com/gci/task/view/google/gci2011/7230266 || ||Punjabi ||Angad ||Incomplete - follow-up needed(?) ||http://www.google-melange.com/gci/task/view/google/gci2011/7134498 || ||Punjabi ||Abhishek ||In progress || || ||Romanian ||noob64887 ||MasterFileAppendium23 & MasterFileAppendium24||http://www.google-melange.com/gci/task/view/google/gci2011/7233297 || ||Romanian ||laurion ||MasterFileAppendium7.csv, MasterFileAppendium20 -- done |||| ||Romanian ||Tudorica Andrei ||2 ||http://www.google-melange.com/gci/task/view/google/gci2011/7121342 || ||Romanian ||Deep_Sky28 ||masterLanguageFile1 ||http://www.google-melange.com/gci/task/view/google/gci2011/7247256 || ||Romanian ||Deep_Sky28 ||masterLanguageFile3 & MasterFileAppendium1 ||http://www.google-melange.com/gci/task/view/google/gci2011/7239251 || ||Romanian ||Deep_Sky28 ||MasterFileAppendium2 & 3 ||http://www.google-melange.com/gci/task/view/google/gci2011/7247255 || ||Romanian ||Deep_Sky28 ||MasterFileAppendium8 & MasterFileAppendium12 ||http://www.google-melange.com/gci/task/view/google/gci2011/7233296 || ||Romanian ||Deep_Sky28 ||MasterFileAppendium17 & 18 ||http://www.google-melange.com/gci/task/view/google/gci2011/7242254 || ||Romanian ||Deep_Sky28 ||MasterFileAppendium19 & 28 ||http://www.google-melange.com/gci/task/view/google/gci2011/7228302 || ||Romanian ||Deep_Sky28 ||MasterFileAppendium25 & 26 - In Progress ||http://www.google-melange.com/gci/task/view/google/gci2011/7240248 || ||Romanian ||laurion ||MasterFileAppendium6 & 14 ||https://www.google-melange.com/gci/task/view/google/gci2011/7233299 || ||Romanian ||AlexMetalhead ||MasterFileAppendium11 ||http://www.google-melange.com/gci/task/view/google/gci2011/7237303 || ||Romanian ||AlexMetalhead ||MasterFileAppendium13 ||http://www.google-melange.com/gci/task/view/google/gci2011/7238249 || ||Romanian ||laurion ||MasterFileAppendium19 & 21 ||http://www.google-melange.com/gci/task/view/google/gci2011/7235239 || ||Romanian ||laurion ||MasterFileAppendium4 & MasterFileAppendium5 -- done ||http://www.google-melange.com/gci/task/view/google/gci2011/7239254 || ||Romanian ||laurion ||MasterFileAppendium9 & MasterFileAppendium10 -- done ||http://www.google-melange.com/gci/task/view/google/gci2011/7228301 || ||Romanian ||laurion ||MasterFileAppendium15 & MasterFileAppendium16 -- in progress ||http://www.google-melange.com/gci/task/view/google/gci2011/7234262 || ||Romanian ||nina ||MasterFileAppendium21 & 22 ||https://www.google-melange.com/gci/task/view/google/gci2011/7233299 || ||Romanian ||Stirbu Ciprian||MasterFileAppendium21 & 22 - Completed||http://www.google-melange.com/gci/task/view/google/gci2011/7228303 || ||Romanian ||Andrei Parastache ||MasterFileAppendium25 & 26 ||http://www.google-melange.com/gci/task/view/google/gci2011/7240248 || ||Romanian ||Stirbu Ciprian||MasterFileAppendium27 & 19 - Completed||http://www.google-melange.com/gci/task/view/google/gci2011/7233300 || ||Romanian ||Stirbu Ciprian||MasterFileAppendium23 & 24||http://www.google-melange.com/gci/task/view/google/gci2011/7230269|| ||Romanian ||Stefana||MasterFileAppendium1 & 2 - In Progress||http://www.google-melange.com/gci/task/view/google/gci2011/7237302|| ||Romanian ||Diana (REMOVED)||MasterFileAppendium23 & 24 - in progress||http://www.google-melange.com/gci/task/view/google/gci2011/7233297 || ||Russian ||Stefani Stoyanova||MasterFileAppendium1 & MasterFileAppendium21 || http://www.google-melange.com/gci/task/view/google/gci2011/7228299 || ||Serbian ||guru kumar ||Incomplete - follow-up needed(?) ||http://www.google-melange.com/gci/task/view/google/gci2011/7121342 || ||Slovak ||Marek Matejka ||1, 2 & 3 ||http://www.google-melange.com/gci/task/view/google/gci2011/7134498 || ||Tamil ||Sriram ||In progress ||http://www.google-melange.com/gci/task/view/google/gci2011/7247250 || ||Turkish ||Mtmecax ||Incomplete - follow-up needed(?) ||http://www.google-melange.com/gci/task/view/google/gci2011/7121342|| '''''Note to mentors:''''' * You can check the format of submitted csv files by importing them into OpenOffice or LibreOffice. Set the separator to comma and the quoting to double quotes. * Check that each line splits into two columns. * To check that the file is UTF-8 encoded, you can open it in to Notepad++ or gedit, or read it with Python codec. In a Python shell:[[br]] {{{ import codecs f = codecs.open("submitted_file.csv", "r", "utf-8") i = f.read() }}} That will throw an exception if the file is not UTF-8. * If there are rows without a translation, ask the student what the problem was with those rows. * 90% successful translations is acceptable. * Try to find someone who speaks the language to do a spot-check on quality. === Review code for quality of localized strings === '''''Migrated'''''[[br]] All strings which appear in the user interface, such as in menus and forms and help info, should be "internationalized" -- marked to make them available to be translated into different languages. This is done by putting the strings inside of {{{T( )}}}, e.g. {{{T("This string will be written into language files to be translated")}}}. The strings in {{{T( )}}} are keys that are used to look up translated strings. By convention, the key strings are in US English. For GCI, you will need to review all the internationalized strings in the model and controller files for a single module, eg: * {{{controllers\gis.py}}}, {{{models\gis.py}}}, and {{{views/gis/*.html}}} * {{{controllers\hrm.py}}}, {{{models\hrm.py}}}, and {{{views/hrm/*.html}}} * {{{controllers\default.py}}} and {{{views/default/*.html}}} Check for: * Incomplete or cut-off sentences in the translation strings * Avoid concatenation of localized strings with variables - use %s or %(key)s instead. That is, instead of:[[br]] {{{T("My name is ") + name}}}[[br]] use this:[[br]] {{{T("My name is %s") % name}}}[[br]] And instead of:[[br]] {{{T("The item ") + item + T(" is not available in ") + location.name}}}[[br]] use this:[[br]] {{{T("The item %(item)s is not available in %(place)s.") % {"item": item, "place": location.name}}}}[[br]] This is better because the word order is not the same in all languages -- in the second form, the translator can move where the variables are inserted. * Look for fields without a label - e.g. Field("fieldname") as these cannot be localised. * Look at strings that have not been wrapped in {{{T( )}}} to see if they ought to be. But be cautious: Not all strings need to be localized, and some definitely should not be: * Strings that are used as keys in dicts, e.g. `{"this_is_a_key": 5}`, should not be localized. * A string that is intended to be in one specific language should not be localized (e.g. the language names in the language menu in {{{deployment-templates/models/000_config.py}}}). * Consider improving consistency of wording / terminology - don't use different strings that mean the same thing, e.g. if there is {{{T("My name is")}}} in one place, avoid using {{{T("I am called")}}} somewhere else. You will need to download a working branch of Sahana Eden code for this task and push the changes you make to your own branch on Launchpad. Please focus on modules which are [https://github.com/flavour/eden/blob/master/deployment-templates/models/000_config.py#L427 enabled by default]. Modules done: || Student || Module || Status || || Abhishek || vol, assessment , Survey || Done || || vlin || inventory || Done || == '''User Interface & Usability''' == === Provide feedback on Workflows in Sahana Eden === '''''Not migrated'''''[[br]] === Design a better homepage for Sahana Eden (wireframes) === '''''Not migrated'''''[[br]] === Design a (better) GUI for the CAP broker === '''''Migrated'''''[[br]] Difficulty : Nuwan:'''MEDIUM''', Pat:'''HARD''' Proposed by: [http://lirneasia.net/profiles/nuwan-waidyanatha | Nuwan][[BR]] This is for Common Alerting Protocol (CAP) with capabilities for multi-language alerting and multi-media delivery. Use Agasti CAP Broker as a starting point. (This needs clarification. Eden does not have a CAP broker that I know of. And the current Agasti CAP support is in Krakatoa, not Mayon, so needs to be ported there too. So before there can be a GUI, there would need to be a port or implementation of a CAP broker, no? --Pat) '''Specific : ''' Build a [http://sixrevisions.com/user-interface/website-wireframing/ | wireframe] with functionality for the [http://www.incident.com/cookbook/index.php/Welcome_to_the_CAP_Cookbook | Common Alerting Protocol] messaging broker. It should follow a publisher subscriber model. Some specifications are in the [http://lirneasia.net/wp-content/uploads/2009/05/Sahana-CAP-Msg-Mod-v0.2.pdf | CAP Software Requirement Specifications] [[BR]] '''Measurable : ''' CAP messaging broker is becoming a much sort after tool by many organizations. It is an ITU recommendation. Such tool can be easily adopted by governments and emergency coordination agencies for managing their alerting and situational awareness. [[BR]] '''Attainable : ''' [[BR]] Step 1 :: Study the Sahana Agasti CAP Broker [[BR]] Step 2 :: document the requirements [[BR]] Step 3 :: develop the wireframe to provide the required functionality [[BR]] Step 4 :: run the wireframe through a set of test scenarios, to be documented as stories [[BR]] '''Relevant : ''' Part of the Sahana interoperability policy. [[BR]] '''Time-bound : ''' Given that the Sahana Agasti CAP broker has much of the functionality it should not take too long to develop the wireframe. [[BR]] '''Evaluate : ''' Requirements will be discussed with the Sahana community and a prototype wireframe will be presented.[[BR]] '''Reevaluate : ''' Once the wireframe is built on the concluded requirements that will be put to test through the scenario based testing. [[BR]] === Write a blueprint for a GUI (web) tool to build and test XSL files === '''''Migrated'''''[[br]] Difficulty : Nuwan:'''MEDIUM''', Pat:'''HARD'''[[br]] Proposed by: [http://lirneasia.net/profiles/nuwan-waidyanatha | Nuwan][[BR]] Although this is classified as a documentation task, familiarity with coding, and especially with XSL transformations, will be helpful. '''Specific : ''' Given that Sahana is getting heavy on XML there should be a tool to develop text, html, etc. outputs based one's own XSL transformation file. The user should be presented with the option to select the XML file; i.e. tags and schema, then include/exclude those tags with inserts of fixed text. The user should be able to preview the output. The built XSL file can then be stored to be used for a particular function. In this case it would be producing CAP message based user specific outputs for email, web, rss, twitter, google, etc. [[BR]] '''Measurable : ''' This would allow super users to develop implementation specific CAP content delivery outputs. [[BR]] '''Attainable : ''' [[BR]] Step 1 :: research existing available solutions to get a feel for the type of functionality needed [[BR]] Step 2 :: document and discuss the set of requirements with Sahana community [[BR]] Step 3 :: develop the wireframe and test it with test scenarios [[BR]] Step 4 :: document the set of specifications [[BR]] '''Relevant : ''' The Irrigation department may want the CAP messages to be formed in one way in an email compared with that of the Health department. A rapid XSL development tool will put the burden of building and maintaining those finals in the hands of the users and implementers and not engineers. [[BR]] '''Time-bound : ''' [[BR]] '''Evaluate : ''' design requirements and settling on them. [[BR]] '''Reevaluate : ''' wireframe with the test scenarios [[BR]]