Difference between revisions of "Team Algol"

From mn/ifi/inf5750
Jump to: navigation, search
Line 55: Line 55:
 
5. Test the app. Test all the corner cases.<br />
 
5. Test the app. Test all the corner cases.<br />
  
 
== Work schedule ==
 
What is this ?!? Are we some big corporation with fancy work schedules, time-tracking, line-counting, lunch-break-minute-counting, toilet-time-tracking and superfluous efficiency statistics based on lines of code per hour?!?<br /> I DO WHAT I WANT! When I want it and the way I want it as long as it is within the deadline !
 
 
== Group organization ==
 
== Group organization ==
  

Revision as of 18:02, 8 November 2015

Team Algol : Android Messenger app for DHIS2

Group members

  • Vladislav Georgiev Alfredov <vladisla@ifi.uio.no>
  • Tomáš Livora <tomasliv@student.matnat.uio.no>
  • Mathias Ciarlo Thorstensen <mathiact@ifi.uio.no>
  • Hans Fredrik Fahle <hansffa@student.matnat.uio.no>
  • Jiader Chou <jiaderc@ifi.uio.no>

Summary of Requirements

1. Reduce data usage:
1.1 Implement local data storage.
1.2 Implement local data caching.
2. Redesign user interface to follow Material design guidelines.

Architecture

Android
Android Studio
Local DHIS2 installation
etc..

Downloads

Group project repository: https://github.com/dhis2msg/DHISmessenger
(later) the google app store link:

Project details

Details about how we will solve the task, and component-like view of it go here...

Rough Task-Component-Todo view:
0. Go over the libraries and decide which is worth using: (time to implement the functionality ourselves + testing vs the resource cost of using the library + going over the library interface
0.1 List of the libraries of question:


1. Rest interface/layer redesign.
1.1 Rest Session storage? Use Persistance layer or Cache layer ?
1.2 How would the rest calls hit/miss the cache?
1.3 Is the DHIS2 api satisfactory ?

2. Persistance layer.
2.1 Use the OrmLite library ?
2.2 Store data on app start/exit.
2.3 Provide interface for the Rest Layer

3. Cache layer.
3.1 If requested object in memory return it. If not use persistance layer to get it. + pre-fetch bulk data from disk? If not on disk return null, informing that it is not cached.
3.2 Load chunks of cache in memory ? What happens if the app runs on really old android device that has very little ram ?

4. Go over all the ui and redo it to use Material design. Maybe use butterknife for activities as well ?

5. Test the app. Test all the corner cases.

Group organization

Weekly meetings: Group 1 Tuesday 10:15 - 12:00
Possible second weekly meeting if needed?
Use of Slack service for group comunication.


Screenshots, implementation of features

Learning outcome and future thoughts

Assignment text

Messenger app

Last year a project was developed by master students implementing a chatting application for DHIS 2. This included an XMPP back-end running on the server, in addition to an Android-based client application.

There was also implemented a chat client in the browser version of DHIS 2, which connected to the same XMPP server.

The work is only a proof of concept so far, and will need to be improved in order to make it become a core part of DHIS 2.

The application that already exists is a good starting point, but you are not required to work on it. It is however advised as you use it as a reference for your work, regardless of the directions you want to take. The source code, in addition to a few notes by the developer can be found here: https://github.com/niclashalvorsen/DHISmessenger Definition of tasks

Several improvements need to be addressed for this project. Descriptions of the tasks follow.

1. Improve data usage

The biggest problem is that the application uses big amounts of data. Because the users of DHIS 2 are typically in low resource contexts, that is an absolute show stopper. Using the existing solution or not, you are to find and implement a solution where data usage is at an absolute minimum. This could, and should be done through caching on device, in addition to other strategies you find suitable.

2. Redesign existing app to follow Materal Design guidelines (optional)

The current application has an adequate user interface. It does however not follow Material Design guidelines. There are several other official DHIS 2 Android projects that do, or are currently being redesigned to follow Material Design. The DHIS 2 messaging application will also need to follow these guidelines in order to fit in with the other applications, and to allow for a uniform design across applications. An introduction to Material Design can be found here https://www.google.com/design/spec/material-design/introduction.html