Skip to content

Instantly share code, notes, and snippets.

@thesmallstar
Last active March 11, 2023 17:20
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save thesmallstar/265d4f75a3a91bedb6acbf54b3e67cf9 to your computer and use it in GitHub Desktop.
Save thesmallstar/265d4f75a3a91bedb6acbf54b3e67cf9 to your computer and use it in GitHub Desktop.
GSoC 2020 at Apache Final Report!

Google Summer of Code 2020 Final Report

1_pOBGFa_k7RN24LlnKcvE6Q (1)

Fineract is definately more Robust now! before you read the work report, I want to thank my mentors who have been supportive, helped me with more than just "code", the Mifos community also played a important role and motivated me with weekly interactive sessions. This was a great experience!

Project Summary

  • Added 50+ Checkstyles to the code
  • Made Swagger-UI Usable you can see the brand new doc here.
  • Added Code Autoformatting feature using spotless.
  • Removed SQL String concatenation from multiple modules
  • Wrote integration tests, solved small issues as seen during work period.

You can check my 90+ PRs during GSoC period here, you can read what was done in each part and how can you extend the work in the further sections of this report.

Checkstyles

What was done?: I have implemeted more than 50 checkstyles, checkstyles are used to maintain code quality and uniformity, it often helps to find hidden bugs. In such a large project having checkstyles was a necessity. My work included naming checkstyles, general code quality checkstyles, code formatting checkstyles, exception checkstyles etc. From no control over the code, we now control each and every aspect of how our code is written. You cannot leave an empty if statement, or give non-uniform spacing. Everything is organised!

What is there for you?: Not much, we are only left to add java-doc checkstyles which control how we use comments in code, not much important. Other than that 3-4 very hard to implement checkstyles are left to be added some of which would be added by me in the coming days. If interested you keep track here

Swagger-ui Documentation

What was done?: This was been worked on since long on apache fineract, and finally making it work has been a real opensource success story! Swagger-UI documentation is the API-doc which was been worked on for 3 years. I along with the other contributors solved various issues that blocked its release. Now We use Swagger-UI to generate and maintain our API documentation, you can see the demo video here or a live version here. If you interested to know more about Swagger-UI you can check their website.

What is there for you?: You have the brand new DOC! For contrubiting, Not much again, The only thing left is to add a small doc on how to use swagger in our code for new developers, I will be doing this in a few days. If interested, you may want to update how swagger-UI looks by adding a side-bar and making it more beautiful. You can check the Swagger-UI issues on apache fineract Jira.

Code Autoformatting feature using spotless

What was done?: Having many checkstyles in our code was a good advantage, but this increased headache for developers, you can imagine having to write a perfect code everytime or the build fails, and what is perfect is controlled by over 50 checkstyles. To solve this issue Code auto formatting was added, you can see it here or read about how to use it in our readme here. The pain to enforce all checkstyles was converted to the joy of fixing many checkstyles with one command.

What is there for you?: This is a very optional work you may want to take, we now automatically enforce 40 checkstyles with just a command. You may want to(if possible) make this include more checkstyles.

Removed SQL String concatenation from multiple modules

What was done?: The main focus in this section was to remove the string concatanated SQL and to implement the SQL builder, I have covered multiple modules and implemented SQL builder, some of the PRs for this section as of 30th Aug 2020, are not yet merged and are under review. This directly helped to improve code security.

What is there for you?: You can keep track of this issue here, if interested, you may want to dig deeper and find more SQL related bugs and SQL concatenations to remove.

Wrote integration tests, solved small issues and Future plans!

During the work period, I have solved multiple issues as encountered by the community. Wrote Integration tests and been active to review PRs. This is the same thing I plan to do on this project for years to come :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment