Semester of Code

Semester of Code (http://semesterofcode.com/) is a program that's similar to Google Summer of Code but only for European students and for school credit (no stipend). The Semester of Code (SoC) is an initiative of the European VALS project, which allows students of degrees of computer science addressing real business problems raised by companies and OSS Foundations, and get rewards from resolving them reflecting it in their formal education. 

Semester of Code Timeline

  • Project idea submissions from FOSS projects open week ending July 21st and close Sep 12th.
  • Proposal submissions from students open Sep 12th and close Nov 14th
  • Selection of submitted proposals opens Sep 12th and closes Nov 21st.
  • Final announcements are on Fri Nov 28th

Semester of Code Project Ideas

See Google Summer of Code 2014 Ideas for a list of projects/ideas that weren't implemented for GSOC

Sample Idea (Data Import Tool example)

Mentors Mentor Name
Overview & ObjectivesData Import Tool was a 2013 GSoC project; it is standalone web-app and used for importing bulk data like clients, groups, loan and saving accounts and transactions into the system. Code from this projected can be migrated to Mifos X platform to provide seamless integration.
Description

At present data import tool is standalone and one has to deploy it and connect it to Mifos X platform to use it for importing data. It will make the tool more readily available for all users to migrate the code from this project to Mifos X platform and give seamless integration.

Advantages of merging the code with platform:

1) Bulk upload API will always be in sync with platform APIs.

2) Easy of build UI for bulk upload inside Community-App.

3) Import will be much faster as we are eliminating one tier.

Apart from integration, we'll also be adding in additional import functionalities beyond clients, loans, and savings accounts:

4) And we will be adding other essential import options such as CoA, Code/Code Values, Offices and Data tables. 

Helpful SkillsJava (Spring/JPA/Jersey), SQL , JavaScript , Git
Impact

It has many impacts

  1. This drastically reduces the time to set up of initial configuration/data of Mifos X for organization adopting this system as MIS.
  2. For data entry operator, this feature can be used as bulk creation option (such as import bulk loans, import clients)
  3. These templates can be used as offline store. And once user has internet connectivity can upload these templates with captured data.
Other Resources

GSOC 2013 - Data Import Tool

GSoC 2014 - Data Import/Export feature

Tags


Introduce 1st & 2nd Level Cache for SQL Queries

MentorsMarkus Geiss
Overview & ObjectivesEnabling 1st and 2nd Level Cache for SQL Queries to improve the overall performance of our Mifos X Platform.
Description

At present we use no caching strategy at all. This leads to re-reading highly stable data (e.g. Offices, Branches, Clients, ...) over and over again. By simply enabling the MySQL Query Cache we could improve the performance of our Platform. As another option it would be useful to introduce SessionFactory Caching for Hibernate too.

To be able to validate the effect of the SessionFactory Caching it is needed to collect some simple statistics and provide a simple view to analyze it.

Tasks:

  1. Create some simple tests to gather performances counters
    1. Execute this test before enabling any caching and save the result
  2. Enable MySQL Query Caching
  3. Re-run the performance test and compare the results
  4. Enable SessionFactory Caching
    1. Use EHCache as the provider
  5. Re-run the performance test and compare the results
  6. Collect a few statistics of the SessionFactory
    1. e.g. Entity Fetch Count, Query Hit Count, Execution AVG Time


Helpful SkillsJava (Spring/JPA/Jersey), SQL , JavaScript , Git
Impact

It has many impacts

  1. Better overall performance
  2. Improved Reporting performance
Other Resources

MySQL Query Cache

Hibernate Statistics API

Tags


Integration Test Suite for our API's

Mentors
Overview & ObjectivesImprove upon the existing Integration Test Framework for our API
Description


Helpful SkillsJava (JUnit / RestAssured), Git
Impact
  1. Reduces QA time leading up to a release
  2. developers
Other Resources

Getting started - Contributing to MifosX

Tags



Community App improvements


Mentors
Overview & ObjectivesImproving our Community App (https://github.com/openMF/community-app)
Description


Helpful SkillsAngular JS, Grunt
Impact
Other Resources

 Getting started - Contributing to MifosX

Tags