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
- Host: GitHub
- URL: https://github.com/rajadilipkolli/hilla-folioman
- Owner: rajadilipkolli
- License: mit
- Created: 2024-08-03T12:26:25.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-04-02T21:58:27.000Z (25 days ago)
- Last Synced: 2025-04-02T22:30:40.652Z (25 days ago)
- Topics: hilla-spring, springboot
- Language: Java
- Homepage:
- Size: 2.86 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](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 components2. **Backend (Server-side)**
- Java Spring Boot application
- RESTful API endpoints
- Business logic for investment calculations and portfolio analysis3. **Database**
- PostgreSQL database for persistent storage
- Separate schemas for portfolio data and mutual fund information4. **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.html
HTML template
index.ts
Frontend
entrypoint, bootstraps a React application
routes.tsx
React Router routes definition
views/MainLayout.tsx
Main
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.java
Server 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).