[[TOC]] = Grace Hopper Celebration Open Source Day 2014 = The [http://gracehopper.org/open-source-day/ Grace Hopper Open Source Day] is intended to introduce participants to rapid development of FOSS applications in a collective coding setting. == Ready, set, go! == === Install the Eden development environment === '''Facilitators''': We encourage you to install a developer's environment on your computer prior to the event. '''Participants''': While we will be able to help you install the software on October 8 OSD, it is never too early to get started. Please visit our developer’s page for instructions on how to set up a developer’s environment. [[Develop]] If you want to skip installing all the tools separately here is a binary that will work on Windows machines. [http://eden.sahanafoundation.org/Eden-Python-Installer-Dev.exe] You can install a virtual machine -- under construction. You can also check out our demo [http://demo.eden.sahanafoundation.org/] === The IRC channel === The Eden IRC channel is #sahana-eden on freenode. If you don't already have an IRC client, the easiest way to connect is to use freenode's [[https://webchat.freenode.net| web chat client]]. You can also join the Eden group [https://groups.google.com/forum/#!forum/sahana-eden] Feel free to introduce yourself to the community before GHC Open Source Day. === Need Help? === If you have questions about setting up a Sahana Eden developer's environment or about working with the Sahana Software Foundation at the Grace Hopper Open Source Day or anything else related to the event, please feel free to contact louiqa [at] umiacs [dot] umd [dot] edu -- ghc [at] sahanafoundation [dot] org. == GHC 2014 Project: Common Alerting Protocol (CAP) DESIGN/BLUEPRINT == === Link to the details === [https://docs.google.com/document/d/14ofLJx3IfU1xNEHTadwRGfQ9Cwy12Tf5y6lj4iGDT2k/edit#heading=h.mzqreklykjnf] == GHC 2014 Project: Common Alerting Protocol (CAP) UI CODING == == GHC 2014 Project: Improvements to Eden Pivot-Tables and Charts and Migration to D3 UI == === Skills Needed === This set of OSD tasks involve web development, to export charts and their data in popular download formats. For the client-side charts, familiarity with javascript and jQuery is important. Other helpful but not required areas are D3 / calls to JSON web services. Some of the (harder) server-side tasks require skills with Python. Familiarity with Web2Py and database queries will help. === Link to all the gory details === [https://docs.google.com/document/d/1_yTlmn4eeMnLFZZ57R8jbejo3ISIcipBZgHZord_dQ4/edit] == MORE PROJECTS == === Budget === The ARC template has some prepop data to demonstate the little we have so far. There is a Demo server (which is out of date, although no work has been done on the ARC template since): http://arcdemo.aidiq.com/eden/budget/budget/1/timeplot?component=allocation Can Login with either of these accounts: https://github.com/flavour/eden/blob/master/private/templates/ARC/Demo/users.csv Timeplot Blueprint is here: http://eden.sahanafoundation.org/wiki/BluePrint/TimePlot Budget timeplot options are configured here: https://github.com/flavour/eden/blob/master/modules/s3db/budget.py#L1316 Add a feature to show when the budget is likely to be exceeded. Show the impact of tweaking the resources especially retiring resources early. Feature to drill-down into this budget & edit options. === !SituationReport (!SitRep) Aggregation === We currently have a very basic !SitRep module in Eden where we can write a RichText report &/or add a file attachment. There are cases where the SitReps for different Districts should be aggregated at the next higher level (e.g. Province or Division). For the Rich-Text, I see this as creating a section for each District with a Section Header added and all the Heading levels taken down a notch: H1s -> H2s, etc SitReps can also include hard numbers though, like #affected, #dead, #wounded, #missing, #displaced, # staff, #volunteers, # vehicles, #shelters, etc then obviously these should be totalled in the aggregated report. So, we need a way to store these in the SitRep: I would suggest a KeyValue system: doc_sitrep_tag. This would be like the ones for gis_location (amongst others): https://github.com/flavour/eden/blob/master/modules/s3db/gis.py#L1254 Note how these are added to the parent resource as a 'Component': https://github.com/flavour/eden/blob/master/modules/s3db/gis.py#L386 This model should be added to the SitRep class (I don't think we need a separate class here): https://github.com/flavour/eden/blob/master/modules/s3db/doc.py#L664 For UI, this could be a Tab, as it is for gis_location, or could be an Inline form. I think the Inline form is better, generally better UX & works better for when the sitrep is itself on a tab (e.g. of the Event or Org) Inline form: https://github.com/flavour/eden/blob/master/modules/s3db/doc.py#L715 (Can add KV like Files) Tabs: https://github.com/flavour/eden/blob/master/modules/s3db/gis.py#L5427 (Need to add an rheader like this to SitReps) Ideally XSLT would be provided to import the Tags: https://github.com/flavour/eden/blob/master/static/formats/s3csv/event/event.xsl [Example of a KV in an XSLT file] https://github.com/flavour/eden/blob/master/static/formats/s3csv/doc/sitrep.xsl [File which needs modifying] I have provided an initial UI for the aggregation: https://github.com/flavour/eden/blob/master/private/templates/ARC/config.py#L841 i.e. there is a hook for a new 'consolidate' method which is called with the selected sitreps. The consolidate method needs writing. It would look something like this: https://github.com/flavour/eden/blob/master/modules/s3db/hrm.py#L3995 == MORE STUFF == === Join the !WebEx session === We'll go over some basics by screen sharing. Join this session: https://tacops.webex.com/tacops/j.php?ED=247916387&UID=481898277&PW=NOTIzMzM3NTlj&RT=MiM3 === Attend our Virtual Training September 30 === We are holding a [http://sahanafoundation.org/virtual-sahana-eden-training-for-new-developers-september-30th/ virtual training for new Sahana Eden software developers] on September 30 at 7:30 PM EDT. This is timed and designed for participants at the Open Source Day. For those not able to attend this session, please see our [http://sahanafoundation.org/programs/training training page] for links to all training materials. === Get an account on Github === ''If you're in a hurry to get on with things, you can leave this til later, when you're ready to upload something to Github.'' Otherwise, please visit: DeveloperGuidelines/Git === Sign a Contributor License Agreement === The Sahana Software Foundation requires a [http://wiki.sahanafoundation.org/doku.php/foundation:start#contributor_license_agreement contributor license agreement] from anyone contributing code to the Sahana codebases. This is a simple agreement that ensures our enduring right to redistribute any code you may have written without restriction. You may [http://wiki.sahanafoundation.org/lib/exe/fetch.php/foundation:ssf_cla.pdf download] and return a form prior to the event or complete a paper copy at the Open Source Day. You may still participate with Sahana even if you do not wish to sign a CLA, but we will not be able to merge any code patches you submit for integration with our project. === Alternative Projects === Sahana Eden has tasks for persons with a range of skills. Those with some working knowledge of the Python programming language will be able to easily get started working on Sahana Eden to contribute to bug fixes or feature enhancement. Those with advanced Python skills can consider customization or developing new modules. Database design and SQL skills are also useful. For those wishing to work on Sahana Eden independently of the facilitated task of working on the Transport Module, we maintain lists of tasks for new contributors to work on. These may be found on our Eden wiki on our main projects page at [[Projects]]. There are listed projects in several categories, including: * [[Projects/Non-Coding| non-coding projects]] * [[Projects/Design| design projects]] * [[Projects/Infrastructure| infrastructure projects]] * [[Projects/Advanced| advanced coding projects]] The non-coding and basic coding projects are usually most appropriate for tackling during events like codeathons. === Comments ===