New Machine Setup — Market Pulse¶
Everything needed to get the fintech development environment running on a new Windows machine.
1. Install Chocolatey (Windows package manager)¶
Open PowerShell as Administrator and run:
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
Then install system tools in one command:
choco install make git jq -y
2. Install System Tools¶
Install Python and Node.js manually (Chocolatey versions lag behind):
| Tool | Version (reference) | Download |
|---|---|---|
| Python | 3.13.x | https://python.org/downloads |
| Node.js | 22.x LTS | https://nodejs.org |
jq is required for the Claude Code status bar script.
3. Install Claude Code¶
npm install -g @anthropic-ai/claude-code
Then log in:
claude
# follow the browser auth flow
4. Configure Claude Code Global Settings¶
Create or replace C:\Users\<you>\.claude\settings.json:
{
"model": "sonnet",
"statusLine": {
"type": "command",
"command": "bash ~/.claude/statusline-command.sh"
},
"autoUpdatesChannel": "latest",
"effortLevel": "medium"
}
5. Copy the Status Bar Script¶
Copy ~/.claude/statusline-command.sh from the old machine to the same path on the new machine:
C:\Users\<you>\.claude\statusline-command.sh
Make sure Git Bash or WSL is available so bash can run the script.
The script displays: context window usage, git status, current model, 5h/7d rate limit timers and burn rate.
See docs/implementation/statusline.md for full setup details and the script source.
6. Set Up SSH Key for GitHub¶
Generate a new key (press Enter twice for no passphrase):
ssh-keygen -t ed25519 -C "your@email.com" -f "$env:USERPROFILE\.ssh\id_ed25519"
Add GitHub to known hosts and test:
ssh-keyscan github.com >> ~/.ssh/known_hosts
ssh -T git@github.com
# Should print: Hi <username>! You've successfully authenticated...
If the test fails, add the public key to GitHub first:
cat ~/.ssh/id_ed25519.pub
Go to GitHub → Settings → SSH and GPG keys → New SSH key, paste the output, and save. Then re-run the test.
7. Clone the Repo¶
git clone git@github.com:kosungjunmichael/FinTrack.git E:\prej\FinTrack
cd E:\prej\FinTrack
8. Copy Secret Files (NOT in git)¶
These must be copied manually from the old machine:
| File | What it contains |
|---|---|
E:\prej\FinTrack\.env |
API keys (Finnhub, DeepL, Anthropic, etc.) |
.env contents reference:
FINNHUB_API_KEY=...
POLYGON_API_KEY=...
AZURE_TRANSLATOR_KEY=...
AZURE_TRANSLATOR_REGION=eastus
ANTHROPIC_API_KEY=...
DATABASE_URL= # leave blank for local SQLite
9. Install All Dependencies¶
cd E:\prej\FinTrack
make init
This runs pip install -r requirements.txt, pip install -r requirements-dev.txt, and cd frontend && npm install in one shot.
requirements.txtincludes: yfinance, FinanceDataReader, pykrx, BeautifulSoup4, selenium, VADER, transformers, torch, konlpy, pandas, numpy, scikit-learn, arch (GARCH), ta, SQLAlchemy, psycopg2-binary, APScheduler, DeepL, anthropic, google-generativeai, Pillow, FastAPI, uvicorn[standard], python-multipart, plotly, python-dotenv, httpx, tenacity, loguru.
10. Optional — Copy Existing Data¶
Skip these if you're OK starting fresh (the scheduler repopulates everything).
| File | What it contains |
|---|---|
E:\prej\FinTrack\fintech.db |
SQLite DB with all scraped news, prices, predictions |
model_cache/is gitignored and not needed — models are retrained automatically on firstrun_predictionsjob.
11. Run the App¶
Open two terminals:
Terminal 1 — Backend:
cd E:\prej\FinTrack
make run
# or for fast restart (skips initial data load):
make run-fast
Terminal 2 — Frontend:
cd E:\prej\FinTrack\frontend
npm run dev
- Backend API: http://localhost:8000
- Frontend: http://localhost:5173
12. Verify Everything Works¶
# Check backend is up
curl http://localhost:8000/health
# Check DB has tables
sqlite3 fintech.db ".tables"
Notes on Claude Code¶
No plugins are installed — the project uses Claude Code's built-in skills and agents defined in .claude/ inside the repo. Those come with the repo automatically.
The project-level Claude settings (permissions) live in .claude/settings.local.json — this file is tracked in git and comes with the repo, so no manual copying is needed.