[ https://issues.apache.org/jira/browse/FINERACT-2257 ]
Kapil Panchal deleted comment on FINERACT-2257:
-----------------------------------------
was (Author: JIRAUSER310058):
h3. *WBS-1 (Work Breakdown Structure):*
*Scope:*
1) GuarantorsResourceAPI - to refactor from fineract-provider to fineract-loan.
2) Refactor DTOs from fineract-provider to fineract-core, as fineract-core is a
common module and presently Guarantors DTOs have tight coupling with the
fineract-provider module.
3) There are nine API's that are a part of the GuarantorResourceAPI Class.
4) Candidates for new command conversion are three (POST, PUT, DELETE).
5) Each API has existing handlers that have their respective service classes as
dependencies.
6) Each dependency has existing JsonCommand object which is a major effort.
7) Each API above has associated test cases (unit tests, integration tests and
e2e tests).
*Constraints:*
1) Software constraints include,
a) Existing development build are taking the majority of efforts.
* Modules have test cases that have import dependency errors, the builds are
only successful when disabled all the tests including unit tests, integration
tests and e2e tests.
* Builds itself take about 30-45 minutes (happy path).
* Every sync with fineract repository the builds have to be repeated to ensure
that the actual efforts are not broken.
* Code cleaning tools take additional effort.
* Scope creeps in situations where one class or method is reused.
2) Faster and transparent technical decision making process.
3) Faster and transparent technical approval process.
4) Quick formation of Tiger teams with approved designations to aid the above.
*Training & Development:*
1) Latest and the best technological tools are getting incorporated into Apache
Fineract Platform, which also needs the personnels (developers and committers)
to have the latest industry trends and knowledge.
2) Efforts to get the latest knowledge and practicing hands on and writing
helloworld programs.
3) Implementing this new knowledge with the expectations of the Apache Fineract
Platform.
*Execution:*
1) Maintain a RAIL (Rolling Action Items List).
2) Maintain a timesheet where efforts are logged and monitored on a daily basis
(Jira).
*Conclusion:*
1) There are no major hold ups or bottlenecks.
2) Code optimization efforts on track.
*Future Requirements:*
1) Reduce the Ram footprint of the application as currently at peak load it
takes about 20Gb.
2) Responses from Database can be improved if the complex inner joins and
database tables are refactored.
3) Reduce boilerplate code.
> New command processing - Loan Guarantor Management
> (org.apache.fineract.portfolio.loanaccount.guarantor)
> --------------------------------------------------------------------------------------------------------
>
> Key: FINERACT-2257
> URL: https://issues.apache.org/jira/browse/FINERACT-2257
> Project: Apache Fineract
> Issue Type: Sub-task
> Reporter: Aleksandar Vidakovic
> Assignee: Kapil Panchal
> Priority: Major
> Time Spent: 32h
> Remaining Estimate: 0h
>
> (i) Edit only in text mode!
> 1. General
> (!) Remove all obsolete Swagger annotations (aka "dummy" classes)
> (!) Refactor input and return types of business logic services if needed (no
> more references to JSON in the business logic)
> (!) Existing integration tests need to work as is without any changes
> (!) Input types are named with suffix "Request" (e.g.
> "org.apache.fineract.infrastructure.businessdate.data.BusinessDateRequest")
> (!) Return types are named with suffix "Response" (e.g.
> "org.apache.fineract.infrastructure.businessdate.data.BusinessDateResponse")
> (!) If you need to transform POJO types then use MapStruct where ever possible
> (!) Respect standard package structure
> 2. Read Requests
> (!) All "@GET" annotated functions in all JAX-RS resource classes are
> returning proper Java types (aka "POJOs")
> (!) Return types are defined in the module's/package's DTO package (e.g.
> "org.apache.fineract.infrastructure.businessdate.data")
> 3. Write Requests
> (!) All "@PUT" and "@POST" annotated functions in all JAX-RS resource classes
> are returning proper Java types (aka "POJOs")
> (!) Input types are defined in the module's/package's DTO package (e.g.
> "org.apache.fineract.infrastructure.businessdate.data")
> (!) Inject new "org.apache.fineract.command.core.CommandPipeline" component
> and refactor legacy command structures to new concept
> (!) Create command specific child implementation of
> "org.apache.fineract.command.core.Command"
> (!) Use Jakarta Validation instead of proprietary validation service
> (!) Create message resource bundles for the validation error messages
> 4. List refactored JAX-RS resource classes (canonical names) below
> - TBD
> 5. Command Handlers
> (!) Refactor legacy command handlers to new concept
> 6. Run Integration Tests
> (!) All related integration tests pass
--
This message was sent by Atlassian Jira
(v8.20.10#820010)