/
Google Code-In 2014

Google Code-In 2014

Get Stoked - End Poverty. One Line of Code at a Time.

We have completed the Google Code-In program for 2014 and look forward to future participation.




2014 Google Code-In - Get to Know Mifos

After participating in Google Summer of Code in four different summers, we look forward to the opportunity to work with pre-university students through Google Code-In. As both a 501(c)3 non-profit and an open source project, our global community has a diverse range of tasks (both technical and non-tecnhnical) that will be a valuable experience for the students. Students will gain exposure to an active open source project, a widespread global community, and expand upon a wide range of discipline as they use technology to help alleviate global poverty.

Get Excited!

Watch the following videos to learn about our gigantic mission and the game-changing platform we've built to achieve it. 

http://youtu.be/co5cK2cYVU0

Guidelines

  • Getting started Read about setting up the code and understand the basic concepts around MifosX.

Expectations

Students working on Mifos X will be expected to:

Prerequisite Skills

Basics

  • Quick learner
  • Troubleshooting and analytical skills
  • Passion for writing clean code
  • Excellent communication skills
  • Knowledge of developer tools
    • such as: a text editor, source control, how to build software
    • experience with specific tools will also help, such as: Eclipse IDE, Git

Mifos includes wide variety of technologies, we do not expect a student to be expert on all of these. But it will be helpful if you have some experience in some of these. Helpful skills (specific technology requirements vary with project chosen):

  • MySQL,Jersey, Hibernate, Spring,
  • HTML, CSS,  JavaScript (JQuery), AngularJS
  • JUnit, REST
  • Java
  • Gradle
  • Android SDK
  • Git

Hints

  • When you need help, ask for help! Do some searches before asking, please. We are very excited for you to join us, but we need to know that you're willing to put in the time and effort required to do your part. When you do ask, ask well.
  • Not sure if you are qualified? Download and build the code, then run the Platform and the reference user interface. Instructions for doing so are available at Getting started - Contributing to MifosX.
  • Email the mifos-developer mailing list with your questions and project ideas.
  • Install Skype for (generally infrequent) video calls. You'll need a headset for Skype, too.

Mentoring

Mifos folks are constantly working remotely (mainly using Skype), especially in supporting remote contributors. We often do video calls and desktop sharing If possible, we'd love to meet you in person! Specific mentors for each project will be listed below.

Mentor

Category

Location

Time Zone

Coding & Quality Assurance

Switzerland

CET (GMT +1:00)

Coding & Quality Assurance

India

IST (GMT +5:30)

Coding & User InterfaceIndiaIST (GMT +5:30)
Coding, Testing & Documentation (Android App)IndiaIST (GMT +5:30)
Outreach/Research & Documentation/TrainingUSAPST (GMT -8:00)
Outreach/ResearchUSAPST (GMT -8:00)
Coding & Quality AssuranceIndiaIST (GMT +5:30)
Coding & Quality AssuranceIndiaIST (GMT +5:30)
Documentation/TrainingBelizeCST(GMT -6:00)
Coding & Quality AssuranceGermanyCET (GMT+1:00)

Project Tasks

GCI students will have the opportunity to work on the following types of tasks:

  1. Code: we have a range of introductory coding tasks across our Java platform, AngularJS community app, and Android mobile field operations app. 
  2. Documentation/Training: Most of the end users of our software aren't super-technica. Documentation is critical - we have a number of short how-to guides as well as training slides to work on. 
  3. Outreach/Research: As a global non-profit with a rich social mission to bring financial services to the poor, we have an enormous amount of non-coding work to get done in our community - on the marketing front this involves product positioning and collateral, donor and volunteer outreach, social media management, CRM & contact management, digital media design, as well as analysis and research of our competitors and new financial inclusion products and services. 
  4. Quality Assurance: Mifos X is enterprise-grade, mission-critical software to run a bank - quality, security, and performance couldn't be more important - as our software continues to grow, we have a range of manual and automate testing tasks.
  5. User Interface: Since many end users of our software aren't that technically literate, an optimal user experience is ever more valuable, various areas of our app could use some mockups and wireframes.

Coding

Task: Include Mifos X release details in Community-App as about info

The About tab in the Mifos X Community App should contain the following system-related info: Mifos X version and Release Date. This makes it easier for end user to report issues about their system. See  MIFOSX-1602 - Getting issue details... STATUS  for more details

Tags: Javascript, AngularJS, UI

Task: Add Ability to Capture Client Image via WebCam on Community App

