Crappyengineering

From mn/ifi/inf5750
Revision as of 16:54, 24 November 2016 by Chrisbau@uio.no (talk | contribs)

Jump to: navigation, search

Overview

Project C

Social integration with Facebook and Twitter using their respective APIs to share favourites of maps, charts and pivot-tables.

We will do this by making a Webapp

Group members

  • Christopher Bauge (chrisbau@mail.uio.no)
  • Fredrik Hov (freh@mail.uio.no)
  • Mathias Næss (mathiana@mail.uio.no)

Milestones

Create page - Check

Milestone 1: October 28 [Pending]

  • Document features and architecture on Wiki
  • Show understanding of your project task

Summary of requirements

  • Get app framework up and running
  • Pull data from API, for maps, charts and tables. HTML to canvas for easily shareable tables.
  • Implement share to Facebook and Twitter

Features and Architecture

The project has changed as of 26.10.2016, and no longer includes extending the core messaging function to handle attachments or embedded images.

Currently planned features:

  • Easy to use GUI [WIP]
    • Show available resources (type)
    • Show available items (defined by type)
    • Filter on Name [not implemented]
    • Dynamic preview of data (only charts/maps, not on mobile for now)

Optional wanted features:

  • Change dynamic preview to grid + thumbnail [not implemented]
  • Filter by Country [not implemented]
  • Responsive design [not implemented]
  • Selection based settings configuration with a list of possible other data-objects that can be shared (double list, arrows choose item/all items active) [not implemented]


Architecture: The application will be built as an App available for install with the DHIS2 App management. After implementing a simple frame for the items to be contained in, we are looking at dividing the application into some main parts. One part should handle settings and preferably a linking option for facebook or twitter so that the user can disconnect their account from the service. If there is time,for implementing a selection based configuration for what items should be available to share.

We are mainly looking at using React to handle the application since the virtualDOM will allow us to take "cache" the different previews after the user has hovered the item, this will be especially useful if we are able to implement the grid based selection, as the grid would be our "root" for the virtualDom. We will be using HTML2Canvas for handling the translation of the pivot tables into images.

Short List of technologies/libraries(Subject to change)

Time schedule

   -  4th of November: App running
 5 - 11th of November: Live preview
12 - 18th of November: Posting to facebook/twitter
19 - 25th of November: Extra features
25 - 26th of November: Polishing/Tweaking
     27th of November: Delivery

How we are dividing tasks within the group

Screenshots and screen flows

Documented learning during project

Suggested improvements to the API

Link to repository

The repository can be found at dhis.crappyengineering.com

Download link to sample web app