Changes between Version 25 and Version 26 of Projects/Advanced


Ignore:
Timestamp:
09/30/13 10:08:20 (11 years ago)
Author:
Michael Howden
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Projects/Advanced

    v25 v26  
    11[[TOC]]
    2 = Advanced Coding Projects =
    3 ''Projects for more experienced coders.''
    4 
    5 Some things to keep in mind when planning new modules or major features:
     2= Coding Projects =
     3These are bigger projects that will require more effort and commitment to compel
     4
     5Some things to keep in mind when working on these projects or planning new modules or major features:
     6 * Prepare a detailed [BluePrint/Guidelines Blue Print] design to outline your design approach for the project
     7 * Engage with the [MailingList Sahana Eden Mailing List] to share your ideas and get input on the project (not everything is documented on the wiki - but if you are committed to working on a project the community can help point you in the right direction!)
     8 * Familiarise yourself with the [DeveloperGuidelines#Framework Sahana Eden Framework] and make use of it - no need to reinvent the wheel :)
    69 * Consider what other FOSS tools exist, that could be installed alongside Eden.
    710 * Look at tools and libraries already in use in Eden, e.g. jQuery and ExtJS for UI work.
    811
    9 Fuller list of Projects being scoped:  BluePrints
    10 
    11 == [wiki:Projects/Advanced/MediaFeed Media Feed] ==
     12== Dashboards ==
     13Focal Persons: Michael Howden, Fran Boon
     14* Reusable Dashboard template
     15* User Customizable
     16* Dynamically load Dashboard components
     17* See:
     18 * http://eden.sahanafoundation.org/wiki/BluePrint/UserInterface#ModuleIndexPages
     19 * http://eden.sahanafoundation.org/wiki/BluePrint/UserInterface/Dashboard
     20 * https://docs.google.com/document/d/1EKt6lSs1d2kuyCfCM8hQZdeL2zfCJ2JKvPU-dm81TUQ/edit?usp=sharing
     21 * https://github.com/flavour/eden/blob/master/modules/s3/s3profile.py (Current implementation used in DRMP template)
     22
     23== Sahana Sunflower ==
     24Focal Persons: Michael Howden, Fran Boon
     25
     26Continue the work from the [wiki:Event/2012/Sahanathon Sahanathon] to use Sahana as a Community Management Tool to:
     27* Track volunteers
     28* Manage tasks (potentially including bugs/feature requests)
     29* Record Sahana Projects & Deployments
     30More details here:
     31* BluePrint/Sunflower
     32* http://eden.sahanafoundation.org/wiki/Event/2012/Sahanathon This would involve:
     33* Writing up Deployment Page for Sahana Sunflower
     34 * Create http://eden.sahanafoundation.org/wiki/Deployments/Sunflower
     35  * eg. http://eden.sahanafoundation.org/wiki/Deployments/Sandy/Occupy
     36 * Using Sahana as a Project Management / Bug Ticketing tool
     37* Manage Improvements to PM Tool / Sunflower
     38 * Get outstanding tasks from existing Sunflower site
     39 * Review Permissions
     40 * Settings to have new tasks automatically assigned to specific people (based on people for project / activity?)
     41 * Different types of tasks
     42 * Filter lists for different users
     43  * Users can only see
     44 * Make it simpler to log bugs
     45  * http://eden.sahanafoundation.org/ticket/1307
     46  * Less fields
     47  * No login required - but allow user to specify who’s login it in a field
     48  * Add a default link to log a bug in Sunflower - which copies the current URL to the “Source” field
     49  * Log a bug when an error is encountered
     50  * If not already logged for this bug
     51 * Ability to “vote” on tasks
     52
     53== Deployment Tools ==
     54Focal Persons: Fran Boon, ...
     55* Fabric scripts to be able to deploy Eden
     56- can extend https://github.com/lifeeth/spawn-eden
     57- select physical servers &/or Amazon EC2 account (walk-through creating keys/certs, region(s))
     58- select server roles distribution
     59- select Database (MySQL or PostgreSQL/PostGIS)
     60- select Webserver (Apache/mod_WSGI or Cherokee/uWSGI)
     61- select Template
     62- install all necessary/chosen components on the selected servers
     63- add optional co-apps, such as GeoServer &/or OptaPlanner
     64- optionally run Load Tests & then cleanup
     65* add simple UI (e.g. web2py or Tk app)
     66- this could then develop into a WebSetup app
     67
     68== Out-Of-The-Box Sahana Deployment ==
     69Focal Persons: Michael Howden, ...
     70* Modules to Enable / Configure
     71 * Volunteer Management
     72 * Staff Management
     73 * Project Management
     74 * CMS (User Updates)
     75 * Request Management
     76* Automate Test Scripts
     77* UI
     78 * Re-design Homepage
     79 * Design Menu Hierarchy to match User Stories
     80 * Design Module Index Pages / Dashboards
     81 * Design/implement new theme (Using Bootstrap/JqueryUI?)
     82
     83== Mobile Interface ==
     84Focal Persons: Michael Howden, Graeme Foster, Fran Boon
     85* Implement a responsive HTML interface for mobile devices.
     86 * Style standard CRUD + Search + Report
     87 * Possible options include Bootstrap, jQuery Mobile & Sencha
     88* Represent Menus in a meaningful way for Mobile Devices
     89
     90== Translation Support ==
     91Focal Persons: Fran Boon
     92* A translation module was developed for GSoC last year which is already in active use however it still suffers from many limitations:
     93 * BluePrint/Internationalisation#s3translate
     94* Provide a set of admin scripts (perhaps run by git commit hook?) to update Pootle with any changed strings as a merge.
     95
     96== Workflow Support ==
     97Focal Persons: Graeme Foster
     98* UI design to indicate steps in a workflow
     99* Functionality to split the completely of large forms up into smaller steps (possibly using JS?)
     100* Workflow Engine (probably beyond the scope  of GSoC - actually I think this should be the primary scope of the project GF)
     101
     102== Search ==
     103Focal Persons: Pat Tressel, Dominic König
     104* Full Text Search
     105 * e.g. using Apache Lucene
     106 * Search uploaded documents (must follow authorization rules!)
     107* Global Search
     108 * Over multiple resources (must follow authorization rules!)
     109 * Search box in the top right corner
     110
     111== Export Graphs ==
     112Export Graphs as Images. Options:
     113* using Flot: https://code.google.com/p/flot/issues/detail?id=142
     114* parallel matplotlib method (extend modules/s3chart.py)
     115* server-side webkit browser to take a screenshot (!ClimateDataPortal used this solution)
     116
     117== Optimization ==
     118Focal Persons: Dominic König
     119* Performance enhancements to handle 10,000's of records
     120 * Server-side clustering of map features with different report-style aggregate representations
     121 * Optimize Report generation (probably beyond GSoC)
     122  * Data Warehouse? (Flattened tables structure, NoSQL)
     123  * Stored Procedures?
     124
     125== Rostering ==
     126Focal Persons: Dominic König
     127* Staff/Volunteer Roster GUI
     128 * a prototype was done for GSoC 2012 which can be used as a point of reference - what was good about it? What was bad?
     129* Development of/Integration with a wCSP engine for automatic rostering
     130
     131== Automatic Test Framework  ==
     132Focal Persons: Michael Howden, Dominic König
     133See:
     134* [wiki:QA]
     135* BluePrint/Testing
     136* BluePrint/Testing/Load
     137* BluePrint/Testing/TestSuite
     138
     139Ideas
     140* Automatically create Dummy Data
     141* Extend Role Tests
     142* Run Selenium Tests & Smoke tests in multiple templates with multiple user accounts
     143* Clearer Error Messages
     144* Simplify Selenium Tests and make them easier to read and more robust.
     145* Adapt tests to meet needs of evolving CI Server (SysAdmin/ContinuousIntegration)
     146* Load Tests
     147* Selenium Test show web2py error messages
     148* Write Functional Tests using Selenium
     149* Figure out how to do unit tests against a web application.
     150
     151== Social Media ==
     152Focal Persons: Fran Boon, Michael Howden, Connie White
     153See:
     154* BluePrint/SocialMedia#Projects
     155* Projects/Advanced/MediaFeed
     156
    12157== [wiki:Projects/Advanced/Timeline Timeline] ==
    13158== [wiki:Projects/Advanced/Usability Usability] ==
     
    43188  * Means that user profile will need extending to support locales
    44189 * Replace jquery.cluetip.js with jquery.ui.tooltip.js (1.9 once released)
    45 == Test Automation ==
    46  * Write [DeveloperGuidelinesTesting#FunctionalTests Functional Tests] using Selenium
    47  * Figure out how to do unit tests against a web application.
    48   * Write unit and functional tests.
    49190
    50191== Tweet / SMS Parsing ==
     
    94235* Sync with online instance (auto-set up)
    95236
    96 == Misc. Projects ==
     237== Prepopulate ==
     238* Migrate initialization data from zzz_1st_run.py to prepopulate
     239
     240== Other Ideas ==
    97241To be elaborated on later:
    98242 * User Statistics
    99243
    100 == Prepopulate ==
    101 * Migrate initialization data from zzz_1st_run.py to prepopulate
    102 
    103 
     244Fuller list of Ideas being scoped:  BluePrints
    104245
    105246----