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

https://github.com/rajadilipkolli/hilla-folioman

Website when end user can search for mutual funds, check portfolio
https://github.com/rajadilipkolli/hilla-folioman

hilla-spring springboot

Last synced: 19 days ago
JSON representation

Website when end user can search for mutual funds, check portfolio

Awesome Lists containing this project

README

        

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/rajadilipkolli/hilla-folioman)

# Hilla FolioMan: Mutual Fund Portfolio Management System

## Project Overview

FolioMan is a comprehensive mutual fund portfolio management application built using Hilla and Spring Boot. The application helps investors track, analyze, and optimize their mutual fund investments in one centralized platform.

### What FolioMan Does

- **Portfolio Tracking**: Automatically imports and tracks your mutual fund investments using CAS (Consolidated Account Statement) files
- **Portfolio Analysis**: Analyzes your investment performance including XIRR (Extended Internal Rate of Return)
- **Investment Optimization**: Provides rebalancing tools to optimize your portfolio allocation
- **Transaction History**: Maintains a detailed history of all your mutual fund transactions

### Architecture Overview

FolioMan follows a modern client-server architecture with these key components:

1. **Frontend (Client-side)**
- Built with React and Hilla
- Responsive user interface for portfolio management
- Interactive data visualization components

2. **Backend (Server-side)**
- Java Spring Boot application
- RESTful API endpoints
- Business logic for investment calculations and portfolio analysis

3. **Database**
- PostgreSQL database for persistent storage
- Separate schemas for portfolio data and mutual fund information

4. **External Integrations**
- AMFI (Association of Mutual Funds in India) data integration
- BSE Star MF integration for fund data

## Prerequisites

Before running the application, ensure you have the following prerequisites installed:

- Java 21 or later
- Maven
- Docker (for local development with PostgreSQL)
- Python with pip (for CAS PDF file processing)
- casparser: A Python CLI tool required for processing password-protected CAS PDF files
```shell
pip install casparser
```
This tool must be installed on the server environment where the application will run. The PDF upload functionality for CAS files will not work without this dependency.

## Running the application

The project is a standard Maven project. To run it from the command line,
type `mvnw` (Windows), or `./mvnw` (Mac & Linux), then open
http://localhost:8080 in your browser.

You can also import the project to your IDE of choice as you would with any
Maven project.

### Run tests

```shell
./mvnw clean verify
```

### Run locally

```shell
docker-compose -f docker/docker-compose.yml up -d
./mvnw spring-boot:run -Dspring-boot.run.profiles=local
```
### Using Testcontainers at Development Time
You can run `TestApplication.java` from your IDE directly.
You can also run the application using Maven as follows:

```shell
./mvnw spotless:apply spring-boot:test-run
```

## Deploying to Production

To create a production build, call `mvnw clean package -Pproduction` (Windows),
or `./mvnw clean package -Pproduction` (Mac & Linux).
This will build a JAR file with all the dependencies and front-end resources,
ready to be deployed. The file can be found in the `target` folder after the build completes.

Once the JAR file is built, you can run it using
`java -jar target/hilla-folioman-1.0.0-SNAPSHOT.jar`

## Project structure

DirectoryDescription
src/main/frontend/Client-side source directory
    index.htmlHTML template
    index.tsFrontend
entrypoint, bootstraps a React application
    routes.tsxReact Router routes definition
    views/MainLayout.tsxMain
layout component, contains the navigation menu, uses
App Layout

    views/UI view
components
    themes/Custom
CSS styles
src/main/java/com/app/folioman/Server-side
source directory, contains the server-side Java code
    portfolio/Portfolio management services and models
    mfschemes/Mutual fund scheme data and services
    Application.javaServer entry-point

## Key Features

- **Import Mutual Funds**: Upload CAS files from mutual fund registrars (CAMS, Karvy)
- **Portfolio View**: See your entire mutual fund portfolio in one place
- **NAV Updates**: Automatically fetches latest NAVs (Net Asset Values)
- **Rebalancing Tool**: Calculate optimum allocation for new investments
- **Performance Tracking**: Track your investments over time with graphical reports

## Useful links

- Read the documentation at [hilla.dev/docs](https://hilla.dev/docs/).
- Ask questions on [Stack Overflow](https://stackoverflow.com/questions/tagged/hilla) or join our [Discord channel](https://discord.gg/MYFq5RTbBn).
- Report issues, create pull requests in [GitHub](https://github.com/vaadin/hilla).