新增單一登入(SSO)功能於專案網站
在專案網站中撰寫單一登入(Single Sign On)功能
建立管理員資料庫,利用MariaDB及Flask驗證登入權限
透過MariaDB建立一個管理員資料庫。使用者登入後,後端Flask會接收來自MariaDB的資料,根據這些資料來判斷哪些使用者有權訪問該網站,並撰寫新增/修改/刪除按鈕,讓既有的管理員可以新增/修改/刪除管理員,同時會根據SSO所接收到的使用者資料,紀錄是哪位管理員在何時新增管理員等資料進資料庫。
撰寫歷史頁面,前後端協作呈現資料並提供Excel匯出功能
前端(html)發起請求,呼叫後端(Flask)處理歷史頁面的資料。後端使用Flask與MariaDB擷取所需資料。取得資料後,後端將資料回傳至前端,並使用DataTable將資料呈現在前端。同時,也透過DataTable提供Excel格式匯出功能。
使用React撰寫表單功能,實現新增、修改和刪除操作
在前端(html)中使用React框架,實現具備新增、修改和刪除功能的表單。當使用者點擊新增或修改按鈕時,表單將彈出,使用者可以填寫所需資料。填寫完成後,資料將被傳送至後端。後端使用SQL語法將使用者新增或修改的資料寫入MariaDB。新增成功後,前端將重新擷取MariaDB的資料,以便在前端網頁上更新顯示。
創建yaml檔案和Dockerfile,透過CI/CD部屬至Azure
在程式撰寫完成後,建立一個包含必要設定的yaml檔案,以及一個Dockerfile來容器化我的專案。透過CI/CD流程,將專案部署到Azure雲端平台。
此次的黑客松題目為"Sustainability",我們的構想是致力於打造一個餐補自動捐助系統,讓台積電員工能夠更有效地利用未使用完的餐補金額,並將之捐贈給不同的慈善基金會,從而實現社會利益的目標,主要分為前端:React、後端:FastAPI及資料庫:MariaDB
我負責資料庫部分的設計與實現。
為了實現這個目標,我使用Docker compose方式建立了一個MariaDB資料庫及Adminer,並進行了三個關鍵資料表的設計與管理,分別是:
user 資料表: 我們將個人資訊及餐補剩餘金額儲存在這個資料表中。同時,我們追蹤每位員工未使用的餐補金額及已捐贈總額,確保他們的捐贈計劃能夠正確執行。
proposal 資料表: 為了讓使用者能夠選擇捐贈的慈善基金會,我們建立了這個資料表,儲存不同慈善基金會的資訊,包括名稱、相關描述。這樣一來,使用者可以從多個選項中選擇他們想要支持的慈善機構。
record 資料表: 為了追蹤捐款的記錄,我們建立了這個資料表,當進行捐款時,相關的捐款資訊會被記錄下來,包括捐款的日期、金額、捐贈者的ID,以及選擇的慈善基金會。
我使用SQL語法來實現從資料庫中獲取所需資訊,包含根據使用者的ID查詢他們的剩餘餐補金額、從提案資料表中獲取可選擇的慈善基金會資訊,抑或是查詢使用者至今已經捐贈多少錢,並幫助多少弱勢,呈現於使用者的個人資訊中,使他們有成就感,這些都需要使用不同的SQL語法來呈現,並配合前端所需要的格式進行輸出。