CSC/ECE 517 Spring 2014/oss S1402 jyy: Difference between revisions
No edit summary |
No edit summary |
||
Line 3: | Line 3: | ||
= Background = | == Background == | ||
Sahana Eden is an open source software project that provides effective solutions for critical humanitarian needs management either prior to or during a crisis (mainly disasters).<ref>http://sahanafoundation.org/products/eden/</ref> This platform has a rich feature set which can be rapidly customized to adapt to existing process and integrate with existing systems. | Sahana Eden is an open source software project that provides effective solutions for critical humanitarian needs management either prior to or during a crisis (mainly disasters).<ref>http://sahanafoundation.org/products/eden/</ref> This platform has a rich feature set which can be rapidly customized to adapt to existing process and integrate with existing systems. | ||
Line 11: | Line 11: | ||
Sahana Eden is supported by Sahana Software Foundation<ref>http://sahanafoundation.org/about-us/</ref> whose mission it to save lives by providing information management solutions that enable organizations and communities to better prepare for and respond to disasters. This is a voluntary community consisted of disaster management practitioners, academics, companies and students. | Sahana Eden is supported by Sahana Software Foundation<ref>http://sahanafoundation.org/about-us/</ref> whose mission it to save lives by providing information management solutions that enable organizations and communities to better prepare for and respond to disasters. This is a voluntary community consisted of disaster management practitioners, academics, companies and students. | ||
= Motivation = | == Motivation == | ||
Sahana Eden provides a wide range of functionality. Its main capabilities include organization registry, project tracking, human resources management, inventory&assets tracking, assessments, shelter management, scenario&events planning, GIS mapping, messaging, etc. | Sahana Eden provides a wide range of functionality. Its main capabilities include organization registry, project tracking, human resources management, inventory&assets tracking, assessments, shelter management, scenario&events planning, GIS mapping, messaging, etc. | ||
Line 17: | Line 17: | ||
Among all the features, inventory tracking keep records of shipments; supports multiple catalogs of items; and allow organization to manage requests, donations and warehouse. However, we found that the systems does not have place where we can track some “Drop Off Sites” for collection of supplies in minor disasters or during our daily life. These drop off sites can convenience stores, supermarket, hospitals, etc. People can donate supplies to one of these sites which might be most convenient for them and the organizations then can collect useful goods themselves. After talking with one of the managers from Sahana Software Foundation, we decide to add this new feature to the system. | Among all the features, inventory tracking keep records of shipments; supports multiple catalogs of items; and allow organization to manage requests, donations and warehouse. However, we found that the systems does not have place where we can track some “Drop Off Sites” for collection of supplies in minor disasters or during our daily life. These drop off sites can convenience stores, supermarket, hospitals, etc. People can donate supplies to one of these sites which might be most convenient for them and the organizations then can collect useful goods themselves. After talking with one of the managers from Sahana Software Foundation, we decide to add this new feature to the system. | ||
= Technique Overview = | == Technique Overview == | ||
The basic Sahana Eden architecture is as follows: | The basic Sahana Eden architecture is as follows: | ||
Line 42: | Line 42: | ||
|} | |} | ||
== Web2py == | === Web2py === | ||
Web2py<ref>http://www.infoworld.com/d/application-development/pillars-python-six-python-web-frameworks-compared-169442</ref> is an open source framework, licensed under the LGPL version 3 License, developed and interpreted with the Python language and agile concept development that follows good software engineering practices. It is based on the [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model View Controller(MVC)] pattern. It also includes a Database Abstraction Layer (DAL) that writes SQL dynamically so the communication between the application and any database will be transparent. Since this framework includes various options in security, data access control, input validation on forms, it is been said that is built for security, because the framework addresses many of these issues. | Web2py<ref>http://www.infoworld.com/d/application-development/pillars-python-six-python-web-frameworks-compared-169442</ref> is an open source framework, licensed under the LGPL version 3 License, developed and interpreted with the Python language and agile concept development that follows good software engineering practices. It is based on the [http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller Model View Controller(MVC)] pattern. It also includes a Database Abstraction Layer (DAL) that writes SQL dynamically so the communication between the application and any database will be transparent. Since this framework includes various options in security, data access control, input validation on forms, it is been said that is built for security, because the framework addresses many of these issues. | ||
Line 50: | Line 50: | ||
Python<ref>https://www.python.org/</ref> was selected as a suitable high level language allowing the rapid customization of code required for each individual circumstance yet has a large number of powerful libraries available including for Geo-spatial Information Systems (GIS).<ref>http://www.gis.usu.edu/~chrisg/python/2009/</ref> | Python<ref>https://www.python.org/</ref> was selected as a suitable high level language allowing the rapid customization of code required for each individual circumstance yet has a large number of powerful libraries available including for Geo-spatial Information Systems (GIS).<ref>http://www.gis.usu.edu/~chrisg/python/2009/</ref> | ||
== S3 Framework == | === S3 Framework === | ||
The Sahana Eden Software Platform(S3) has been built around a Rapid Application Development (RAD) Framework.<ref>http://en.flossmanuals.net/sahana-eden/technical-overview/</ref> This provides a high level of automation to ensure that new solutions can be quickly and effectively developed. Once a database table is defined, the Sahana Eden Framework automatically generates HTML pages to handle CRUD (Create, Read, Update, Delete) as well as Search, Map and Pivot Reports. Web Services are available to import and export in XML, CSV, JSON and EXtensible Stylesheet Language (XSL) transforms are supported to produce other data standards. | The Sahana Eden Software Platform(S3) has been built around a Rapid Application Development (RAD) Framework.<ref>http://en.flossmanuals.net/sahana-eden/technical-overview/</ref> This provides a high level of automation to ensure that new solutions can be quickly and effectively developed. Once a database table is defined, the Sahana Eden Framework automatically generates HTML pages to handle CRUD (Create, Read, Update, Delete) as well as Search, Map and Pivot Reports. Web Services are available to import and export in XML, CSV, JSON and EXtensible Stylesheet Language (XSL) transforms are supported to produce other data standards. | ||
Line 56: | Line 56: | ||
The Sahana Eden Framework has flexible authorization policies which can be configured to grant permissions for different modules, tables as well as the ability to have multiple Organizations control their own data on a single Sahana Eden installation. | The Sahana Eden Framework has flexible authorization policies which can be configured to grant permissions for different modules, tables as well as the ability to have multiple Organizations control their own data on a single Sahana Eden installation. | ||
= Design = | == Design == | ||
This is a basic relation established on the system between the place and the contact for the dropoff site. | This is a basic relation established on the system between the place and the contact for the dropoff site. | ||
Line 63: | Line 63: | ||
= Implementation = | == Implementation == | ||
= Drop Off Site Feature = | == Drop Off Site Feature == | ||
= Future Work = | == Future Work == | ||
Based on the information we have now for Drop Off Site. We plan to add a location attribute to this table so that we can map this location information to mapping feature of Sahana. | Based on the information we have now for Drop Off Site. We plan to add a location attribute to this table so that we can map this location information to mapping feature of Sahana. | ||
Line 73: | Line 73: | ||
Sahana has a fully integrated mapping functionality which allows any location-based data to be visualized on a map. What we can do is to add a layer on the map. When user want to view drop off site information, one can select "Drop off sites" label besides the map, then he will see some marked location on map which indicates available sites. When we click on these marked places, information about the sites, including detailed address and contact number will be available for users in a small text field. | Sahana has a fully integrated mapping functionality which allows any location-based data to be visualized on a map. What we can do is to add a layer on the map. When user want to view drop off site information, one can select "Drop off sites" label besides the map, then he will see some marked location on map which indicates available sites. When we click on these marked places, information about the sites, including detailed address and contact number will be available for users in a small text field. | ||
= Further Reading = | == Further Reading == | ||
* [http://web2py.com/init/default/documentation] | * [http://web2py.com/init/default/documentation] |
Revision as of 14:50, 31 March 2014
This project is developed as a contribution to Sahana Software Foundation (Eden).
Background
Sahana Eden is an open source software project that provides effective solutions for critical humanitarian needs management either prior to or during a crisis (mainly disasters).<ref>http://sahanafoundation.org/products/eden/</ref> This platform has a rich feature set which can be rapidly customized to adapt to existing process and integrate with existing systems.
Sahana Eden’s features are designed to help emergency management practitioners to better mitigate, prepare for, respond to and recover from disasters more effectively and efficiently. With this logistic software, strategic planning and the deployment of efforts of human resources and supplies to victims is handled in an efficient manner. It coordinates the information of all the components required to relieve in some way the pain of the affected victims.
Sahana Eden is supported by Sahana Software Foundation<ref>http://sahanafoundation.org/about-us/</ref> whose mission it to save lives by providing information management solutions that enable organizations and communities to better prepare for and respond to disasters. This is a voluntary community consisted of disaster management practitioners, academics, companies and students.
Motivation
Sahana Eden provides a wide range of functionality. Its main capabilities include organization registry, project tracking, human resources management, inventory&assets tracking, assessments, shelter management, scenario&events planning, GIS mapping, messaging, etc.
Among all the features, inventory tracking keep records of shipments; supports multiple catalogs of items; and allow organization to manage requests, donations and warehouse. However, we found that the systems does not have place where we can track some “Drop Off Sites” for collection of supplies in minor disasters or during our daily life. These drop off sites can convenience stores, supermarket, hospitals, etc. People can donate supplies to one of these sites which might be most convenient for them and the organizations then can collect useful goods themselves. After talking with one of the managers from Sahana Software Foundation, we decide to add this new feature to the system.
Technique Overview
The basic Sahana Eden architecture is as follows:
Web Server | Apache | Other web servers can also be used, such as Cherokee. |
---|---|---|
Application | Sahana Eden | |
Web Framework | Web2py | |
Programming Language | Python & Java Script | |
Database | MySQL, PostgreSQL, or SQLite | MySQL, PostgreSQL, and SQLite are supported. Other databases should be usable without major additional work since Web2Py supplies many connectors. |
Operating System | Linux (Debian recommended) | Windows and Mac OS X are possible, but only recommended for single-user environments. |
Web2py
Web2py<ref>http://www.infoworld.com/d/application-development/pillars-python-six-python-web-frameworks-compared-169442</ref> is an open source framework, licensed under the LGPL version 3 License, developed and interpreted with the Python language and agile concept development that follows good software engineering practices. It is based on the Model View Controller(MVC) pattern. It also includes a Database Abstraction Layer (DAL) that writes SQL dynamically so the communication between the application and any database will be transparent. Since this framework includes various options in security, data access control, input validation on forms, it is been said that is built for security, because the framework addresses many of these issues.
Because Sahana Eden needs to be accessible to users at remote locations, including the public, a browser-based solution was essential. The system also needs to be able to be used on offline laptops, so it needs to run on a lightweight stack.
Python<ref>https://www.python.org/</ref> was selected as a suitable high level language allowing the rapid customization of code required for each individual circumstance yet has a large number of powerful libraries available including for Geo-spatial Information Systems (GIS).<ref>http://www.gis.usu.edu/~chrisg/python/2009/</ref>
S3 Framework
The Sahana Eden Software Platform(S3) has been built around a Rapid Application Development (RAD) Framework.<ref>http://en.flossmanuals.net/sahana-eden/technical-overview/</ref> This provides a high level of automation to ensure that new solutions can be quickly and effectively developed. Once a database table is defined, the Sahana Eden Framework automatically generates HTML pages to handle CRUD (Create, Read, Update, Delete) as well as Search, Map and Pivot Reports. Web Services are available to import and export in XML, CSV, JSON and EXtensible Stylesheet Language (XSL) transforms are supported to produce other data standards.
The Sahana Eden Framework has flexible authorization policies which can be configured to grant permissions for different modules, tables as well as the ability to have multiple Organizations control their own data on a single Sahana Eden installation.
Design
This is a basic relation established on the system between the place and the contact for the dropoff site.
We assign an organization to each drop off sites, and one organization can have different representative for each site. Both of them are many-to-one relationship<ref>http://en.wikipedia.org/wiki/Relational_database</ref>.
Implementation
Drop Off Site Feature
Future Work
Based on the information we have now for Drop Off Site. We plan to add a location attribute to this table so that we can map this location information to mapping feature of Sahana.
Sahana has a fully integrated mapping functionality which allows any location-based data to be visualized on a map. What we can do is to add a layer on the map. When user want to view drop off site information, one can select "Drop off sites" label besides the map, then he will see some marked location on map which indicates available sites. When we click on these marked places, information about the sites, including detailed address and contact number will be available for users in a small text field.
Further Reading
Reference
<references/> ---