Working with Code
fineract-provider
The main folder for the Mifos X Financial Service Engine. Gradle build scripts and project files are located here.
All sources can be found below src and the sub-folder structure follows the recommended gradle/maven approach:
- main/java
- contains all Java source files
- main/resources
- contains the log configuration
- main/resources/META-INF
- contains all configuration files for Hibernate and Spring
- main/resources/sql/migrations
- contains all SQL scripts used by Flyway and some additional scripts to populate sample data
- test/java
- contains all JUnit source files
- test/resource/META-INF
- contains unit test specific Spring configurations
- integrationTest/java
- contains all Java source files for automated test scenarios
Mifos X Community App
community-app
Project root containing license, readme, and changlog files. In addition some configuration for build and run time dependencies are located here.
app
All source files, e.g. templates, styles and scripts, can be found here.
test
All source files for Jasmine tests can be found here.
Package Structure
The package structure follows the domain.module.layer approach. Where domain is org.mifosplatform, module is a functional area of the software and can contain sub-modules, and layer is the technical function of this module.
All sections of a package name are in singular.
A layer can be:
- annotation
- All annotations for this module
- api
- All RESTful resources for this module
- data
- POJOs that are transmitted to the API consumer
- domain
- Entities and data access classes
- exception
- All module specific exceptions
- handler
- All module specific command handlers
- provider
- Factory classes
- service
- All service classes enclosing the business logic for this module
- util
- Helper and utility classes
Some examples
org.mifosplatform.command.api // valid org.mifosplatform.organisation.office.domain // valid using a sub-module org.mifosplatform.service.batch // invalid; module must be before the layer