Tracker API

Registered by Paul Mark Castillo

TRACKER API
Total Estimate: 10 Days

I. ESTIMATES

Code #1: DHIS Manager (2 Days)
Code #2: Tasks (2 Days)
Code #3: Model (1 Day)
Code #4: Util (1 Day)

NOTE: Studying and Reviews are not yet included

II. GOALS

* The Tracker API should be independent, where it is not: Platform-dependent, 3rd Party API dependent, and could be even compiled in a single JAR File.

* The Tracker API should ONLY work as a service, as a back-end worker. Therefore the Tracker API should not cover the front-end part (aka User Interface)

* The Tracker API should be simple (familiar), so for other team members could easily understand and navigate through the architecture and as well as code.

* To provide an Alpha Build by the end of this quarter for the developers, and users to play around with the API.

III. EXISTING ARCHITECTURE VS TRACKER API

The Tracker API would be highly based on the existing architecture of the J2ME Aggregate. This would be two advantages for the meantime: (1) Faster release (2) More familiar to the other developers so helping/coding for this module would be much easier.

Much of the codes that would be migrated from J2ME to the Tracker API would be the packages from: (1) connection (2) task (3) model (4) utils (5) recordstore - although this would be changed into a much more generic type for it to be compatible with Android.

This tracker api would be in a separate branch while the clients (Android and J2ME) would have their own separate branches as well. But they could be linked into a single project to have a seamless integration.

Also this tracker api works something like it accepts plugin (something like dependency injection). So there would be something like "android plugin" for the Android tracker, and "j2me plugin" for the j2me tracker.

IV. SOURCE SAMPLE

public class AndroidLoginView implements ILoginTaskListener {
 public AndroidLoginView() {
  DHISManager.initialize(
   new AndroidTextManager(),
   new AndroidLogManager(),
   new AndroidRecordManager(),
   new AndroidNetworkManager()
  );
 }

 public void loginPressed() {
  DHISManager.login("admin", "district", this);
 }

 @override
 public void loginResponseNeedsUpdate(double serverVersion ) {
 }
 @override
 public void loginResponseNeedsPIN() {
 }
 @override
 public void loginResponseErrorOccured(String message) {
 }
}

V. FUTURE PLANS

* As localization is a part of front-end, therefore it should be removed from the Tracker API.

* Slowly, we would optimize the code/architecture for a much more optimized approach.

* Migrate the existing J2ME Tracker into this Tracker API.

Blueprint information

Status:
Not started
Approver:
Peder Andreas Nergaard
Priority:
High
Drafter:
Paul Mark Castillo
Direction:
Approved
Assignee:
Paul Mark Castillo
Definition:
Drafting
Series goal:
Accepted for trunk
Implementation:
Unknown
Milestone target:
milestone icon 2.16

Related branches

Sprints

Whiteboard

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.