黃予岑KEN
← 所有作品
Full-stack / 後端

Folio Manager

給真實使用者的投資與記帳系統,核心是把投資組合的數字算對。以 FIFO 逐筆計算成本、跨幣別損益依交易當時的歷史匯率換算,並在外部股價來源延遲或缺資料時,仍給出可信的報酬率。

角色:獨立開發、給真實使用者技術主軸:金融計算 · 全端開發部署:Vercel + Supabase(PWA)
GitHubLive Demo

重點

+

FIFO 成本計算

台美股都以 FIFO 逐筆配對買賣,已實現、未實現損益分開算。

用 FIFO 把每筆賣出對應到先買進的部位,正確算出該次賣出的成本與已實現損益,剩下的部位再計未實現損益。

+

多幣別

美股的已實現與未實現損益,全程依交易當時的歷史匯率換算台幣。

美股的已實現與未實現損益,都依「交易當時」的歷史匯率換算台幣,而不是用現在的匯率回推,報酬率才反映真實成本。

+

多人分帳

多幣別即時換算、份額可不平均,各人只看到自己相關的費用。

建立分帳群組、邀請成員,自訂每人分擔金額(不限平均),支援多幣別即時換算,每個人只看得到與自己相關的費用。

+

自動股價同步

盤中背景自動同步 Yahoo Finance / TWSE 報價,缺資料可回填。

盤中背景自動抓 Yahoo Finance / TWSE 報價,頁面載入也會觸發更新,缺匯率的舊資料可一鍵回填。

↑ 點任一張卡片看它怎麼做到的

為什麼做這個

會做這個,是因為自己和朋友既要管投資、又要記帳,但手邊的工具總是分散——記帳的不管股票、看持倉的又只做台股,匯率還算得很粗。我想要一個能把投資和記帳收在一起、而且數字真的算對的地方:畢竟記帳算錯頂多漏記一筆,投資組合算錯一個數字,可能就讓人據此做出錯誤的財務判斷。

另一個動機是想藉這個專案認真練後端與真實的多人系統,而不是再寫一個 to-do CRUD:把資料在多人使用下安全隔離、串接會延遲又會缺資料的外部股價與匯率來源、把 FIFO 成本與跨幣別損益依交易當時的歷史匯率正確算出來。做一個給真人用、數字不能錯的系統,對我來說比堆功能更有挑戰。

功能總覽

📈 股票記帳與持倉損益+台美股分開、損益一目了然

台股、美股交易分開管理;持倉頁顯示股價漲跌、今日損益、損益與報酬率、均價、股數、市值與成本(台股 TWD、美股 USD 為主並附台幣換算);成本頁以 accordion 展開每檔的完整交易明細與攤後均價。

📊 投資組合分析+市值比例、損益走勢多維度

持有市值與台美股比例圓餅、含已實現的損益合計、組合市值走勢折線;個股損益走勢支援合計 / 已實現 / 未實現三種模式與 TWD 金額、報酬率切換,可篩日期區間與多檔切換。

💸 分帳+多幣別、各人只見自己的份

建立分帳群組邀請成員,自訂每人分擔金額(不限平均),支援多幣別;明細可依類別 / 付款方式 / 付款者篩選,即時顯示外幣與台幣合計,且各用戶只看到與自己相關的費用。

🧾 消費統計與對帳+整合支出、信用卡對帳

整合出國記帳與分帳的支出,依類別與付款方式彙整;對帳功能依信用卡 / 付款方式列出待對帳項目並可標記。

✈️ 出國記帳與行程+多幣別換算、Day-by-Day

多幣別自動換算台幣、依旅程分組;行程以 Day-by-Day 分頁顯示各天行程、住宿與交通。

🏦 一般記帳與資產快照+收支圖表、資產成長

收入 / 支出 / 轉帳含可自訂分類與付款方式、每月收支與分類圖表;每日輸入各帳戶餘額並繪製資產成長折線。

關鍵技術決策

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
← 回到作品列表