2022 iThome 鐵人賽 - ASP.NET Core - 活動報名管理系統:Day2 系統功能發想   2022-09-16


開發框架與資料庫

  • ASP.NET Core MVC(.NET 5)
  • Entity Framework Core 5
  • SQL Server 2019

開發軟體

  • Visual Studio 2019
  • SSMS or Azure Data Studio(偶爾會用 macOS 開發)

系統應用描述

在一個活動中,主要會有「一般使用者」與「活動主辦方」兩種角色。這裡從兩種角色最一開始到結束的行為,e.g. 報名、舉辦活動開始至填寫活動意見回饋、瀏覽活動成效統計,用敘事的方式來統整系統會使用到哪些功能:

  1. 一般使用者

這週日剛好一整天沒事,到活動系統看一下有什麼活動可以參加好了。
這次想聽音樂會,於是將分類篩選中的音樂會多選方塊勾選起來,並且將活動舉辦日選擇為本週
畫面顯示有個 A 樂團的音樂會,(當滑鼠移到報名按鈕時)發現按鈕無法點選,並且顯示已停止報名的文字,只好看看有沒有其他樂團的音樂會可以參加,於是在分類篩選中勾選起尚可報名的多選方塊。
這次看到了 B 樂團的音樂會並且狀態顯示可報名,於是點擊活動標題,瀏覽器導向到活動的詳細資訊頁面。
頁面最下方有個報名的按鈕可點選,點選後瀏覽器跳轉至個人資訊填寫頁面,如果會員尚未登入,則先跳轉至登入頁面;若會員已登入,且已事先在會員中心填寫好個人資訊,則個人資訊填寫頁面的欄位直接帶出相對應的值。
剛剛忘記看活動幾點開始了,於是到會員中心中的活動參加歷史頁面,查找剛剛的活動,藉此得知活動的資訊。

在一般使用者的使用情境中,可以統整出下列功能:

  • 瀏覽頁面(首頁)
    • 活動名稱查詢
    • 分類篩選
      • 活動種類篩選
      • 活動日篩選
      • 是否開放報名
    • 顯示活動狀態
  • 活動詳細頁面
    • 活動內容資訊
    • 確認報名
  • 活動報名確認頁面
    • 填寫會員資訊
  1. 活動主辦者

我是 B 樂團的行政人員,這次演出將在 2022-10-02 舉辦一場音樂會,地點在高雄市的大東文化藝術中心,報名人數上限將設定在 100 人,可報名期間設定在 2022-09-01 00:00:00 ~ 2022-10-01 23:59:59,票價為 0 元,當然還有其他關於活動資訊的欄位要填寫,主辦單位相關資訊將會直接從會員中心的基本資料帶出。

而在活動主辦者的使用情境中,統整出以下功能:

  • 活動舉辦頁面
    • 活動詳細內容輸入

而兩者皆需要使用的功能為:

  • 會員登入/註冊
    • 系統自有註冊
    • Google OAuth
  • 會員中心
    • 會員/主辦資訊輸入
    • 活動參加/主辦歷史查詢

功能開發順序,我會如此排定:

  1. 系統的主軸在「活動」,所以會先從活動本身的 CRUD 來進行開發
  2. 會員註冊/登入功能(會有身份權限的功能)
  3. 前端 Bootstrap 套版

以上簡述了本次活動報名與管理系統的功能,每個功能的細節以及商業邏輯會在接下來的文章一一描述以及實作。

那麼,我們下一篇見!

目錄

  1. 開發框架與資料庫
  2. 開發軟體
  3. 系統應用描述