Skip to content

GsoC 2016 Android Field Operations App Version 3

Chinmay Kulkarni edited this page May 9, 2020 · 24 revisions

Project Idea and goals

The Mifos Android Client is currently in version 2. Recently, significant new enhancements including refactoring, implementation of material design, offline, surveys, and new functionalities have been implemented taking it from Version 1 to Version 2. Now the app is still under development and this project aims at releasing the version 3. This will add exciting new features and significant enhancements. Some of the major additions are:

  • Application-wide offline content availability – All the content which can be viewed in the app i.e. clients' details, loan details, past loan transactions, surveys, creating etc will be available offline. It will be stored on the phone, either in the cache or the database.

  • Refactoring and redesigning the app – There will be many changes in the app including simple cosmetic ones such as layouts, colors, etc. There will also be functional changes such as changing how the app is navigated, menus, actions, etc. It will also include the refactoring of the codebase to make it more readable and manageable to help existing and new contributors.

  • Implementing major new functionalities like collection sheets for savings and loans at the group and individual, staff notifications, editing clients details, and more.

All of the above will be powered by the underlying APIs provided by the Mifos platform. The data will be transferred in a RESTful manner.

TimeLine

Phase One I would primarily focus on porting current project into MVP framework with Retrofit 2.0 beta 4 And writing Test cases of the current class. We should concern on the primary goals and milestones which the app demands in this phase.

TO DO:

Week 1,2:-

  • Code Analysis Tools Implementation.

  • Findbugs Code Analysis Tool Implementation

    • FindBugs : This tool uses static analysis to find in java code. Unlike
      PMD, It uses compiled Java bytecode instead of source code.
    • Reference : #PR.
  • Refactoring and redesigning the app

    • Restructuring the current codebase to follow the Model-View-Presenter architecture.
    • Importantly, the Model layer will be developed for this, so that all the data sources, i.e. Retrofit(API), Database, etc. are all at one place and all the other layer can use the abstractions.
    • Reference : #PR and #PR

Week 3, 4:-

  • Upgrading Libraries
    • Upgrading to latest stable libraries, e.g. Retrofit 2, Picasso,Dagger 2 etc.
    • Writing unit tests to increase code coverage. This is important we need to make sure future developments doesn't break the stable model layer.
    • Reference : #PR, #PR, #PR, #PR, #PR, #PR, #PR

Week 5, 6:-

  • [WIP] Offline content availability
    • Offline content availability. Once we have the abstractions of MVP in place, we just need to add a data source to the Model layer. Although not simple, but it will be straightforward as this will not require
      any changes in the View and Presenter library.
    • More test cases will be required to test whether the caching goes well with the API.
    • At this point we need to make sure that cached data + new requests don't hamper the user experience.
    • Reference : DatabaseHelper Layer Completely Enable and decoupling of DataManager and DatabaseHelper class
      according to REST Services done. #PR, #PR, #PR, #PR

Phase 2 I would focus on building the additional features that I have mentioned in the proposal, feature enhancement and bug fixing.

Week 7:-

  • Feature addition * Feature addition - Implementing generate collection sheets for savings and loans for group and
    individual. * Staff Notification.

Week 8:-

  • Feature addition * Add ability to edit clients' details and show detailed client information. * Adding Client notes field (Create and Retrieve).

Week 9:-

  • Feature addition * Implementing Group notes (Create and Retrieve). * Adding feature officer to do list . * Retrieve, Apply, Approve Loan, Undo loan approval. * Assign, Unassign Loan officer. * Withdraw, Reject, Delete Loan Application. * Update Loan.

Week 10-11:-

  • User Testing * Providing the application for users and mentors for testing and getting feedback. * Testing the application with different devices with different screen resolutions and identifying defects. Fine tuning for different screen resolutions if there are any defects. * Enhancement and bug fixing according to the user feedback. * Review by the mentors and contributors of the project. Changes according to reviews. * Documenting code.

Week 12:-

  • PlayStore Release * Releasing the Version -3 of the application for final evaluation.

Demo Credentials

  1. Username: mifos
  2. Password: password
Clone this wiki locally