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

https://github.com/ptbsare/wealth-manager


https://github.com/ptbsare/wealth-manager

Last synced: 28 days ago
JSON representation

Awesome Lists containing this project

README

          

# Wealth Manager

A comprehensive wealth management application for tracking stock holdings, dividends, and dividend calendar with mobile-friendly UI.

## Features

- πŸ“Š **Portfolio Tracking**: Track holdings with cost, quantity, and real-time market value
- πŸ’° **Dividend Calendar**: View upcoming dividend payments with color-coded dates (πŸ”΅Record, 🟠Ex-dividend, 🟒Pay)
- πŸ“ˆ **Dividend Yield**: Calculate dividend yield for each holding
- 🎯 **Payback Progress**: Track how much of your investment has been recovered through dividends
- πŸ“§ **Email Notifications**: Get notified before dividend payments via SMTP
- πŸ€– **MCP API**: RESTful API with authorization header for LLM integration
- πŸ“± **Mobile-Friendly**: Responsive design optimized for mobile devices
- πŸŒ“ **Theme Support**: Light, dark, and auto themes
- ⚑ **Caching**: Dividend data cached for 24 hours for fast loading

## Tech Stack

- **Backend**: FastAPI + SQLite
- **Frontend**: Modular HTML/CSS/JavaScript (vanilla, no framework)
- **Stock Data**: BaoStock (baostock package)
- **Package Manager**: UV

## Quick Start

### Run with UV

```bash
git clone https://github.com/ptbsare/wealth-manager.git
cd wealth-manager
uv sync --extra dev
uv run uvicorn app.main:app --host 0.0.0.0 --port 8000
```

Then open http://localhost:8000 in your browser.

## Project Structure

```
wealth-manager/
β”œβ”€β”€ app/ # Application code
β”‚ β”œβ”€β”€ api/ # API routes
β”‚ β”œβ”€β”€ models/ # Data models
β”‚ β”œβ”€β”€ services/ # Business logic
β”‚ └── templates/ # HTML templates
β”œβ”€β”€ static/ # Static files
β”‚ β”œβ”€β”€ css/style.css
β”‚ β”œβ”€β”€ js/app.js
β”‚ └── manifest.json
β”œβ”€β”€ tests/ # Test suite (54 tests)
β”œβ”€β”€ data/cache/ # Cached dividend data
β”œβ”€β”€ pyproject.toml # UV project configuration
β”œβ”€β”€ LICENSE # GPLv3 License
└── README.md # This file
```

## API Endpoints

### Holdings
- `GET /api/holdings` - List all holdings
- `POST /api/holdings` - Add a new holding
- `PUT /api/holdings/{id}` - Update a holding
- `DELETE /api/holdings/{id}` - Delete a holding

### Dividends
- `GET /api/dividends/calendar` - Get dividend calendar
- `POST /api/dividends/fetch-from-baostock` - Auto-fetch dividends

### Settings
- `GET /api/settings` - Get settings
- `PUT /api/settings` - Update settings

### MCP (LLM Integration)
- `GET /mcp/holdings` - Get holdings (requires Authorization header)
- `GET /mcp/dividends` - Get dividends
- `GET /mcp/calendar` - Get dividend calendar

## License

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

See [LICENSE](LICENSE) for the full license text.

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## Disclaimer

This software is for educational and research purposes only.
Stock data is provided by BaoStock. Always verify data independently
before making investment decisions.