https://github.com/ptbsare/wealth-manager
https://github.com/ptbsare/wealth-manager
Last synced: 28 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/ptbsare/wealth-manager
- Owner: ptbsare
- License: gpl-3.0
- Created: 2026-06-09T15:03:52.000Z (28 days ago)
- Default Branch: main
- Last Pushed: 2026-06-09T17:34:43.000Z (28 days ago)
- Last Synced: 2026-06-09T18:17:54.932Z (28 days ago)
- Language: Python
- Size: 125 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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.