The original reference App ( at https://demo.openmf.org/old/) had the ability to capture client images usinghttp://www.xarg.org/project/jquery-webcam-plugin/.

We need to implement identical functionality for the community app. Angular directives likehttp://jonashartmann.github.io/webcam-directive/#/ based on http://www.webrtc.org/ could work well

Tags: AngularJS, Java, Javascript

Task: Require Confirmation when Reversing and Accounting Journal Entry

When Reverse button is clicked for a particular Journal entry, it does not ask for confirmation. For audit and internal control purposes, it's important that when reversing a completed transaction, the user  be prompted to confirm that that they want to reverse the journal entry. It would also be helpful to provide a Comments field when doing the reversal of the journal entry. Currently when a journal entry is reversed it is automatically accepted, and the following message displayed: "Transaction reversed successfully. A new journal entry has been created to reverse this transactionTransaction Number : 807f0c405ee7" See  MIFOSX-1575 - Getting issue details... STATUS  for more information. 

Tags: Java, AngularJS, Javascript, Accounting

Task: Update the +JLG Application Button to proper color scheme for Actions

Actions in the Community App have a bright blue background; however, the +JLG Loan Application action on the view group has a green background. This task would involve changing the color of the button to match that of other actions in the system. See  MIFOSX-1591 - Getting issue details... STATUS  for more details. 

Tags: Javascript, AngularJS, UI

Task: Select an task from our list of 60+ introductory tickets in our Issue Tracker

On our volunteer opportunities page, we have more than 60 issues tagged with the introductory label that would be suitable tasks for Google Code-In. These tasks represent a range of issues, enhancements, feature requests on our java platform, AngularJS community app, and Android app. See Volunteer Opportunities for the list.

Tags: Java, Javascript, AngularJS, MySQL, Android

Documentation/Training

Task: Document Standard Reports in Mifos X with examples

Mifos X ships with a number of standard default reports representing the most commonly request, loan, client, accounting, and funds reports. We need to provide a short description of each report, the audience it's directed at, a list of the fields in the report, its available formats, and selectable parameters. For the task, you will run each report in our demo server, generate it as a PDF to upload to our wiki as an example, and add the descriptive details in the table found at Standard Reports Field Descriptions

Tags:  Pentaho, Business Intelligence, Reporting, MySQL, Documentation, Confluence

Task: Create Functional Overview slides for End User Training - System Configuration

How to configure the system - use the documentation currently on the wiki and convert to slide presentation. 

Initial System Set Up (configuration)

Tags:  Documentation, training, system setup, system configuration

Task: Create Functional Overview slides for End User Training - New Client

Using Mifos X procedure documentation, create a set of slides for end user training.  The slides will include:

  • How to Log on to Mifos X
  • How to create a new client, upload identification documents, put in approval queue, approve
  • How to create a savings account
  • How to post a member fee
  • How to post a deposit

Tags:  Documentation, Training

Task: Create Functional Overview slides for End User Training - New Loan

Using Mifos X procedure documentation, create a set of slides for end user training.  The slides will include:

  • How to accept and enter a loan application
  • How to approve a loans
  • How to disburse a loan

Tags:  Documentation, Training



Task : Documentation for using Android App

With a basic documentation in place, Mifos Android app still lacks documentation for some functionalities. This task would require the students to use the app and write down the steps to perform tasks using the app along with screen shots. It'll be a big plus for the community if a screen cast of the app being used can be created by the user. Ishan Khanna can guide you more on how to create a screen cast. 

Outreach/Research

Task: Update and merge our contact database in Salesforce and Mailchimp

We recently migrated our CRM from Insightly over to Salesforce – we’ll be using Salesforce going forward to manage all our contacts including volunteers, customers, partners, donors, and influencers. We use Mailchimp for sending newsletters and periodic communications to our database of nearly 5000 contacts. We haven’t completed updating and merging our main contact list in MailChimp to reflect new contacts made in Salesforce and our old contacts from Insightly. This task would involve, using the Salesforce/MailChimp integration to merge our lists into one Mailchimp list and creating various segments in that list.

Tags: Salesforce, Mailchimp, Newsletters, Contact Management, Outreach, Community Management

Task: Optimize our HootSuite Account for Cross-Posting and Social Media Listening

We currently use Hootsuite for posting updates to Twitter. We haven’t yet configured it to post to our other social networks – Facebook, Google+, LinkedIn. We would also like to take better advantage of using HootSuite to respond and engage with our community and other relevant communities via Social Media. This task would involve configuring our HootSuite account for crossposting to other social media networks as well as setting up lists and alerts for better social media listening. For social media listening, we would like to track mentions and cha