---
# System prepended metadata

title: 運動揪團 - 使用者故事

---

SportsGo
===

[TOC]

# 重要公告

## 設計稿申請

### 截止時間
2024/01/19

# TODO

## 題目確認
- [x] 填寫整個專題時程預估時間
- [x] 到 2.題目確認 這邊寫下你們的使用者故事
## 網站地圖、流程圖、線稿圖
- [x] 網站地圖
- [x] 流程圖
- [x] 首頁線稿圖
- [ ] 分頁線稿圖
## 設計稿
## 專案開發
## 專題發表

# 主題名稱

- SportsGo 運動狗(主視覺是可愛的狗在運動)
*讓你累得像狗*

```
- 揪愛動
- iSport愛運動
- eSport E起運動
- Jo I don't 就愛動
- 熱GO網！熱血揪團運動GO! (主視覺是一支熱狗)
- 狗Sporting
```

# 使用者故事

## 使用者（未登入）

- 我是使用者，我可以依地區、運動類別、時間搜尋所有已發起的揪團

## 使用者（已登入）
揪團
- 我是使用者，我可以登入後發起揪團，當主揪者
- 我是使用者，我可以登入後加入已發起的揪團
- 我是使用者，我可以登入後於揪團日之前更改我發起揪團內的任何資訊
- 我是使用者，我可以登入後於揪團日之前退出我之前加入的揪團
- 我是使用者，我可以登入後在已加入的揪團的留言板上留言
- 我是使用者，我可以登入後與已加入揪團內的其他成員互加為好友，互發私訊，並可推薦揪團給好友
- 我是使用者，我可以登入後給予參加過的相同揪團的成員評價，以便其他使用者可以參考我的經驗
- 我是使用者，我可以登入後看見曾加入過與正加入中的揪團的歷史資訊

個人

- 我是使用者，我可以登入後自由選擇更換頭像(ex.游泳狗,瑜伽狗,足球狗etc.)
- 我是使用者，我可以登入後投票為每月/每季/年度最讚揪團活動
- 我是使用者，我可以登入後儲值以開通更多功能，例如自由搭配頭像skin/無限制發起揪團活動的次數/發起單次一萬元以上的揪團活動

## 管理員
- 我是管理者，我可以刪除已發起的現有揪團活動
- 我是管理者，我可以在最新消息發佈/刪除新文章
- 我是管理者，我可以更改關於我們區塊的文字
- 我是管理者，我可以將每月/每季/年度最讚揪團活動在banner做特別宣傳

# [網站地圖、流程圖、線稿圖](https://whimsical.com/sitemap-UFMnCXQrk1BhpiGcq3ZeTJ)

## 流程圖

### 前台使用者

- [x] 搜尋揪團
- [x] 發起揪團
- [x] 加入揪團
- [ ] 更改揪團資訊
- [ ] 退出揪團
- [ ] 留言板留言
- [x] 好友私訊、推薦揪團
- [ ] 評價成員
- [ ] 觀看揪團資訊
- [x] 編輯個人資訊
- [ ] 揪團投票
- [ ] 儲值會員

## 後端使用者

- [x] 刪除揪團
- [x] 最新消息管理
- [x] 宣傳熱門活動
- [x] 撰寫關於我們
- [x] 撰寫FAQ
- [x] 會員資料管理
- [x] 銷售管理

## 線稿圖

- [x] 首頁
    - [x] NavBar
    - [x] Section #1
    - [x] Section #2
    - [x] Section #3
    - [x] Section #4
    - [x] Section #5


# 設計稿

# 專案開發

## API Server

JSON Server

### 資料結構

#### 會員

```typescript
type member {
    readonly id: number;
    password: string;
    name: string;
    nickname: string;
    email: string;
    city: string;
    perference: Array<string>;
    activity: Array<number>;
    rating: number;
    level: number;
    avatarUrl: string;
}
```

#### 活動

```typescript
type activity {
    readonly id: number;
    title: string;
    tags: Array<string>;
    members: Array<number>;
    memberMin?: number;
    memberMax?: number;
    createTime: Date;
    activityStartTime: Date;
    activityEndTime?: Date;
    description: string;
    imgUrls: Array<string>;
}
```

## GitHub 使用

### [Team Work Flow](https://gist.github.com/goodjack/27ac5007f2f550efd121f00a1a696d4c)

#### 換行字元同步設定

Windows

```
git config --global core.autocrlf true
git config --global core.safecrlf true
```

Mac / Linux

```
git config --global core.autocrlf input
git config --global core.safecrlf true
```

#### GitHub Flow

使用 Github Flow，每個人 Fork 一份回去，然後做完更改後提 Pull Request([PR介紹](https://gitbook.tw/chapters/github/pull-request))，然後經過至少一人 Code Review 後，Merge 到目標分支中。

##### 分支慣例
- `master` 是最穩定的版本。
- `develop` 開發用分支，會在穩定後，用 `merge request` 併入 `master`
- `feature/****` 開發新功能用的分支，會在開發完成時，用 `merge request` 併入 `develop`
- `fixes/****` 修正 bug 用的分支，會在修正完成時，用 `merge request` 併入 `develop`

##### 命名風格
使用 `-` 作為單字間的分隔，例如：
- `fixes/project-list-save-error-message`
- `feature/auto-login`

#### Commits
- 用 `git commit` 取代 `git commit -m "commit messages"`。
- Commit message 第一行不得超過 50 個字元。之後的行數不得超過 72 個字元。
- Commit message 第一行應以大寫字母為開始，且建議為動詞。例如
  - Add
  - Change
  - Fix
  - Remove
  - Refactor
- Commit message 第一行句尾，應不含 `.`
- Commit 前，向自己發問 3 個問題：
  1. 為什麼這個改變是需要的？
  2. 他是如何解決這個問題的？
  3. 這個改變有副作用嗎？
- 將 `issue/story/card` 的連結附在 commit message 中

##### Sample

```
Redirect user to the requested page after login

https://trello.com/path/to/relevant/card

Users were being redirected to the home page after login, which is less
useful than redirecting to the page they had originally requested before
being redirected to the login form.

* Store requested path in a session variable
* Redirect to the stored location after successfully logging in the user
```
#### Reference

[讓我們來了解 GitHub Flow 吧！
](https://medium.com/@trylovetom/%E8%AE%93%E6%88%91%E5%80%91%E4%BE%86%E4%BA%86%E8%A7%A3-github-flow-%E5%90%A7-4144caf1f1bf)



# 專題簡報製作