Skip to content

rajadilipkolli/hilla-folioman

Repository files navigation

Open in Gitpod

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
    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

./mvnw clean verify

Run locally

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:

./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

About

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5

Languages