Full-stack / 後端
Folio Manager
給真實使用者的投資與記帳系統,核心是把投資組合的數字算對。以 FIFO 逐筆計算成本、跨幣別損益依交易當時的歷史匯率換算,並在外部股價來源延遲或缺資料時,仍給出可信的報酬率。
角色:獨立開發、給真實使用者技術主軸:金融計算 · 全端開發部署:Vercel + Supabase(PWA)
重點
+
FIFO 成本計算
台美股都以 FIFO 逐筆配對買賣,已實現、未實現損益分開算。
+
多幣別
美股的已實現與未實現損益,全程依交易當時的歷史匯率換算台幣。
+
多人分帳
多幣別即時換算、份額可不平均,各人只看到自己相關的費用。
+
自動股價同步
盤中背景自動同步 Yahoo Finance / TWSE 報價,缺資料可回填。
↑ 點任一張卡片看它怎麼做到的
為什麼做這個
會做這個,是因為自己和朋友既要管投資、又要記帳,但手邊的工具總是分散——記帳的不管股票、看持倉的又只做台股,匯率還算得很粗。我想要一個能把投資和記帳收在一起、而且數字真的算對的地方:畢竟記帳算錯頂多漏記一筆,投資組合算錯一個數字,可能就讓人據此做出錯誤的財務判斷。
另一個動機是想藉這個專案認真練後端與真實的多人系統,而不是再寫一個 to-do CRUD:把資料在多人使用下安全隔離、串接會延遲又會缺資料的外部股價與匯率來源、把 FIFO 成本與跨幣別損益依交易當時的歷史匯率正確算出來。做一個給真人用、數字不能錯的系統,對我來說比堆功能更有挑戰。
功能總覽
關鍵技術決策
FIFO 成本、依歷史匯率換算
成本一律用 FIFO 逐筆配對買賣、已實現與未實現損益分離計算;真正麻煩的是美股——已實現與未實現損益都要依交易當時的歷史匯率換算台幣,而非用現價匯率回推,報酬率才反映真實成本。
系統架構
前端:Next.js 16 App Router + TypeScript + Tailwind v4(PWA)
├─ 圖表:Recharts
└─ 部署:Vercel
後端 / 資料:Supabase(Postgres)
└─ 依使用者 / 群組成員隔離資料列
外部資料源:
├─ Yahoo Finance API(美股報價、歷史匯率)
├─ TWSE MIS API(台股盤中報價)
└─ 盤中背景同步 + 頁面載入觸發 + 歷史匯率回填
技術棧
Next.js 16 (App Router)TypeScriptTailwind CSS v4SupabaseRechartsVercelYahoo Finance APITWSE MIS API