---
# System prepended metadata

title: SecHack365

---

# SecHack365

## 大概念

### must have

- タスクを書き出す
- タスクが完了したかチェック出来る
- タスクの期限を登録する

---

- タスクの達成率が計算出来る

### nice to have

- ユーザー認証
    - PoCではuser_id="example_user"として実装

## バックエンド実装

### タスクオブジェクト

```json
{
    "task_id":"hogehoge"
    "name": "ほげほげをやる",
    "deadline":"YYYY-MM-DDThh:mm:ss",
    "is_finished":false,
    "status":0
}
```

Statusについて：
フロント側でenum管理などで適当な数字と文字列を対応付けてください。サーバー側には数値データを送って欲しいです。
- 0:
- 1:
- 2:


### API概説

タスクを登録する(POST)

```json=
//リクエスト
{
    "name":"ほげほげをやる",
    "deadline":"YYYY-MM-DDThh:mm:ss",
    "user_id":"hogehoge",
    "status":0
}

//レスポンス
{
    "task_id":"task_id",
    "status":"success",
    "message":"Created!"
}

```

タスクを取得する(POST)

```json
//リクエスト
{
    "user_id":"hogehoge",
}

//コールバック
{
    "tasks":[
        {
            "task_id":"hogehoge"
            "name": "ほげほげをやる",
            "deadline":"YYYY-MM-DDThh:mm:ss",
            "is_finished":false
        },...
    ],
    "status":"success",
    "message":"10 datas available"
}

```

タスクの状態を更新する(POST)

```json
//リクエスト
{
    "task_id":"hogehoge"
    "name": "ほげほげをやる",
    "deadline":"YYYY-MM-DDThh:mm:ss",
    "is_finished":true
}
//レスポンス
{
    "status":"success",
    "message":"updated"
}
```

```json
{
    "user_id":"example-user-id",
}
```

タスクのリストを取得する(POST,GET)

GETの場合はクエリパラメーターでuser_idをセット
//リクエスト（POST)
```json
{
    "user_id":"example-user-id"
}
```

//レスポンス
```json=
{
    [{
        "name":"hogehoge1",
        "desc":"example task 1",
        "deadline":"2021-08-10 22:32:30.565446 +0900 +0900",
        "task_id":"example-task-id-1",
        "is_done":false,
        "status":0,
        "user_id":"example-user-id"
    },
    {
        "name":"hogehoge2",
        "desc":"example task 2",
        "deadline":"2021-08-10 22:32:30.566221 +0900 +0900",
        "task_id":"example-task-id-2",
        "is_done":false,
        "status":0,
        "user_id":"example-user-id"
    },...]
}
```

### 進捗率計算(POST）

//リクエスト
```json
{
    "user_id":"example-user-id"
}
```

//レスポンス
```json
{
    "progress":0.25
}
```

### 開発の流れ

- バックエンド
    - 一週間を目処にタスクの登録・編集・読み出しは出来るようにする
    - リポジトリを生やす
- フロントエンド
    - コンポーネントを作る
    - APIを叩いてTodoアプリを作っていく
    - ひとまず、フロントだけで完結するTodoアプリを作る
        - Ageメインで💪
    - APIの繋ぎ込みの段階になったらnotch_man君も積極的に関与する
    - リポジトリを生やす
        - notchman8600に招待お願いします
- 8/7がゴール
    - 8/3~4辺りでひとまずTodoアプリ（フロントだけ）が完成する
    - 一応、お互い毎日進捗報告しましょう！
        - 進捗報告はTypetalkでやりましょう！
    - 1日1回はお願いね！

:::info
**Statusにおく文字**

タスクが完了済み、もしくは未完：exist
削除されたタスクとして存在している：removed
完全に削除されており、読み込まない：eliminated
:::