Skip to content

Latest commit

 

History

History
68 lines (56 loc) · 26.5 KB

README_zh.md

File metadata and controls

68 lines (56 loc) · 26.5 KB

咖啡優惠券的完整Flutter範例系統demo

[English][中文][日本語][한국어][español]

本專案提供了一個完整的 Flutter/Dart 系統模板,以前端APP到後端資料庫等來 demo 一個優惠券管理系統的各項功能,適用於連鎖咖啡店(或其他任何連鎖餐廳、品牌等) 以建立顧客忠誠度。本專案包括幾個主要部分:

  1. 供顧客用的 Guest APP。
  2. 供管理員或職員進行系統管理的 Admin APP。
  3. 後端伺服器,通過基於 JSON 的 API 使用 HTTP 與前述兩種 APP 進行互動。提供資料庫存儲和商業邏輯處理等功能。

特色

  1. 功能完整:Demo 系統中的所有操作,除有特別註明外,皆能在封閉環境中模擬及執行其完整功能。
  2. 簡單易用的 demo:在極簡配置下,只需安裝一個 APP 就能體驗所有 demo 功能。
  3. 支援多國語言:目前支援 4 種語言:英文、中文、日文、韓文。
  4. Pure Dart且可獨立運作:提供輕鬆移植到各種平台的優勢。程式碼的部份,client及server都使用Dart語言撰寫,不依賴如Firebase等的外部服務就能獨立運行。

系統截圖

由於圖片太多,此處我們只放一些精彩截圖。若要觀看所有截圖請按此處。

只需要一個APP就能進行完整系統 demo

為了讓本 demo 系統易於使用,本專案不依賴任何外部服務,例如 Firebase、Google Cloud Notification、Dockers 或其他電子郵件/短信服務等。然而,為了保持功能完整性,本專案仍提供了諸多如帳戶驗證、推送通知等的功能實現。 Demo 系統中的所有操作,除有特別註明外,均能在封閉環境中完全模擬其正常功能之運作。

為此,我們引入了「模擬裝置」的概念。 意思是我們可以在一個 APP 中模擬多個裝置(也就是手機或平板等)。在預設配置下執行時,後端伺服器亦嵌入於此 APP 中一同執行(此行為可透過選項更改為連接到遠端伺服器)。在極簡配置下,您只需安裝一個APP,而這個 APP 可以模擬不同角色的人員在多台裝置上分別執行多個 APP。這尤其適合我們所需要的 demo 場景,例如模擬多個顧客、多個員工和管理員之間的互動。

系統功能

  1. 顧客註冊:顧客可通過電話號碼及 OTP(模擬的一次性簡訊)代碼註冊帳戶,然後更新基本資料。
  2. 優惠券兌換:顧客可根據自己的可用點數從管理員所定義的規則中選擇並使用優惠券。比如用5點兌換一杯特濃 espresso 咖啡或者一杯橙汁。如果顧客有足夠的點數且優惠券兌換成功的話,點數將從顧客的賬戶中扣除。交易則將被保存以供未來稽核及查詢。
  3. 使用者管理:員工或經理(在我們的系統中,他們的角色定義為 user 或 「使用者」,不同於 guest 也就是「顧客」)可使用 Admin APP 來管理(創建、刪除、更新或查詢)使用者。還有其他功能包含:通過電子郵件、電話或手動等方式來重置使用者密碼。
  4. 店舖管理:員工或經理可使用Admin APP來創建、刪除、更新或查詢各個店舖(也就是分店)。 一筆店舖資料中可設定其關聯到多個使用者,而此與使用者的關聯可指定其角色為該店舖的員工或經理。具有經理角色的使用者可以管理該店舖中的所有使用者,但不能管理其他的使用者,這當然是出於安全考量而設計的系統限制。相對的,具有「系統管理員」角色的使用者則可以管理所有使用者。具有員工角色的使用者可以給顧客該店舖的點數作為店舖贈禮。這是透過使用 Admin APP 來掃描 Guest APP 所生成的二維條碼來完成的。為了方便顧客查找店舖地址等資訊,在 Guest APP 中 也提供了店舖列表。
  5. 交易紀錄管理:員工或經理可以創建、刪除、更新或查詢交易紀錄。所謂交易紀錄是指某顧客在某店舖的消費記錄,或者也可以是點數增加或減少的記錄。例如:如果顧客消費超過200元,那麼他就能獲得5點,然後他可以用這5點來換另一杯咖啡等,像這樣的事件就會被儲存於於「交易紀錄」中。實務應用上,這可能需要與 POS 系統進行額外的整合工作,不過我們這裡就針對能 demo 的部份進行實現。
  6. 模擬裝置管理:如前文所提及,為了能夠輕易 demo 具有各種角色的人員間的互動,我們需要具備模擬多個裝置(也就是手機或平板)的能力。這些裝置可具有不同的電話號碼(當然這也是模擬的)或電子郵件信箱,以便接收伺服器所發送的驗證碼、 SMS 或通知等。您可以在「演示設置」中管理這些模擬裝置或檢視該裝置所收到的訊息等。

系統特色

  1. Pure Dart:本專案代碼完全用 Dart 編寫,不依賴如 SQLite 之類的 native code。為此,我們選擇了 Hive 作為後端資料存儲。Hive 以其高性能和擴展性著稱。前端 APP 使用 Flutter SDK 開發,而後端僅使用 Dart SDK 開發(伺服器並不需要 Flutter,我們認為這才是正確的做法)。 Pure Dart 提供了輕鬆移植到各種平台的優勢。
  2. 可選擇的的嵌入式/遠端伺服器:後端伺服器在預設配置下是一同嵌入於 APP 中執行的。這可以通過 APP 中的「演示設置」內的選項來更改成連接到遠端伺服器。如果要連線到遠端,您需要準備自己的電腦來執行伺服器程序,當然也必須在 APP 中設定正確伺服器 URL。
  3. 支援多國語言:前端 APP 完全支援多國語言,目前支援 4 種語言:英文、中文、日文、韓文。語言的設定可在 APP 內隨時更改。
  4. 支援深色模式:可以隨時在 APP 中啟用或停用深色模式。

請考慮參與贊助本專案

如果您認為本專案對您有幫助,請考慮贊助我。如此便能讓我有更多精力投注在改良本專案,或者開發其他類似的專案上。

需要增加什麼功能嗎?可聯絡我

系統手冊及其他文件(英文)