Skip to content

Latest commit

 

History

History
408 lines (204 loc) · 12.8 KB

gsoc1a.md

File metadata and controls

408 lines (204 loc) · 12.8 KB

Front Desk Service Module / Experience Module -

Android App Development


** **Project Idea

Mifos has recently released a full set of API’s to provide direct control of data to the clients.

Earlier there were bank facing API’s which were utilised in the Mifos web app and Mifos android

client as well as self-service app. Mifos android client helped the bank staff to access client’s

data on the go, but when it comes for booking a loan the customer interaction is very

unprofessional because the customer’s details like his background , the reason for which he

needs the loan , etc , are the deciding factors to match the personalized factors to the loan

products. With the help the API’s, I propose to develop a Front Desk Service Android App so

that there is a professional interaction with the organisation and the customer gets his/her loan

Product.

** Project Goals**

The goals which I aim to complete before the end of GSOC programme are as follows :

● Providing a way to check the credit history of the borrower and also the cash flow from

the customer’s business operations.

● Providing a login screen.

● Providing a client interface so that they can submit their basic requirement.

● Providing an interface which the contains a few personality based questions according to

which the machine can suggest a product.

● Provide an interface to help the customers edit their account information.

● Keeping record of customer’s loan transactions.

● The application will be having an offline support so that customers can see their loan

details even in areas with low or no network connectivity.

● Creating an application which is easy to use for clients , as there will be a large variety of

users ranging from qualified personals to not-so-qualified people, so I would try to make

the app easy to use.

● Providing labels and titles in regional languages.


** The Project**

Front Desk Service Android App will be made from scratch so I will be trying to cover in-depth

implementation with the help of this proposal. I will follow agile methodology and keep adding

new features and functionalities from time to time as suggested by my mentor.All the data will be accessed using self service API’s which are already available. All the API

responses will be in the form of JSON which will be fetched in our android app via making HTTP

requests which will be handled with the help of Retrofit library so that all requests occur in

background thread without blocking the UI interaction of application with user.

Since the app will have offline support for the usage of the app in various places which have

different connectivity strengths so I would see to it that :

● Users can check their recommended loan products.

We can implement the offline application support with the help of SQLite database which is

automatically inherited by android operating system. Once the user is logged in data will be

fetched from server and certain amount of useful content will be saved in SQLite database, so

that users can access without network connectivity.

I will be using Model-View-Presenter(MVP) pattern as my design pattern

User Interface :

● User interface is simple and attractive which is totally fit for target user group.

● Adhere to the latest Android material design pattern that synthesizes the classic

principles of good design providing flexible and optimize layouts.

● User interfaces are designed for the different screen resolutions (MDPI, HDPI,

XHDPI,XXHDPI) which enables accessibility through all kinds of devices different

resolutions.

Third party API’s/Libraries :

OkHttp : The application will be using extensive network calls to fetch data from the

server. OkHttp will provide automatic scheduling of network requests(HTTP based

network requests).

Retrofit : Mifos X APIs are REST based and Retrofit is the best library to use in this

case.

Picasso : For proper caching of images and also for preventing memory wastage in

heap.

Butter Knife : Increasing readability of code.

GSON : Serialization of java objects into JSON and vice versa.

SQLCipher : Will protect the SQLite tables from reverse engineering attacks.

Additional features :

  ●    Feature to add documents such as ID proof or driving license.

  ●    Since there can be a lot of loan products based on customer’s details and questionnaire, I              would like to group the products according to their categories.

  ●    The loan products specifications will be elaborated so that the customer can take his

        time to decide which product to buy.
  • Suppose there are multiple items for a specific customer according to the

          recommendation engine, the customer can have a wishlist to put the other products
    
          other than the product he selected, in it.
    
  • Since the application will be used by different clients from different background, I would

          like to add a "how to guide", which will tell the clients how to use the various
    
          functionalities of the application.
    

During the whole development phase , continuous integration will be used. For that purpose we

will be using Travis CI as our continuous integration service.

** Project Timeline**

GSOC is around 4 month programme with three months to code, I would like to divide my tasks

into several phases.

Post proposal submission period

        while ( 27/02/2017 <= time <= 20/03/2017 ) {

                  /* execute -> Working on submitting patches by resolving bugs

                     execute -> adding new feature to existing self service app */

                 }

Community Bonding Period

        while ( 05/05/2017 <=time <=30/05/2017) {

                  /* I will be having my end semester examination from 25th March to 6th

                  May, so I won’t be available during this period.*/

                  while( 7/05/2017 <=time<=30/05/2017) {

                  /* execute -> Discussing key features with mentors such as :

                  > Proposed additional features should be implemented or not.

                  >Thoroughly reading MIFOS API documentation.

                  > Understanding and discussing about the features / code

                   Reusability of existing bank staff facing applications

                  > Implementation of MVP model in our application. */

                        }

             }

