---
# System prepended metadata

title: Lottery System
tags: [Project]

---

# Lottery System

## Tech Stack
### Frontend
- Next
- Tailwind
- Typescript

### Backend
- FastAPI
- MySQL

## User Story
- 作為一名同時教授數門課程的學校教師，我打算以一門課程為單位創建群組，
    這個群組會有一個邀請碼，讓學生們可以透過邀請碼進入群組，使用這個群組來隨機抽點學生回答問題，並記錄學生答題情況。
- 作為一名課程相當熱門的大學教師，每次學期初都會有非常多人來加簽，
    我希望能夠有一個服務可以建立群組與邀請碼，讓抽加簽的學生進到群組進行抽籤。


## Frontend - Backlog

### 登入頁面
1. 使用 Google 第三方登入 (deadline: 10/7)

### 首頁
1. 顯示群組集 (deadline: 10/7)
2. 新增 Btn：創建邀請碼 or 輸入邀請碼 (deadline: 10/7)
    2-2. 選擇類型：加簽抽籤、抽點抽籤

### 群組內頁
1. 使用者身份：老師 (管理員)、助教、學生 (deadline: 10/7)
2. 查看成員名單 (deadline: 10/14)
3. Btn：抽籤
    2-1. 抽籤動畫：跟 Tronclass 一樣 (deadline: 10/14)
3. Btn：返回首頁 (deadline: 10/7)

## Backend - Backlog

### 1. Entity/Model
#### a. 群組 (deadline: 10/7)
- 群組 Hash
- 群組名稱
- 群組類型
- 群組名單

#### b. 使用者 (deadline: 10/7)
- 使用者名稱
- 使用者學號 (Optional)
- 使用者群組集
    - 群組名稱
    - 群組 Hash
    - 群組身份

### 2. Layer of Repository (deadline: 10/14)
- DAO Pattern
- MySQL

### 3. API
- 取得學生資料 (deadline: 10/7)
- 取得群組資料 (deadline: 10/7)
- 抽籤 (deadline: 10/14)