Difference between revisions of "Team Algol"

From mn/ifi/inf5750
Jump to: navigation, search
m
Line 1: Line 1:
Team Algol : Android Messenger app for DHIS2
+
Team Algol : Android Messenger application for DHIS2
  
 
== Group members ==
 
== Group members ==
Line 23: Line 23:
 
== Project details ==
 
== Project details ==
 
Details about how we will solve the task, and component-like view of it go here...
 
Details about how we will solve the task, and component-like view of it go here...
 
+
# 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  
Rough Task-Component-Todo view:<br />
+
#* asmack.jar (Xmpp code redesign to comply with maven): https://github.com/igniterealtime/Smack/wiki/Smack-4.1-Readme-and-Upgrade-Guide
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 <br />
+
#* reactiveX (Observables): https://github.com/ReactiveX/RxAndroid
0.1 List of the libraries of question:<br />
+
#* butterknife (activities & ui): http://jakewharton.github.io/butterknife/
* asmack.jar (Xmpp code redesign to comply with maven): https://github.com/igniterealtime/Smack/wiki/Smack-4.1-Readme-and-Upgrade-Guide
+
#* Material Design (UI ): https://www.google.com/design/spec/material-design/introduction.html
* reactiveX (Observables): https://github.com/ReactiveX/RxAndroid
+
#* ormLite (sql orm for android): http://ormlite.com/sqlite_java_android_orm.shtml
* butterknife (activities & ui): http://jakewharton.github.io/butterknife/
+
# Rest interface/layer redesign.  
* Material Design (UI ): https://www.google.com/design/spec/material-design/introduction.html
+
#* Rest Session storage? Use Persistance layer or Cache layer ?
* ormLite (sql orm for android): http://ormlite.com/sqlite_java_android_orm.shtml
+
#* How would the rest calls hit/miss the cache?
 
+
#* Is the DHIS2 api satisfactory ?
 
+
# Persistance layer
1. Rest interface/layer redesign. <br />
+
#* Use the OrmLite library ?
1.1 Rest Session storage? Use Persistance layer or Cache layer ?<br />
+
#* Store data on app start/exit
1.2 How would the rest calls hit/miss the cache? <br />
+
#* Provide interface for the Rest Layer
1.3 Is the DHIS2 api satisfactory ?<br />
+
# Cache layer.
 
+
#* 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.
2. Persistance layer. <br />
+
#* Load chunks of cache in memory ? What happens if the app runs on really old android device that has very little ram ?
2.1 Use the OrmLite library ?<br />
+
# Go over all the ui and redo it to use Material design. Maybe use butterknife for activities as well ?
2.2 Store data on app start/exit. <br />
+
# Test the app. Test all the corner cases.
2.3 Provide interface for the Rest Layer<br />
+
#* Unit tests on android : https://developer.android.com/training/activity-testing/activity-unit-testing.html
 
 
3. Cache layer.<br />
 
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.<br />
 
3.2 Load chunks of cache in memory ? What happens if the app runs on really old android device that has very little ram ?<br />
 
 
 
4. Go over all the ui and redo it to use Material design. Maybe use butterknife for activities as well ?<br />
 
 
 
5. Test the app. Test all the corner cases.<br />
 
* Unit tests on android : https://developer.android.com/training/activity-testing/activity-unit-testing.html
 
 
== Work schedule ==
 
== Work schedule ==
 
# Milestone ('''8th November''')
 
# Milestone ('''8th November''')

Revision as of 18:36, 8 November 2015

Team Algol : Android Messenger application 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
    • Implement local data storage
    • Implement local data caching
  2. Redesign user interface to follow Material design guidelines

Architecture

  1. Android application
    • REST calls to DHIS2 for authentication and user information
    • XMPP messaging
  2. DHIS2 instance
  3. XMPP server

Project details

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

  1. 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
  2. Rest interface/layer redesign.
    • Rest Session storage? Use Persistance layer or Cache layer ?
    • How would the rest calls hit/miss the cache?
    • Is the DHIS2 api satisfactory ?
  3. Persistance layer
    • Use the OrmLite library ?
    • Store data on app start/exit
    • Provide interface for the Rest Layer
  4. Cache layer.
    • 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.
    • Load chunks of cache in memory ? What happens if the app runs on really old android device that has very little ram ?
  5. Go over all the ui and redo it to use Material design. Maybe use butterknife for activities as well ?
  6. Test the app. Test all the corner cases.

Work schedule

  1. Milestone (8th November)
    • Analysis of previous solution
    • Work planning according to the findings
  2. Milestone (22nd November)
  3. Milestone (4th December)

Group organization

  • Source code
  • Weekly meetings
    • Group 1 Tuesday 10:15 - 12:00
    • Possible second weekly meeting if needed
  • Instant messaging
    • Slack service for group comunication

Assignment text

Can be found at: https://www.uio.no/studier/emner/matnat/ifi/INF5750/h15/group-projects/messenger-app/index.html