Skip to content

Instantly share code, notes, and snippets.

A gist containing screenshots and gifs of the work done in GSoC '19

@apoorva-mk
apoorva-mk / Vision_PPI.md
Last active January 15, 2020 02:01
Vision PPI - GSoC '19

About my journey with Mifos Intiative

Mifos is a global organization which focuses on developing products and financial solutions for the underbanked. My journey with Mifos started after the list of organizations were introduced for GSoC '19. I was drawn to their objectives and found the tech stack familiar. The community was also very welcoming and I got sufficient guidance to get started. I found my niche in their wide array of products and decided that this was the right organization to contribute and do meaningful work for.


Learning during the GSoC period

package org.mifos.visionppi.ui.new_survey
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.PagerSnapHelper
import kotlinx.android.synthetic.main.activity_new_survey.*
import org.mifos.visionppi.R
import org.mifos.visionppi.adapters.QuestionAdapter
import org.mifos.visionppi.objects.PPISurvey

Computer Vision Based PPI Tool

  • To build out an Android App written in Kotlin which will use computer vision to aid the PPI (Poverty Probability Index) surveying process.
  • The app will use Google Cloud Vision for analysing images and providing details relevant to the PPI questionnaire.
  • The PPI rendering and submission will be done using the Apache-Fineract platform.
class QuestionAdapter (var questionList: List<Question>, var context: Context) : RecyclerView.Adapter<QuestionViewHolder>() {
override fun onBindViewHolder(holder: QuestionViewHolder, position: Int) {
holder.question?.text = questionList.get(position).text
holder.responseRecyclerView.layoutManager = LinearLayoutManager(holder.responseRecyclerView.context)
holder.responseRecyclerView.adapter = ResponseAdapter(questionList.get(position).responseDatas, context)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): QuestionViewHolder {
return QuestionViewHolder(LayoutInflater.from(context).inflate(R.layout.ppi_question_layout, parent, false))