Week 1

        while (30/05/2017 <= time<=06/06/2017) {

              /* execute -> Designing static UIs for example home screen,profile

              screen,questionnaire screen,account-detail screen */

           }

Week 2

          while (07/06/2017 <=time <=14/06/2017) {

                  /* execute -> Designing as well as writing code for navigation drawer.

                     execute -> Writing Code for collecting customer basic requirement.*/

               }

Week 3

         while (15/06/2017 <=time <=21/06/2017) {

              /*execute -> Writing Code for adding recycler view in loan product screen.

                execute -> Writing code for a login screen.*/

           }

Week 4

        while (22/06/2017 <=time<=30/06/2017) {

             /* execute -> Start writing backend logic for creating various service interfaces

            used for fetching data via Retrofit library.

            execute -> Writing code to populate data on the profile screen.

            execute -> submitting the code for phase 1 evaluation

           }

Week 5

       while (01/07/2017 <=time <=08/07/2017) {

            /*execute -> Build profile screen in such a manner where user can edit only

             specific fields.

            execute -> Writing code to provide editing profile options to the client.*/

          }

Week 6

      while (09/07/2017 <=time <=16/07/2017) {

           /*execute -> Writing code for personality based questions*/

          }

Week 7

      while (17/07/2017 <=time <=24/07/2017) {

          /*execute ->writing the code for loan products screen

            execute ->submitting the code for phase 2 evaluation*/

       }

Week 8

    while (25/07/2015 <=time <=01/08/2015) {

        /*execute ->writing the code for offline support for application*/

      }

Week 9

    while (02/08/2017 <=time <=09/08/2017) {

      /*execute -> Implementing loan transaction details functionality , where users

      can see details of their last loan transactions.*/

    }

Week 10

   while(10/08/2017 <=time <=17/08/2017) {

    /*execute ->Writing test cases and start testing my final code.*/

   }

Week 11

  while(18/08/2017 <=time<= 21/08/2017) {

    /*execute -> Writing the documentation of my entire work in a very detailed

      manner so that new contributors can easily contribute to my work*/

 }

So, I have left a few days as a carry period so that if anything goes unplanned we can use the

time to recover it and also I have mentioned a few tasks in some weeks as compared to other

for the same reason, so as to keep a check of my work. I will also add "how to use" in the app.

Why are you the right person for this project?

I consider myself as right person to do this project because :

● I learnt about this programme about a year ago, till then I had a little knowledge about

android and it’s features, but after knowing about the project I worked hard to improve

my skills on Android app development, so I am a fast learner and also a hard worker.

● Experience of programming in java for more than 2 years and development of android

app for a year.

● Contributed to Self-service app.If in college which area of study?

I am currently in my 3rd year Bachelor of Technology in Computer Science at National Institute

of Technology,Silchar, India.

Contact information and preferred method of contact

Email : [email protected]

Gitter ID : Pritom14

Contact Number : +91-7896223872/9707153020

Time Zone : Indian Standard Time (IST),+5:30 GMT

Linkedin ID : https://www.linkedin.com/in/pritommazumdar

I am available 24*7 via email as well as contact number

Link to source code I have written/project developed

I have recently learned android app development so I do not have a lot of apps developed in my

github profile, just two. But since GSOC provides a platform for learning so I could develop more

apps in future.

To-Do List App : https://github.com/Pritom14/ToDoApp

Navigation App : https://github.com/Pritom14/NavigationApp

These are the apps that I have developed.

Have you contributed to other open source projects? If so, which?

Yes, I have contributed to Self-Service App

Have you any previous experience with JavaScript/Java/Spring/Hibernate/MySQL?

I have programming experience of 2 years in Java. I also have past working experience

with MySQL. Since I will be working on the Front Desk Service App , for that I have a working

experience of a year in learning and developing android application.

What other commitments do you have this summer?

I do not have any other commitments this summer and I will devote my full time in

working on this project only. I will work for a minimum of 45 -50 hours/week, and also additional

hours for improving my skills.

Have you deployed and run the Mifos X Platform and reference User Interface ?

Yes

Have you submitted any patches or source code to Mifos X yet?

I have contributed to Self-Service App and the contributions are :

openMF/mifos-mobile#178[Merged]

openMF/mifos-mobile#138[Merged]

openMF/mifos-mobile#118[Merged]

Have you previously participated in the Google Summer of Code?

No

Are you applying to multiple organizations this year?

No

Career Goals :

● To become a successful android developer

● To bring a change in the lives of many , in technology , so that people can live a life with

ease, and so contributing to open source has been one of my goals.