Version 24 (modified by Pratyush Nigam, 13 years ago) ( diff )


Save Search & Subscription

Save Search and Subscription Functional Specifications

This is wiki page for the project -


In an event of disaster, this functionality would help a lot in terms of providing information (take the example of dissemination of information related to availability of food, shelter, hospitals etc.). The project's essential capability is to disseminate information about various aspects through various means such as email/twitter/sms. Integrating this service into Sahana system will add to the platform's capability of tackling various issues faced in emergency/disaster management.

Data Model

Saved Filters

Holds information about the search query and the parameters that are saved by the user.

Field NamePurposeDatatype/tableRequired
timestamp Keeps the track of time of creation and subsequent modifications. table
user_id The user id of the user who saved the search. FK referenced from (integer) Yes
subscribedThe subscribed status of the user to a particular saved search.booleanYes
search_varsThe advanced filters selected by the user.string (Assumption for the time being)No

P.S. - Read filter_vars in the mockups ahead as search_vars


Holds information about the subscription details.

Field NamePurposeDatatype/tableRequired
timestamp Keeps the track of last updated time. table
user_idThe user_id of the user who selects the subscription mode FK referenced from (integer)
subscribe_modeDescribes the mode(s) of subscription selected

UI Design

  • Save Search Widget - The widget for saving the search will appear on the search results page, basically it will be a button which asks the user the particular search must be saved.
  • Review of Saved Searches - A UI will be provided to view the searches that were made in the past. The user will have the option of reviewing the updated search results and delete the saved queries.
  • Widget for Subscribing - The widget for subscription will appear on the page which contains all the saved searches, basically it will be a button which asks the user the particular saved search must be subscribed/unsubscrined.
  • UI for Updating the User - There will be a separate UI for the user to view the updation for his subscribed searches. This model can be based on something like google reader where the user will click on the subscribed saved searches and then would be able to see the updates on the UI.(Refer to the mockup under 'Page containing Saved Searches and widget for subscribing -' )

Files to be modified/created


  • S3Search Module for the retrieval of filters employed by the user.
  • Addition of a save search widget in the search form.

Created Files

  • /models/
  • /controllers/
  • New files need to be created in views/ for UI.



Save Search Widget- save_search widget

Page containing Saved Searches and widget for subscribing -
The Advanced Search options are generic.

Page for viewing Updates -
This UI will show up all the subscriptions and after clicking upon them, one will be able to see the updates.


First trimester (25 April - 23 May) -

SMART GoalMeasureDue DateStatus
Exploring the S3Search module and adpc codePreparing a save search model to integrate with the S3Search module and have the basic model in place23rd May, 2011

Second trimester (24 May - 11 July) -

SMART GoalMeasureDue DateStatus
Implementing the save search data modelCompletion of /models/ part for saving searches5th June, 2011
Start UI and save search widget developmentElementary UI is in place15th June, 2011
TestingPlug the gaps and make it fully compatible with the existing code19th June, 2011
Implementing the subscription data modelCompletion of /models/ part for subscription27th June, 2011
Start UI development for subscription/updationElementary UI is in place4th July, 2011
Email sending, styling and custom frequency of notificationFeature of notifications through email is in place11th July, 2011

Third trimester (12 July - 15 August) -

SMART GoalMeasureDue DateStatus
Testing that Everything WorksPlug the gaps and make it fully compatible with the existing code17th July, 2011
Documentation and MergingCode should adhere to standard and it's merging20th July, 2011
Contingencies and PolishingReserve time for contingencies1st August, 2011

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.