Hello Fineract Team,
I’m Harsh Raj Srivastav, currently working as an SDE Intern at ClickPe
YC23. Recently, I integrated Apache Fineract into our ecosystem for core
banking, and it has been an incredible learning experience—from building
and making modifications to finally deploying it in production. We recently
migrated to version* 1.8.4.*
While working with Fineract, I came across a few issues that I had to
modify at an organizational level:
1.
*Hardcoded Document Upload Size*
- The document upload size is currently hardcoded, but it would be more
flexible if it were configurable via environment variables.
- I made changes to support this in our setup. The relevant file is:
ContentRepository.java
<https://github.com/apache/fineract/blob/develop/fineract-document/src/main/java/org/apache/fineract/infrastructure/documentmanagement/contentrepository/ContentRepository.java>
2.
*Loan Tenure Modification Issue*
- I tried changing the loan tenure for an active loan after enabling
"Terms vary based on loan cycle." While I was able to update existing
loans, new loans started failing with a 500 error.
- The logs pointed to a null value in cycleNumber. Here’s a document
with my logs:
Error Logs
<https://docs.google.com/document/d/1TP8-CyM4jLjMI3SwkKdZ-UwKiv9EUBzC0APVq0UDO9w/edit?usp=sharing>
- Although migrating to v1.8.4 resolved this for us, we faced several
challenges while connecting it to our database.
3.
*Sequence ID Handling for Loan & Client*
- In our use case, we needed to maintain a specific clientId and loanId
to keep our services in sync.
- We modified public.m_loan_id_seq and public.m_client_id_seq, which
mostly worked. However, occasionally, we encountered errors when
creating a
new loan or client immediately after changing the sequence number—though
the loan/client still got created.
I have gone through the codebase, but since this is such a large and
well-structured project, I’m not sure where to start contributing.
I would love some guidance on:
- How to begin contributing to Fineract in the right way.
- The best practices or methodology to follow.
- If possible, being tagged in any beginner-friendly bugs or tasks
(whether related to code, documentation, or deployment).
Along with Fineract, I have also worked on integrating *Camunda 8 for BPMN
orchestration* and *Temporal for workflow management* in our system.
I’m really excited to contribute and be a part of this amazing project. Any
help or pointers would be greatly appreciated!
Looking forward to your guidance.
Best regards,
Harsh Raj Srivastav
LinkedIn <https://linkedin.com/in/harsh-srivastav123> | GitHub
<https://github.com/Harsh-Srivastav123>