= FOSSkriti Workshop = There was a hackfest for !SahanaPy at [http://techkriti.org/#/fosskriti-events/ FOSSkriti] on Feb 14th at 15:30 UTC This included a number of people - some were skilled programmers, some were new to this technology. Ajay was on site. Remote support was provided by Fran, Massimo, Satya, Chamindra & Dominic [nursix]. Photos: * http://picasaweb.google.com/ajuonline/SahanaPyHackfestFOSSKriti# IRC Logs: * [http://logs.qgis.org/sahana/%23sahana.2009-02-14.log #sahana] * [https://trac.sahanapy.org/attachment/wiki/FOSSkriti/sahana-classroom.log #sahana-classroom] * [https://trac.sahanapy.org/attachment/wiki/FOSSkriti/sahana-testing.log #sahana-testing] Code achievements (any more to come?): * Bug #7 fixed * Sub-menus added to Framework * Tests for Authorization == Introduction == * Introductory Presentation: Ajay Kumar [ajuonline] * http://trac.sahanapy.org/Sahana_at_FOSSkriti_2009.pdf * Brief Skype Videocall on the tracks we will cover: Fran Boon [flavour] === Getting Started === '''Note: BZR/Launchpad info is deprecated. Please use GitHub. Thanks ''Jacob, 26/11/12'''''[[BR]] * InstallationGuidelinesDeveloper ''Note this has been superseded by InstallationGuidelines.'' * Using Bzr to work on the hackfest tree... ''Note we are now using git and Github, so see InstallationGuidelines for current setup instructions.'' * {{{bzr branch lp:~mdipierro/web2py/devel web2py}}} * {{{cd web2py/applications}}} * {{{bzr branch bzr+ssh://hacker@hack.sahanapy.org/var/www/web2py/applications/sahana}}} * hack * {{{bzr add && bzr remove && bzr commit}}} * {{{bzr push bzr+ssh://hacker@hack.sahanapy.org/var/www/web2py/applications/sahana}}} * Update the working-tree & reload Apache to see the results: http://hack.sahanapy.org/cgi-bin/hackfest.py * Ignore the 500 error! * DeveloperGuidelines === How to Communicate? === * [https://lists.sourceforge.net/lists/listinfo/sahana-maindev Sahana 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] * Alternate options: [http://dimdim.com Dimdim] or [http://copilot.com CoPilot] == Tracks == * Sahana Module development: Ajay Kumar [ajuonline] * [wiki:DeveloperGuidelinesNewModule How to add a new Module?] * [wiki:BluePrintPersonRegistry Person Registry] * [wiki:BluePrint/Inventory Inventory Module] * [http://web2py.com Web2Py] framework for simple RAD web development: Massimo di Pierro [massimo] * [wiki:BluePrintFramework#Sub-menus Sub-menus] * [wiki:BluePrintRESTImplementation RESTlike CRUD controller]: * integrate tools.py's Crud Authorization * still using t2.itemize, t2.search & 1 instance of t2.delete (should be replaced, which may mean amending tools.py &/or sqlhtml.py) * rework our Audit to use tools.py's auth_events * JSON POST support * [wiki:BluePrintMany2Many Many to Many widget] * [wiki:BluePrintSynchronisation Synchronisation] * Extend the Languages support by integrating suggestions from [http://code.google.com/apis/ajaxlanguage/ GoogleTranslate] * Test _stamp_many() * Testing using Selenium: Satyakaam Goswami [satyag] * Functional Test cases will be created using [wiki:BluePrints BluePrints] * Download and install [http://seleniumhq.org/download/ Selenium IDE] * Read [wiki:DeveloperGuidelinesTesting#FunctionalTests Testing with Selenium] * [http://www.tux.org/~tbr/seleniumtesting/ Good read in order to Understand how Selenium Works ] * jQuery Enhancements: People already fluent with jQuery * Note the Production/Debug modes with compressed JS files: DeveloperGuidelinesReleaseProcess#CompressJSCSSfiles * Auto-complete widget (for when dropdowns get too long): * http://groups.google.com/group/web2py/browse_thread/thread/e1034df0091b5bfd * http://groups.google.com/group/web2py/browse_thread/thread/f6e0170273b14241 * http://www.pengoworks.com/workshop/jquery/autocomplete.htm * http://plugins.jquery.com/project/autocompletex * http://plugins.jquery.com/project/YA_AutoComplete * [wiki:BluePrintMany2Many Many to Many widget] * Advanced: Fran Boon [flavour] * if there are advanced Python developers who want a challenge then they can look at any of the BluePrints, e.g. * [wiki:BluePrintGISImportExport XML Import/Export] * [wiki:BluePrint/Reporting Data Analysis, Visualisation and Reporting] * [wiki:BluePrintGeographicInformationSystems GIS] * [wiki:BluePrintMessagingModule Messaging Module] === Preparation === * Dedicated Server (Internet accessible): Courtesy [http://www.zen.co.uk Zen Internet] * Bzr repo people can check code into * Runs code live via Apache/mod_wsgi (remote admin permitted) * CGI for restarting Apache (& updating Bzr working-tree) * [wiki:InstallationGuidelinesXen Xen environment]