Difference between revisions of "Team Algol"
From mn/ifi/inf5750
m (→Work schedule) (Tag: Visual edit) |
m (→Work schedule) (Tag: Visual edit) |
||
Line 48: | Line 48: | ||
#* Work planning according to the findings | #* Work planning according to the findings | ||
# Milestone ('''22nd November''') | # Milestone ('''22nd November''') | ||
− | #* Update | + | #* Update REST API calls, use [https://github.com/ReactiveX/RxAndroid ReactiveX] library and reduce the number of calls and amount of data transfered |
− | |||
#* Find suitable XMPP server and get it work | #* Find suitable XMPP server and get it work | ||
+ | #* Update XMPP client library ([https://github.com/igniterealtime/Smack/wiki/Smack-4.1-Readme-and-Upgrade-Guide Smack]) and add support for offline mode | ||
+ | #* Design and implement a solution for local storage of information and messages | ||
+ | #* Improve GUI by using [http://jakewharton.github.io/butterknife/ Butter Knife] and [https://www.google.com/design/spec/material-design/introduction.html Material design] | ||
+ | # Milestone ('''4th December''') | ||
#* Write unit tests for every component of the application | #* Write unit tests for every component of the application | ||
− | |||
#* Stabilize the application | #* Stabilize the application | ||
− | #* Measure traffic | + | #* Measure traffic usage |
− | |||
== Group organization == | == Group organization == |
Revision as of 09:47, 10 November 2015
Team Algol : Android Messenger application for DHIS2
Contents
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
- Reduce data usage
- Implement local data storage
- Implement local data caching
- Redesign user interface to follow Material design guidelines
Architecture
- Android application
- REST calls to DHIS2 for authentication and user information
- XMPP messaging
- DHIS2 instance
- XMPP server
Project details
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
- asmack.jar (Xmpp code redesign to comply with maven): https://github.com/igniterealtime/Smack/wiki/Smack-4.1-Readme-and-Upgrade-Guide
- reactiveX (Observables): https://github.com/ReactiveX/RxAndroid
- butterknife (activities & ui): http://jakewharton.github.io/butterknife/
- Material Design (UI ): https://www.google.com/design/spec/material-design/introduction.html
- ormLite (sql orm for android): http://ormlite.com/sqlite_java_android_orm.shtml
- 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 ?
- Persistance layer
- Use the OrmLite library ?
- Store data on app start/exit
- Provide interface for the Rest Layer
- 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 ?
- Go over all the ui and redo it to use Material design. Maybe use butterknife for activities as well ?
- Test the app. Test all the corner cases.
- Unit tests on android : https://developer.android.com/training/activity-testing/activity-unit-testing.html
Work schedule
- Milestone (8th November)
- Analysis of previous solution
- Work planning according to the findings
- Milestone (22nd November)
- Update REST API calls, use ReactiveX library and reduce the number of calls and amount of data transfered
- Find suitable XMPP server and get it work
- Update XMPP client library (Smack) and add support for offline mode
- Design and implement a solution for local storage of information and messages
- Improve GUI by using Butter Knife and Material design
- Milestone (4th December)
- Write unit tests for every component of the application
- Stabilize the application
- Measure traffic usage
Group organization
- Source code
- dhis2msg organization on GitHub
- DHISmessenger repository forked from Niclas Halvorsen
- 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