Database Project - Stix
大三上資料庫研究專題
在此特別感謝我們日不落帝國的成員:CHA、404、nynapig
Introduction
由 KKTIX 活動管理系統發想,設計屬於我們的線上活動報名平台,取名 Stix (音同 Sticks )
使用者可查看、搜尋活動,在註冊登入後可舉辦活動、報名其他人的活動
Architecture
透過 Figma 設計網頁、Bootstrap撰寫前端、MySQL 儲存資料庫、Flask 建立框架並使用 Docker 部署 DataSet 資料來源:KKTIX 爬蟲、部份自行開發新增資料Final Presentation
- 首頁可直接進行活動查詢,查詢方法有依活動及依活動名稱、活動編號查詢
- 報名活動和舉辦活動有於 Flask 框架中過濾權限,僅限已登入者
- 使用者可註冊/登入帳號,註冊帳號後可直接登入,並進入使用者帳號活動紀錄頁面,該 頁面記錄所有由此使用者舉辦的活動及報名的活動
- 使用者登入後,前端頁面最上方的 Header 會顯示該使用者名稱,SignUp/Login 按鈕會 消失,顯示舉辦活動按鈕可用及登出按鈕
首頁
查詢
皆支援模糊搜尋
- 依 ID 查詢
- 依名稱查詢
- 依日期查詢,分為三種查詢分法:
- 在x月x日之前
- 在x月x日之後
- 在x月x日~y月y日之間
註冊帳號
全部欄位皆限定為必填
- Sign up
- Account: 使用者名稱,用來登入,有過濾不可使用已註冊之相同名稱
- Password: 密碼
- Email address: 信箱,且過濾僅允許信箱格式
- 個人資料
- 性別
- 國家
- 用戶名稱: 暱稱,登入後會顯示於右上角
- 電話號碼: 有過濾僅限數字且須為電話號碼格式
- 身分證字號: 有過濾僅限身分證格式
- 生日: 有過濾日期格式
登入後會跳轉至個人主頁,主頁有個人活動報名紀錄和舉辦活動紀錄
右上角 header sign up 和 log in 按鈕會消失,舉辦活動按鈕此時才可按(未登入時不可按)
報名活動
- 限登入
- 登入後活動一覽右側會多 “報名” 按鈕
- 報名有分普通票和優待票,可選擇購買票數(過濾限制不可大於當前該活動剩餘票數)
報名成功後會跳轉至個人主頁,主頁個人活動報名會多一筆報名紀錄
舉辦活動
全部欄位皆限定為必填
- 限登入
活動舉辦成功後會跳轉至個人主頁,主頁個人舉辦活動紀錄會多一筆舉辦活動紀錄
點擊查看可看該活動詳細資訊
登出帳號
- 點右上角登出的門型按鈕即可登出
登入帳號
- 已註冊過的帳號可直接登入
後日談
我之所以會想用 Flask 框架來寫這次專題是因為今年暑假在 AIS3 遇到了超強電神隊友小黑 TYC4D,當時我們組能獲得網頁安全組最佳專題也是多虧了這位電神,而這最佳的專題即是使用 Flask 框架架構
因此藉由這次資料庫專題自己實際摸過一次 Flask,感覺技能樹又多點一個分枝了,好欸
p.s. 在這資料庫專題即將發表的前一週 a.k.a. 拚面趕工收尾的關鍵一週,我因為在家拿著馬克杯滑倒… 左手掌拿著馬克杯,順著跌倒方向,馬克杯碎裂,左手掌直接割下去… 我記得我看見了我的骨頭
然後就被送去醫院急診室把手掌縫起來,廢了一天後,隔天繼續用一隻手掌痛到哭也要狂敲鍵盤 coding,這次專題真的是名副其實血與淚構成的,哈哈哈….
另外,請務必在家滑倒時就算屁股跌到痛死也不要用拿著杯子的手去跌,我真的會被自己白癡死
…
雖然 Flask 的部份是我自己用斷手手刻的,
但其他部份有我們日不落帝國其他成員的貢獻,所以我就不私自公開分享我們專題的 source code 了