A modular investment portfolio management platform built with FastAPI and React.
FinTrack helps users manage digital assets, record transactions, track portfolio performance, and analyze investments through a modern dashboard.
- β Create new assets
- β View all assets
- β Delete assets
- β Search assets by symbol
- β Create BUY / SELL transactions
- β Track transaction history
- β Calculate transaction value
- β Delete transactions
- β Validate asset balance before selling
- β Calculate current holdings
- β Calculate average buy price
- β Track current portfolio value
- β Calculate profit / loss
- β Total invested amount
- β Current portfolio value
- β Profit and loss calculation
- β Profit percentage
- π Python
- β‘ FastAPI
- π¦ Pydantic
- π Async API architecture
- π JSON based persistence
- βοΈ React
- β‘ Vite
- π¦ TypeScript
- π¨ Tailwind CSS
- π React Query
- π Axios
- π§ React Router
FinTrack/
βββ |ββ app/
β | |
β β βββ core/
β β β βββ configuration/
β β β
β β βββ modules/
β β β βββ assets/
β β β β βββ api.py
β β β β βββ service.py
β β β β βββ repository.py
β β β β βββ models.py
β β β β βββ schemas.py
β β β β
β β β βββ transactions/
β β β β βββ api.py
β β β β βββ service.py
β β β β βββ repository.py
β β β β βββ models.py
β β β β βββ schemas.py
β β β β
β β β βββ portfolio/
β β β β
β β β βββ analytics/
β β β
β β βββ main.py
β β
β βββ data/
β βββ assets.json
β βββ transactions.json
β
βββ frontend/
β βββ src/
β β βββ api/
β β βββ components/
β β βββ pages/
β β βββ routes/
β β βββ types/
β β βββ App.tsx
β β
β βββ package.json
β βββ vite.config.ts
β
βββ README.md
Enter backend folder:
cd backend
Create virtual environment:
python -m venv venv
Activate:
Windows:
venv\Scripts\activate
Install dependencies:
pip install -r requirements.txt
Run server:
uvicorn app.main:app --reload
Backend runs on:
http://127.0.0.1:8000
Frontend Setup
Enter frontend folder:
cd frontend
Install packages:
npm install
Run development server:
npm run dev
Frontend runs on:
http://localhost:5173
π API Documentation
π API Documentation
FastAPI provides automatic documentation:
Swagger:
http://127.0.0.1:8000/docs
π Security Notes
This project is a local development application.
Before publishing:
β Do not upload .env files
β Do not upload API keys
β Do not upload passwords
β Do not upload personal data
β Do not upload database files containing private information
Use .gitignore for sensitive files.
π Future Improvements
Authentication system
Database integration
Cloud deployment
Advanced charts
User accounts
Real-time market data