= !SahanaPy Workout @ FOSS.in/2009 = !SahanaPy is having a week-long workout at [http://foss.in FOSS.in 2009] - [http://workouts.foss.in/2009/index.php/SahanaPy_-_a_RAD_framework_for_Emergency_Management FOSS.in Workout Wiki Page] == Description == !SahanaPy is an example of [http://en.wikipedia.org/wiki/Humanitarian-FOSS HFOSS (Humanitarian FOSS)]. It is a RAD framework for developing Emergency Management applications. [http://sahana.lk Sahana] has been used to help support most major disasters since the Indian Ocean Tsunami including localised versions for floods in India (Bihar 2008 & Andhra Pradesh/Karnataka 2009). You can check Sahana's History [http://www.slideshare.net/TalkSahana/sahana-booklet here] & [http://en.wikipedia.org/wiki/Sahana_FOSS_Disaster_Management_System here]. The core team will all be physically together in in one place for the week to really push our framework to the next level. We'll be extending a warm welcome to any Python/!JavaScript programmers who wish to join in throughout the week. We will be polishing up our back-end REST/XSLT-driven XML/JSON controller & developing new front-end UI tools - flexible layouts with advanced widgets (based on [http://extjs.com ExtJS] &/or [http://jquery.com jQuery] generated programmatically by the easy to use, lightweight & powerful [http://web2py.com Web2Py]. We'll also be looking at improving our GIS functionality using Javascript toolkits like [http://openlayers.org OpenLayers] & [http://geoext.org GeoExt]. We also should be fixing our Testing framework, based on [http://seleniumhq.org/ Selenium]. How will people benefit from attending? * Get acquainted with a new python web framework [http://web2py.com Web2Py] * Use advanced !JavaScript functionality * Get a sense of fulfilment from contributing to HFOSS == Audience, Pre-requisites == * [DeveloperGuidelines Installation, Developer & Framework Guidelines] * Participants should be familiar with Web technologies such as !JavaScript & Python Frameworks. [http://web2py.com Web2Py], [http://jquery.org jQuery] , [http://extjs.com ExtJS] , [http://openlayers.org OpenLayers]/[http://geoext.org GeoExt] experience a plus. * If people can get time to familiarise with the codebase before the session then this would be extremely helpful, but isn't required. * If there are people with skills in Usability they are welcome even without programming skills. === How to Communicate? === * [http://groups.google.com/group/sahanapy Developer Mailing list] can be used prior to & after the event. * [http://www.sahana.lk/chat IRC] allows real-time group & 1-1 communication using low-bandwidth text * Pastebin allows people to share code snippets * For jQuery/HTML: http://pastebin.me/ * For Python: http://paste.pocoo.org/ * [http://docs.google.com GoogleDocs] can be used for collaborative document authoring before copying results to this Wiki * [http://dabbleboard.com Dabbleboard] provides an Online Whiteboard for sketches * An audio channel can be added, if necessary, using [http://www.google.com/talk GTalk] or [http://skype.com Skype] * [http://trac.sahanapy.org/newticket Log tickets] here in Trac * Alternate options: [http://dimdim.com Dimdim] or [http://copilot.com CoPilot] NB If you have problems accessing wiki.sahana.lk, then add this to your hosts file: * {{{222.165.133.43 wiki.sahana.lk}}} == What are we going to do? == === Fran === 1. [DeveloperGuidelinesTips#Ext Ext] * We're starting by hand-crafting Ext pages which interact properly with the back-end. * Later we are looking to generate these programmatically to restore RAD. * Trying different approaches: 1. Add a new {{{format=ext}}} representation to the [wiki:RESTController REST controller] which uses ext versions of the default layouts which inherit from {{{layout_ext.html}}} * This seems very slow to load the different components (header, footer, content) into the Ext Viewport * Have optimised the model to reduce overheads here, but it still doesn't seem to be an optimal approach 2. Ext forms embedded inside the standard layout 1. Done: Start with the login form (downside is that browser can't save login/password) 2. Done: Need to get the Web2Py form.custom to integrate with Ext 3. [http://www.extjs.com/deploy/dev/examples/grid/row-editor.html EditorGridPanel] to replace dataTables * [http://www.extjs.com/deploy/dev/examples/grid/paging.html Paging] * [http://www.extjs.com/deploy/dev/examples/grid/grid-plugins.html checkbox & horizontal scrolling] * [http://www.extjs.com/deploy/dev/examples/grid-filtering/grid-filter-local.html Filters] 4. Growl-like notifications: {{{App.js}}} 5. Menus 6. Popups 7. Hyperlink buttons converted to Ext style 8. Could add the [http://www.webappers.com/2007/11/11/stunning-password-strength-meter-with-ext-form/ Ext.ux.PasswordMeter] to the register form :) 2. [BluePrintGeographicInformationSystems GIS] * Display Feature Details in Popups * [wiki:BluePrintGISUploadPhotos Upload Photos] - with GPX Track & use timestamps to place associated features onto the map * Make Features Editable from the Map * Export Features as GeoJSON (using [wiki:S3XRC S3XRC] with an XSLT) === Ajay & Michael === 1. [BluePrintLogistics Logistics Management Module] === Lifeeth === 1. [wiki:BluePrintOCR OCR] 2. [BluePrintMessagingModule Messaging Module] * Done: Auto-probing of Modem added to PyGSM * Get Sahana to make use of Auto-Probing * Add SMS Gateway API providers === Ideamonk === 1. Done: Finish integrating the [http://www.cosports.com/index.php/tool/tools/latlong GPS coordinate converter] into the GIS Location input form 2. Done (front-end): Multiple File Uploader for the GIS Photos 3. Done: Provide a layout which allows tables to be scrolled when they exceed the width of the display === Surya === 1. [wiki:BluePrintOCR OCR] 2. [BluePrintBackups Backups] === Newcomers === Whilst any [BluePrints BluePrint] is fine, suggestions for areas suitable for a newcomer: 1. [BluePrintVolunteer Volunteer Management Module] 2. [BluePrintAppliance Appliance] 3. [http://trac.sahanapy.org/wiki/BluePrintCSS CSS]: * Provide an Ext theme === Results === * 11 people worked on the codebase (7 of these had never touched the code before) * 4 others took the code away for study & hopefully later contribution * Some bugs were fixed & new functionality developed (OCR, Bulk Image upload with timestamp correlation from GPX track, Ext !EditableGrid, Autoprobing of GSM modems, GPS Coordinate converter, Logistics Module enhancements) * Contacts established with other projects. == Participants == * [http://twitter.com/ajuonline Ajay Kumar] (ajuonline) * [http://twitter.com/franboon Fran Boon] (flavour) * [http://twitter.com/lifeeth Praneeth Bodduluri] (lifeeth) * [http://twitter.com/nursix Dominic König] (nursix) * Michael Howden (michaelhowden) * [http://twitter.com/ideamonk Abhishek Mishra] (ideamonk) * [http://twitter.com/suryajith Suryajith Chillara] (Stattrav) * [http://twitter.com/chintal Shashank Chintalagiri] (devilsadvocate) * [http://twitter.com/subhodip Subhodip Biswas] (subhodip) * [http://twitter.com/makghosh Arindam Ghosh] (makghosh) * [http://twitter.com/skbohra Shreekant Bohra] (skbohra)