APP Development Report  /  2025

留言板系統
APP 專案報告

MIT App Inventor  ·  Firebase Realtime DB  ·  Android

github.com/096013/ai_car_lanefollowed
01

畫面功能介紹(Screens)

🔐
SCREEN 1
登入頁面
使用者輸入帳號與密碼進行登入。驗證通過後自動跳轉至留言板頁面(S2)。
💬
SCREEN 2
留言板頁面
核心功能頁面,支援發言、顯示所有留言,以及對留言按讚互動。
📝
SCREEN 3
註冊頁面
新使用者填寫帳號與密碼完成註冊,資料寫入 Firebase。
⚙️
SCREEN 4
使用者頁面
已登入使用者可在此更改密碼,並進行帳戶設定。
02

多畫面切換流程

S1登入頁面
S2留言板
S4使用者設定

S1登入頁面
S3註冊頁面
S1返回登入

open another screen

使用 App Inventor 內建積木 open another screen 切換畫面並傳遞參數

close screen

使用 close screen 返回上一頁,確保畫面堆疊正確

TinyDB / Global Variables

透過全域變數或 TinyDB 在畫面間保存登入狀態與使用者名稱

03

雲端資料庫(Firebase Realtime DB)

🔥 ProjectBucket(App 名稱)
📁 帳號管理
account / password
使用者帳號與密碼對應列表
📁 文章發布
article / author
聊天室文章內容與作者名稱
資料對應清單 (List)
📁 點讚統計
like / vote
文章總讚數與按讚使用者記錄
資料欄位 (Tags) 內容說明
account / password 使用者帳號與對應密碼列表
article / author 聊天室發布的文章內容與作者名稱
like / vote 文章獲得的總讚數及按讚使用者記錄
FirebaseDB 元件設定

在 App Inventor 中加入 FirebaseDB 元件,設定 FirebaseURL 與 ProjectBucket,即可進行讀寫操作。

04

ListView 顯示應用

資料讀取 → ListView 顯示

從 Firebase 取得 article 清單後,使用 set ListView.Elements 直接綁定顯示

AfterSelecting 事件

使用者點選 ListView 項目後,觸發 AfterSelecting 取得該筆留言的詳細資料

動態更新

每次新增留言後呼叫 FirebaseDB.GetValue 刷新清單,保持畫面資料即時同步

格式化顯示

將作者名稱與留言內容合併為字串格式顯示於 ListView,如 [作者]: 內容

05

下載與執行(BlueStacks)

步驟一:下載 BlueStacks

前往 bluestacks.com 下載並安裝 Android 模擬器

步驟二:匯出 .apk

在 App Inventor 選擇「Build → App (save .apk to my computer)」匯出安裝檔

步驟三:安裝至 BlueStacks

將 .apk 拖曳至 BlueStacks 視窗或透過「安裝 APK」功能完成安裝

步驟四:啟動測試

在 BlueStacks 中開啟 App,確認 Firebase 連線及所有畫面功能正常運作

06

專案架構

📱 留言板 APP(MIT App Inventor)
🖥 前端(App Inventor Screens)
Screen1 – 登入介面、帳號驗證
Screen2 – 留言板、發言、ListView、按讚
Screen3 – 使用者註冊
Screen4 – 密碼修改
☁️ 後端(Firebase Realtime Database)
帳號管理 – account / password
文章資料 – article / author
互動資料 – like / vote
📦 部署
.apk 檔案 – BlueStacks / Android 裝置
Render 部署 – github.com/096013/ai_car_lanefollowed
07

UML(DFD & Class Diagram)

📊

DFD(資料流程圖)

描述使用者、App 與 Firebase 之間的資料流向,包含登入、發文、讀取留言、按讚等主要流程。


[ 請插入 DFD 圖片 ]

🗂

Class Diagram(類別圖)

定義系統中的主要類別:User、Article、Comment、Vote,及其屬性與方法之間的關聯關係。


[ 請插入 Class Diagram 圖片 ]

08

GitHub 連結

🐙
🚀
版本控制重點

使用 Git 進行版本管理,提交記錄包含各畫面功能完成節點及 Firebase 整合過程。

09

與 AI 工具互動過程

AI INTERACTION LOG — ChatGPT / Claude 輔助開發記錄
USER App Inventor 中 FirebaseDB 如何在畫面切換後保持登入狀態?
AI 可使用 TinyDB 在本機儲存登入帳號,或使用全域變數(global)在 Screen1 設定後,透過 open another screen withStartValue 傳遞給 Screen2。
USER ListView 如何顯示 Firebase 清單資料並即時更新?
AI 使用 FirebaseDB.GetValue 取得 tag 下所有資料,在 GotValue 事件中將 value 轉成 list,再賦值給 ListView.Elements。新增資料後重新呼叫 GetValue 即可刷新。
USER 按讚功能如何避免同一使用者重複按讚?
AI 在 Firebase 的 vote 節點下存一個以使用者帳號為 key 的 boolean 值。按讚前先 GetValue 確認,若已存在則提示「已按讚」,否則才執行 SetValue 新增讚數。
10

疑難排解(Trouble-shooting)

Firebase 連線失敗,無法讀寫資料
檢查 FirebaseDB 元件的 FirebaseURL 格式是否正確(需以 https:// 開頭並以 / 結尾);確認 Firebase 規則已設為允許讀寫(read/write: true)。
畫面切換後資料消失
App Inventor 畫面切換時會重新初始化元件,建議使用 TinyDB 或透過 StartValue 傳遞必要參數(如帳號)至新頁面。
ListView 不更新 / 顯示空白
確認 GotValue 事件中正確判斷 tag 名稱,並使用 is a list? 判斷 value 型別,避免型別錯誤導致無法賦值給 Elements。
BlueStacks 無法安裝 .apk
確認 BlueStacks 版本支援 Android 7.0+;嘗試拖曳 .apk 至模擬器畫面安裝,或開啟 BlueStacks 設定允許「未知來源」安裝。
11

實際錄影(YouTube 操作過程)

▶️

操作示範影片

包含:登入 → 留言板瀏覽 → 發佈留言 → 按讚 → 修改密碼 完整操作流程


[ 請填入 YouTube 影片連結 ]
12

本次作業心得

透過本次專案,深入了解了 MIT App Inventor 與 Firebase Realtime Database 的整合方式。從多畫面切換的狀態管理、ListView 的動態資料綁定,到 Firebase 的雲端讀寫操作,每個環節都有不同的挑戰。AI 工具在開發過程中扮演了重要角色,協助快速查找解決方案與積木邏輯的設計,大幅縮短了 debug 的時間。未來希望能進一步加入使用者認證(Firebase Auth)與即時監聽功能,讓 App 更加完善。

留言板系統 APP 專案報告  ·  MIT App Inventor + Firebase  ·  2025