Changes between Initial Version and Version 1 of BluePrint/Dashboard

04/22/13 19:58:48 (9 years ago)



  • BluePrint/Dashboard

    v1 v1  
     1= !BluePrint: User Dashboard for Eden =
     5== Introduction ==
     6=== Brief description ===
     7Dashboard for Eden is the user interface showing a graphical presentation of the current status (snapshot) and trends of different modules/resources along with external data for quick glance and monitoring purposes , with full user customization.
     8=== Target problem ===
     9Dashboard smartly integrates and encompasses key performance indicators of different resources, thereby preventing user to navigate to different locations to summaries information and making monitoring an easy task by providing everything neede in single place.
     10=== Benefit to Sahana ===
     11Dashboard will spruce up the ability of sahana-eden to function as a great management and administration application, which is a critical
     12requirement during the time of need.
     13=== Existing solutions/prototypes ===
     14S3profile currently provides ability to configure widgets (using code) that can be used as components for dashboard.
     15Dashboard project aims to brings this configuration and customization to user domain with responsive UI/UX and at same time being as modular as possible.
     17== Stakeholders ==
     18* Sys admins
     19* End users
     20* Volunteer groups
     21* Team leader/Manager
     24For big picture of story , users won't need to go to the report section of each resource/module as dashboard will list summary related info of resources/modules.
     25Quick access to basic info will further prevent users navigating to specific module pages.
     28== User Stories ==
     29* As a non-administrative user, I want customize my home page , to choose what information is displayed on my dashboard and from what resources
     30* As an end user, I want to tweak and modify layout of my home page and save it for future access
     31* As a Team leader, I want summary of all information related to volunteers, event/incident ,persons involved in single place/window.
     32* As an administrator user, I want to monitor the status if different resources/modules along with key performance indicators within same page/window.
     34== Requirements ==
     36=== Functional ===
     37* System must be able to extract information/summary of information from various resources/modules.
     38* Ability to display combination of different type of data like data tables , graphs ,map widgets , other widgets simultaneously.
     39* Provide easy access to relevant information and resources like forms for CRUD functionality without useless navigation.
     40* Ability to select source of information to be displayed with fine level customization to choose various fields from resources.
     41* Responsive UI/UX for customization of layout
     42* Easy configuration of widgets, using both UI and code
     43* Ability to add external data sources like feeds and tweets
     44* Ability to save configuration of dashboard for later visits
     45* Ability to select predefined themes of data sources
     46* Ability to define themes to set data source combination for collection of widgets
     48=== Non-functional ===
     49* Should be accessible after successful login
     50* Should be able to link all resources/modules
     51* Must be able to load preference stored by the user
     54== Use-Cases ==
     58== Design ==
     60=== Data Model ===
     62=== Workflows ===
     63* User visits the dashboard after logging in
     64* User is presented with default dashboard if not customized or customized version if available
     65* Click create-widgets if want to add/create item to particular module/resource
     66  [[BR]]-> add required details/fields in popup/iframe window
     67  [[BR]]-> Click send/done
     68* Click add button to add a new widget
     69  [[BR]]-> select the data source
     70  [[BR]]-> configure the widget the data required
     71  [[BR]]-> preview the widget (optional)
     72  [[BR]]-> click submit
     73* Add summary/key point indicators from resources
     74  [[BR]]-> configure summary widget
     75* Add foreign data
     76  [[BR]]-> add data source
     77  [[BR]]-> choose summary format (datacharts ,tables, pie charts, histograms etc)
     78  [[BR]]-> other details for representation of widgets
     79* Drag widgets around the window to change position
     80* resize/customize other UI properties
     81* save the configuration
     83=== Wireframes ===
     85=== Technologies ===
     86* Javascript libraries for responsive UI and widget creation
     87* S3profile for configuring widgets
     88* Jquery flot graph library for summary generation(chosen over matplotlib based graphs due to easy customization and other rich features)
     89* CSS 3 for slick and clean layout
     91== Implementation ==
     92* Layout is composed of placeholders ( html5 containers for example) for different widgets , which will populate the view.
     93* Factory class for widgets will provide objects corresponding to widget requested
     94* Different subclasses of widget factory will also subclass available widget classes in S3 and take the onus of all properties/attributes of widgets
     95* Fields of requested module/resource will be presented to user to build/customize the widget.
     96* Predefined fields will prepared along with required table joins for quick widget creation.
     97  [[BR]]
     98  -> for example [volunteer name], [shipment requester] and other various fields will be predefined with their respective table joins required to fetch information.
     99* Reference to Data required by widgets will be stored in separate database for populating widgets on load.
     100* Graph and map widgets will be loaded dynamically by data that needs to plotted by fetching data on request.
     101* Layout preferences will be saved in configuration files in key value pair( can be promoted to database storage on need).
     104== References ==
     108=== Discussions ===