前四天,我從選定分錢工具、整理需求,一路做到連接 GitHub 與補上 README。專案開始有了版本紀錄,也有可以繼續開發的基礎。今天先不急著增加程式,而是回頭想一件事:如果真的把這個工具交給朋友使用,他會知道要從哪裡開始嗎?
目前已經有能操作的原型,但隨著需求增加,畫面也需要重新整理。最初只要輸入一筆金額、選擇付款人,就能算出結果。現在希望支援多筆支出、不同人代墊、指定分攤成員,未來還要加入現金找零。如果只是一直把欄位和按鈕加上去,操作很容易變得混亂。
所以今天的目標,是先把使用流程排清楚,再決定每個畫面需要放什麼。這次整理的是設計稿,包含尚未實作的功能,不代表今天已經把所有畫面做進程式。
我先用一場週末聚餐來思考。使用者進入系統後,應該先建立一本帳,例如「週末聚餐」,再加入小明、小美和阿哲。接著把晚餐、咖啡與計程車等支出一筆一筆記下來,每筆都指定誰先付款,以及哪些人需要分攤。
記錄完成後,使用者應該能先核對支出,再查看最後的結算結果。如果發現某筆金額填錯,或把沒有喝咖啡的人也算進去了,就能回去修改,而不是必須整本帳重新輸入。
依照這個順序,我把系統整理成四個主要畫面:帳本首頁、帳本明細、結算,以及現金付款與找零。這四個畫面代表不同的操作階段,不一定都要做成獨立網頁,但每個階段要讓使用者完成的事情必須清楚。
帳本首頁負責讓使用者建立或選擇帳本。聚餐與旅行可以分開記,每本帳顯示名稱、成員數、支出筆數與合計金額。如果還沒有任何帳本,畫面應該直接提示「先建立一本帳,記下這次一起的花費」,並提供建立按鈕,讓使用者知道下一步。
進入帳本明細後,主要工作就是管理成員與記錄支出。每筆支出需要顯示名稱、金額、代墊者和分攤方式,也要能開啟編輯。我希望使用者不用點進每一筆,就能先看懂大致內容;需要修改時,再進入表單調整。
結算畫面則把重點放在兩個問題:每個人應該分攤多少,以及最後要付多少錢給誰。因此,畫面會先列出每個人的已代墊與應分攤金額,再顯示抵銷後的付款清單。這樣使用者不只看到答案,也能核對答案是怎麼來的。
以之前的聚餐案例來說,晚餐 1,200 元由小明代墊,咖啡 280 元由小美代墊,計程車 350 元由阿哲代墊。依照參與成員與零頭分配規則,最後小美應付小明 377 元,阿哲應付小明 166 元。這些付款對象與金額,應該是結算畫面最容易看到的資訊。
確認結算後,再選擇使用轉帳或現金。如果使用轉帳,就查看付款清單;如果使用現金,再進入面額與數量的輸入畫面。這樣不需要現金找零的人,就不用先填一大堆與自己無關的欄位。
現金畫面會讓每位成員輸入這次願意拿來結帳的鈔票與硬幣數量,包括 1,000 元、500 元、100 元,以及 50 元、10 元、5 元和 1 元。收款人也需要填寫,因為他可能要提供找零。
這裡有一個小細節:沒有某種面額,和還沒填寫,是不同的狀態。如果全部預設成零,系統可能把使用者漏填的資料誤認成真的沒有。因此,我希望數量先留白,確認沒有時再填零,讓系統能分辨資料是否完整。
找零結果也不能只顯示「小美淨付 150 元」,而是要告訴大家實際怎麼交付。例如在小美應付小明 150 元、小美有兩張百元鈔、小明有一個 50 元的情境裡,畫面可以依序顯示:小美給小明兩張 100 元,再由小明找回一個 50 元。最後再列出雙方的淨付與淨收金額,方便核對。
如果無法找到剛好的現金方案,畫面也需要有下一步,讓使用者可以重新確認現金數量、換零錢,或返回轉帳明細。未來實作時,還要區分「已確認沒有可行解」與「計算尚未找到方案」,避免把不同原因都寫成現金不足。
除了正常流程,今天也整理了幾個容易忽略的情況。例如沒有支出時,不能直接顯示已結清,而應引導使用者先記帳。自訂分攤金額加總不符時,要清楚顯示還差多少或超出多少,並阻止儲存。刪除支出需要先確認;移除與支出有關聯的成員時,也要提示先處理相關帳目。
另一個重要規則,是修改資料後不能繼續沿用舊結果。只要支出金額、分攤成員或付款人改變,結算就必須更新。現金面額與數量改變時,原本的找零方案也需要重新計算,不能讓使用者照著已經失效的步驟付款。
這些畫面提供的都只是付款建議,並不代表實際款項已經交付。第一版不會因為算出結果,就自動把帳目標成已付款,也不會真的替使用者執行銀行轉帳。
視覺上,我希望延續之前選定的中性可愛風格,用藍灰色、奶油白和圓角卡片,讓記帳畫面看起來親切一點。不過,金額、付款對象與操作按鈕仍然要保持清楚。手機版則採單欄排列,讓使用者可以順著畫面完成操作,不必在很窄的空間裡來回找按鈕。
今天完成的是一份操作流程、四個畫面的文字草圖,以及幾個重要的例外處理規則。雖然沒有新增程式,但原本散落的功能開始有了順序,也比較能看出每一頁存在的目的。
和 AI 討論介面時,我也發現,比起只說「幫我做得好看一點」,先說清楚使用者從哪裡進來、需要做什麼、完成後去哪裡,會更容易得到符合需求的設計。畫面的安排應該跟著操作需求走,再用樣式讓它更清楚、更舒服。
接下來,會把今天整理出的帳本、成員、支出與分攤關係,進一步轉成資料結構,也思考現金面額與找零方案需要保存哪些資訊。Day 6,就從「帳本、成員與支出:資料要怎麼設計」開始。