Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ankitwasankar/mftool-java

Java Mutual Fund Library
https://github.com/ankitwasankar/mftool-java

java mutual-fund-api mutual-funds

Last synced: about 2 months ago
JSON representation

Java Mutual Fund Library

Awesome Lists containing this project

README

        



mftool-java







&nbsp



This repository contains the MF TOOL - JAVA source code.
MF TOOL - JAVA is a Java library developed to ease the process of working with Indian Mutual Funds. It's powerful, actively maintained and easy to use.


Introduction  • 
Installation  • 
Usage  • 
Documentation  • 
Issue?

# Introduction
This mf-tool java library provides simple APIs/functions/methods to work with Indian Mutual Funds. You can:

- Fetch a list of all mutual fund schemes.
- Fetch a list of matching mutual fund schemes based on provided keywords.
- Fetch historic or current NAV (Net Asset Value) for a fund.
- Fetch details for a fund and fund house.
- Integrate this with any Java project.

## Installation
##### Maven
```

com.webencyclop.core
mftool-java
1.0.4

```
##### Graddle
```
implementation 'com.webencyclop.core:mftool-java:1.0.4'
```
For other dependency management tool, please visit
https://search.maven.org/artifact/com.webencyclop.core/mftool-java

## Usage
Sample code that shows how to use the library:

```
MFTool tool = new MFTool();
tool.matchingScheme("Axis"); //-- get a list of all schemes with Axis in its name
tool.getCurrentNav("120503"); //-- get current nav
```
The other available methods are described in the next section.

## Documentation
Multiple methods provide ways to work with mutual funds and related data. Those are listed below in detail.

### 1. How to initialize an MFTool object
```
MFTool tool = new MFTool();
```
This will create the object for you, but it's recommended that you create this object as a singleton object.
The object uses a caching mechanism, which under-the-hood caches the values of historic nav and other static information to improve the performance.

If you are using the Spring project, you can create the bean in ``@Configuration`` configuration class.
```
@Configuration
public class MFToolConfig{
@Bean
public MFTool initializeMfTool() {
MFTool tool = new MFTool();
return tool;
}
}
```
You can use MFTool in other services using ``@Inject`` or ``@autowired`` annotation.
```
@Service
public class MyService {

@Autowired
private MFTool tool;

public void getCurrentNav(String scheme) {
BigDecimal nav = tool.getCurrentNav(scheme);
}
}
```

### 2. How to fetch a list of all mutual fund schemes
```
@Service
public class MyService {

@Autowired
private MFTool tool;

public List fetchListOfAllMutualFundSchemes() {
List list = tool.allSchemes();
}
}
```

### 3. How to fetch a list of all schemes matching a keyword
```
@Service
public class MyService {

@Autowired
private MFTool tool;

public List getCurrentNav(String schemeCode) {
List list = tool.matchingScheme("Axis");
// This will fetch MF schemes that have "Axis" in the name.
}
}
```

### 4. Current NAV for the mutual fund scheme
An example schemeCode is 120503 (_Axis Long Term Equity Fund - Direct Plan - Growth Option_).

When we fetch a list of mutual funds, we get the scheme-name, and its corresponding schemeCode.

A scheme code uniquely identifies the mutual fund scheme.
```
@Service
public class MyService {

@Autowired
private MFTool tool;

public List fetchListSchemes(String schemeCode) {
BigDecimal nav = tool.getCurrentNav(schemeCode);
}
}
```

### 5. NAV on specific date for the scheme
LocalDate is used to define the date. For example:

``LocalDate date = LocalDate.parse("2021-07-13");``
```
@Service
public class MyService {

@Autowired
private MFTool tool;

public List getNavOnDate(String schemeCode, LocalDate date) {
BigDecimal nav = tool.getNavFor("120503", date);
}
}
```

### 6. List of historic NAV for the scheme
This method provides a list of all the NAVs for the given scheme.
```
@Service
public class MyService {

@Autowired
private MFTool tool;

public List getNavOnDate(String schemeCode) {
List list = tool.historicNavForScheme(schemeCode);
}
}
```

## Issue
This repository is maintained actively, so if you face any issue please raise an issue.

Liked the work ?


Give the repository a star :-)