CSC/ECE 517 Fall 2014/OSS S1455 ajp: Difference between revisions
No edit summary |
No edit summary |
||
Line 33: | Line 33: | ||
Our assignment is to enhance the search functionality of the 'project' field search by adding an option to search by date and order the search as "to" and "from" a a range of dates. | Our assignment is to enhance the search functionality of the 'project' field search by adding an option to search by date and order the search as "to" and "from" a a range of dates. | ||
Addition of these filters will help the user narrow her search, thereby improving the ergonomic functionality of the application. | Addition of these filters will help the user narrow her search, thereby improving the ergonomic functionality of the application. | ||
[[File:BeforeV1.JPG|thumb|center|480 px|Before adding the <code>S3DateWidget</code>]] | [[File:BeforeV1.JPG|thumb|center|480 px|Before adding the <code>S3DateWidget</code>. Option to search by date is not present]] | ||
= Solution = | = Solution = | ||
=== Implementation === | === Implementation === | ||
This requires an understanding of the application and a fairly detailed understanding of the web2py framework and the interaction of the modules. The Eden application uses special widgets known as S3 widgets for performing tasks such as date searching in addition to many other tasks. Adding an <code>S3DateWidget</code> into the module associated with the projects page display incorporated the search functionality to specify a range of dates to search from. | This requires an understanding of the application and a fairly detailed understanding of the web2py framework and the interaction of the modules. The Eden application uses special widgets known as S3 widgets for performing tasks such as date searching in addition to many other tasks. Adding an <code>S3DateWidget</code> into the module associated with the projects page display incorporated the search functionality to specify a range of dates to search from. The <code>S3DateWidget</code> had to be mapped to the correct database entry in the Date object. | ||
<br> | <br> | ||
The code was tested with test data. The projects were being filtered properly based on the start and end dates provided. If a date was not provided while creating the project, the search was not returning that result when searched on that field. For example, if one does not enter the 'State Date' while creating the project, this project will not be displayed if the search for 'Start Date' is performed. | The code was tested with test data. The projects were being filtered properly based on the start and end dates provided. If a date was not provided while creating the project, the search was not returning that result when searched on that field. For example, if one does not enter the 'State Date' while creating the project, this project will not be displayed if the search for 'Start Date' is performed. | ||
[[File:AfterV1.JPG|thumb|center|466 px|After adding the <code>S3DateWidget</code> and mapping with the database entry]] | [[File:AfterV1.JPG|thumb|center|466 px|After adding the <code>S3DateWidget</code> and mapping with the database entry.]] | ||
=== Challenges === | |||
The biggest challenge we faced was understanding the flow of code using the Web2py framework. In addition to the <code>application/controller/action</code> code flow, mapping the method calls to the particular separate modules for each controller was something that was not easy at first. Backtracking the code to obtain the database entry for the table mapping was also something that we found challenging. | |||
=== Future Scope === | |||
This project can be further extended to make further enhancements in the application, not just limited to date widgets, but also to the Business Logic and other UI enhancements. | |||
= References = | |||
1. | |||
<br> | |||
2. | |||
<br> |
Revision as of 00:22, 28 October 2014
Add filtering by date in search requests
This article is related to our work on fixing a bug in the Open Source Sahana Eden Software Foundation
Introduction
Sahana Eden is an Open Source Humanitarian Management Platform developed, managed and maintained by the Sahana Software foundation. The Sahana Software Foundation is dedicated to the mission of saving lives by providing information management solutions that enable organizations and communities to better prepare for and respond to disasters. They develop free and open source software and provide services that help solve concrete problems and bring efficiencies to disaster response coordination between governments, aid organizations, civil society and the survivors themselves.
Some of the services provided by the Sahana Software foundation are:
- Reuniting separated families through registering missing and found persons.
- Tracking and managing requests for help from individuals and organizations.
- Tracking organizations and programs responding to the disaster, including the coverage and balance in the distribution of aid, providing transparency in the response effort.
- Enabling relevant sharing of information across organizations.
Objective of our project
Our aim is to enhance the functionality of the project search module in the Sahana Eden application by adding filtering by date in the search requests.
Project
Overview
The Eden project is developed using the Web2py Web Application Framework. The web2py framework is written in python and development using this framework uses the python programming language. This framework follows the MVC architecture that is popularly used in Web Application Development.
Application
The main purpose of the application is to provide software services to organizations that are interested in helping disaster affected areas. This is achieved through the development of the Sahana Eden Humanitarian Management Platform development platform. The platform allows Organisations and Volunteers to register and add their details, along with any details about infrastructure facilities that they might have which will assist in providing help to the disaster affected areas. For example, the site administrator can add organizations and projects that that particular organization is responsible for along with the start and end dates. User can also add assets such as relief items that can be provided to victims of the disaster. Various other options are available in addition to these for coordination and communication between volunteers and organizations.
Our Assignment
Our assignment is to enhance the search functionality of the 'project' field search by adding an option to search by date and order the search as "to" and "from" a a range of dates. Addition of these filters will help the user narrow her search, thereby improving the ergonomic functionality of the application.
Solution
Implementation
This requires an understanding of the application and a fairly detailed understanding of the web2py framework and the interaction of the modules. The Eden application uses special widgets known as S3 widgets for performing tasks such as date searching in addition to many other tasks. Adding an S3DateWidget
into the module associated with the projects page display incorporated the search functionality to specify a range of dates to search from. The S3DateWidget
had to be mapped to the correct database entry in the Date object.
The code was tested with test data. The projects were being filtered properly based on the start and end dates provided. If a date was not provided while creating the project, the search was not returning that result when searched on that field. For example, if one does not enter the 'State Date' while creating the project, this project will not be displayed if the search for 'Start Date' is performed.
Challenges
The biggest challenge we faced was understanding the flow of code using the Web2py framework. In addition to the application/controller/action
code flow, mapping the method calls to the particular separate modules for each controller was something that was not easy at first. Backtracking the code to obtain the database entry for the table mapping was also something that we found challenging.
Future Scope
This project can be further extended to make further enhancements in the application, not just limited to date widgets, but also to the Business Logic and other UI enhancements.
References
1.
2.