尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Foliowise was built using AI-assisted development (Claude). I designed the
product, defined the architecture, and directed implementation through detailed
prompting and iteration. All feature decisions, debugging, deployment, and
integration work were hands-on. The codebase reflects my understanding of
full-stack development with FastAPI, Angular, and PostgreSQL.檢視完整 README ↗Features • Demo • Tech Stack • Installation • API Reference • Documentation
Foliowise was built using AI-assisted development (Claude). I designed the product, defined the architecture, and directed implementation through detailed prompting and iteration. All feature decisions, debugging, deployment, and integration work were hands-on. The codebase reflects my understanding of full-stack development with FastAPI, Angular, and PostgreSQL.
Foliowise is a comprehensive investment portfolio tracker that combines real-time market data, AI-powered insights, sentiment analysis, and gamified virtual trading competitions. Built for modern investors who want more than just tracking—they want intelligence.
Track. Analyze. Compete. Grow.
Real-time portfolio overview with performance charts, allocation breakdown, and key metrics.
Virtual trading competitions with leaderboards, achievements, and paper trading.
Get intelligent recommendations and chat with AI about your portfolio.
| Technology | Version | Purpose |
|---|---|---|
| Python | 3.11+ | Runtime |
| FastAPI | 0.100+ | Web framework |
| PostgreSQL | 15+ | Database |
| SQLAlchemy | 2.0+ | ORM |
| Pydantic | 2.0+ | Validation |
| yfinance | 0.2+ | Market data |
| TextBlob | 0.17+ | Sentiment analysis |
| Stripe | 7.0+ | Payments |
| Resend | 0.6+ | Email delivery |
| Technology | Version | Purpose |
|---|---|---|
| Angular | 21 | SPA framework |
| TypeScript | 5.9 | Language |
| Tailwind CSS | 3.4 | Styling |
| Chart.js | 4.5 | Data visualization |
| RxJS | 7.8 | Reactive programming |
# Clone repository
git clone https://github.com/singhsimar486/Foliowise.git
cd Foliowise/backend
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Configure environment
cat > .env << EOF
DATABASE_URL=postgresql://username@localhost:5432/foliowise
SECRET_KEY=$(openssl rand -hex 32)
DEBUG=True
# Optional: Stripe (for subscriptions)
STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...
STRIPE_PRO_PRICE_ID=price_...
STRIPE_PRO_PLUS_PRICE_ID=price_...
# Optional: Resend (for email alerts)
RESEND_API_KEY=re_...
FRONTEND_URL=http://localhost:4200
EOF
# Create database
createdb foliowise
# Run server
uvicorn app.main:app --reload
cd ../frontend
# Install dependencies
npm install
# Configure environment
echo 'export const environment = { apiUrl: "http://localhost:8000" };' > src/environments/environment.ts
# Run development server
npm start
| Method | Endpoint | Description |
|---|---|---|
| POST | /auth/register | Create account |
| POST | /auth/login | Get JWT token |
| GET | /auth/me | Current user |
| Method | Endpoint | Description |
|---|---|---|
| GET | /holdings/ | List holdings |
| POST | /holdings/ | Create holding |
| PUT | /holdings/{id} | Update holding |
| DELETE | /holdings/{id} | Delete holding |
| POST | /holdings/import | Import CSV |
| Method | Endpoint | Description |
|---|---|---|
| GET | /portfolio/summary | Portfolio with live data |
| GET | /portfolio/allocation | Allocation breakdown |
| GET | /portfolio/gains | Realized/unrealized gains |
| GET | /portfolio/performance | Historical performance |
| Method | Endpoint | Description |
|---|---|---|
| GET | /market/quote/{ticker} | Real-time quote |
| GET | /market/history/{ticker} | Historical OHLCV |
| GET | /market/search | Search stocks |
| GET | /market/predict/{ticker} | Price prediction |
| Method | Endpoint | Description |
|---|---|---|
| GET | /competitions/ | List competitions |
| POST | /competitions/{id}/join | Join competition |
| POST | /competitions/{id}/trade | Make virtual trade |
| GET | /competitions/{id}/leaderboard | Get leaderboard |
| GET | /competitions/achievements/me | User achievements |
/alerts/ — Price alert management/watchlist/ — Stock watchlist/insights/ — AI analysis and chat/dividends/ — Dividend tracking/goals/ — Portfolio goals/transactions/ — Transaction history/subscriptions/ — Stripe integration/settings/ — Account managementFull API documentation: See TECHNICAL_DOCUMENTATION.md
| Document | Description |
|---|---|
| TECHNICAL_DOCUMENTATION.md | Complete technical reference (80+ pages) |
| TECHNICAL_DOCUMENTATION_PART2.md | API examples & troubleshooting |
| README_DOCUMENTATION.md | Documentation index |
chmod +x convert_to_pdf.sh
./convert_to_pdf.sh
foliowise/
├── backend/
│ ├── app/
│ │ ├── main.py # FastAPI application
│ │ ├── config.py # Environment settings
│ │ ├── database.py # SQLAlchemy setup
│ │ ├── models/ # ORM models (9 files)
│ │ ├── routers/ # API routes (14 files)
│ │ └── services/ # Business logic (8 files)
│ └── requirements.txt
│
├── frontend/
│ ├── src/app/
│ │ ├── components/ # Angular components (22)
│ │ ├── services/ # API & auth services
│ │ └── guards/ # Route guards
│ ├── tailwind.config.js
│ └── package.json
│
├── TECHNICAL_DOCUMENTATION.md
└── README.md
| Feature | Free | Pro | Pro+ |
|---|---|---|---|
| Holdings | 10 | 100 | Unlimited |
| Price Alerts | 1 | 25 | Unlimited |
| Stock Lookups/day | 5 | 50 | Unlimited |
| AI Questions/day | 3 | 50 | Unlimited |
| Competitions | 1 | Unlimited | Unlimited |
| Email Alerts | No | Yes | Yes |
| Priority Support | No | No | Yes |
| Price | $0 | $9.99/mo | $19.99/mo |
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License - see the LICENSE file for details.
Simar Singh
Built with passion for investors who want more.