JMO
Contents
- 1 List of group members
- 2 Introduction
- 3 Milestone
- 4 Time schedule
- 5 How you are dividing tasks within the group
- 6 Screenshots and screen flows
- 7 Documented learning during project
- 8 Suggested improvements to APIs etc
- 9 Link to repository
- 10 Download link to sample web app
List of group members
Ophélie André <ophelia@ifi.uio.no>
Marius Munthe-Kaas <mariusmu@ifi.uio.no>
Julien Vedrenne <julienve@ifi.uio.no>
Introduction
This page describes our project which takes part of the course INF 5750 open source development at the University of Oslo.
JOM is a team of 3 master students from UiO :
- Marius Munthe-Kaas
- Julien Vedrenne (exchange student from France)
- Ophélie André (exchange student from France)
We were asked to choose a subject from 7 proposed tasks and implement it as an app on the DHIS2 platform.
We chose the task : Messaging and integration with Facebook/Twitter
With the following requirements :
“Sharing favorites on Facebook / Twitter, and using fb / twitter api to post DHIS 2 Charts. Add support for sharing favorites of pivot tables, charts and maps to Facebook.
Also Support for 1) adding attachments and 2) embedding images in DHIS2 messages and . Useful for example to attach screenshots when supporting users. This should use the new Web API for file uploads and storage.”
Goal
General
Milestone
Sharing favorites (charts/maps/pivot tables) on Twitter and Facebook
Current State
Currently DHIS2 does not have functionality to allow users to share graphics. such as charts, pivot tables and maps.Goal
Create a “easy to use” web interface that allows the user to share their favorite widgets to their friends on social media. Thus the user could share his work with other people and increase the visibility of DHIS2. We would like to encourage the user to share graphs / pivot table / maps on social media : (Facebook and Twitter
Note! In the next example, we only focus on Facebook. In the final solution, Twitter will also be supported.
User-perspective
1, If a user find it useful to share a graphic / pivot table / map, he can click on the desired share button (Twitter or Facebook)
2. Then he must accept the Facebook authorization message, to be allowed to publish the post on his wall
3. Then the image is posted, and will be visible on the Facebook wall.
Implementation (technical point of view)
- Add a share button to each widget present on the dashboard
- Create an image of the widget, with appropriate dimensions (requirements of Facebook and Twitter API) (We collect an image of the map that the user wants to share with the API ( ex : "https://play.dhis2.org/demo/api/maps/ZBjCfSaLSqD/data?width=800").
- Connect the DHIS2 user to the prefered social media account
- Use Facebook/Twitter API to publish this image ( with optional description/hashtags ) on the user’s own social page
Technologies to use: (might change)
- React/Redux (ES2015)
- Twitter SDK (javascript) / API
- Facebook SDK (javascript) / API
- DHIS2 API
Embedding images and send attachments to message
Current state
Currently, Only text messages can be sent between users of DHIS2. In case of support messages, it would be preferable to allow the user to attach images. For instance, screenshots of error messages.
Proposed solution
Adding the opportunity for a user to send files inside a message. Furthemore, share image on the message section and embedding this image directly into the chat.
User perspective
The user have to click on a button to attach file to a message.
Then he picks the file he wants send (local file on computer).
Next, he click on the reply button to send the file.
The other user receives the message with a download link.
When the user click on the download link, the file is downloaded to the computer.
If the recieved file is an image, a preview will be displayed within the chat service.
Technical implementation
Sender (Write message): Add a button which allows the user to select an attached file or image. In case of an image, create a thumbnail, and attach this to the message. In both cases allow the user to supply a description of the file. The upload should happen in the background (prior to the post action)
Receiver (Read message): If the file is an image, preload the thumbnail, and link it to the full resolution image. Otherwise just print a link to the file within a box that includes the description.
Technologies to use: (might change)
- React/Redux (ES2015)
- DHIS2 API
Time schedule
Kick-off (till late October)
First meetings were used to :
- meet the team
- get to know each other (our skills)
- analyze the requirements
- get a clear understanding of goals and architecture
- start looking to/playing with the different technologies (API, SDK, apps) and see what can be done with it
Table of group study time each week
Day | Start time | End time | Number of hours |
---|---|---|---|
Tuesday | 10.00 | 15.00 | 5 Hours |
Friday | 14.00 | 18.00 | 4 Hours |
Week end | 13.00 | 18.00 | 5 Hours |
How you are dividing tasks within the group
While the division of task is not yet fully decided, we plan to devide the task in two.
The social sharing facilities require us to use both the SDKs from Facebook and Twitter, thus the learning curve is bigger, and will require more work. (Ophélie and Julien)
Embedding files into DHIS2-messages will require more work on the user interface, but less technical knowledge of other APIs. (Marius)
Screenshots and screen flows
Documented learning during project
Suggested improvements to APIs etc
Link to repository
https://github.com/mariusmu/dhis2-share-app
The respository will be active from September 27th