---
# System prepended metadata

title: 開発計画書

---

# 開発計画書

## 概要

- チーム名: さむらいぶるう
- アプリケーション名: TASCHOLA (たすからー)

## アプリケーションが解決を目指す問題

T2SCHOLAには課題を一覧する機能が、標準で備わっていない。そのため、課題を出し忘れる問題が発生しえる。

- 想定するアプリケーションの利用者: 東京工業大学の学生
- 対象利用者にとっての仕事: 日々のタスク管理と、講義で課される課題の両方を管理すること


## アプリケーション仕様

日々のタスク管理を機能に加え、T2SCHOLAから課題情報を収集する機能を実装する。
これにより、残存課題量を可視化することができる。

上述の機能を実現するために、以下を実装する

- ユーザー管理 (mandatory)
    - ユーザー登録 & 削除機能
    - login & logout 機能
    - 東工大ポータルにアクセスするための情報を保存する機能

- 課題管理機能(mandatory)
    - タスクの作成 & 削除ができる
    - ユーザーごとにアクセス制御ができる
    - タスクに優先度が設定できる
    - タスクに締切を設定 & 締切に応じた表示変更がなされる (色変化など)
    - T2SCHOLAとタスクの同期ができる


これらを実現するために以下を想定している

- Frontend
    - React
        - `/` : Home ログイン & ユーザー登録導線
        - `/tasks` : タスク一覧 (T2SCHOLAとの同期機能)
        - `/task/:id` : タスク閲覧
        - `/task/new`: タスク新規作成
        - `/task/:id/edit` , `/task/:id/delete` : タスク編集、タスク削除
        - `/login`: ログイン画面
        - `/signup`: ユーザー登録画面
        - `/user/:user_id` : ユーザー情報
        - `/user/:user_id/edit`, `/user/:user_id/delete`: ユーザー編集, ユーザー削除
- Backend
    - Gin
        - GET: `/api/tasks` : ログインユーザーに応じた task 一覧を返す
        - POST:`/api/tasks/t2schola_sync`: T2SCHOLAと同期する
        - GET:`/api/task/:id`: taskを個別に返す
        - POST:`/api/task/new`: タスクの新規作成
        - POST: `/api/task/:id/edit`: タスクの編集
        - POST: `/api/task/:id/delete`: タスクの削除
        - POST: `/api/login`: ログイン要求
        - POST: `/api/signup`:ユーザー登録要求
        - GET: `/api/user/:user_id`: ユーザー情報
        - POST: `/api/user/:user_id/edit`:ユーザー情報変更要求
        - POST: `/api/user/:user_id/delete`:ユーザー削除要求

- DB
    - MySQL
        - tasks table
        - users table
        - ownerships table
## 開発計画

### 開発スケジュール

2022/12/16: 開発計画書 草案
2022/12/18: 開発計画書　提出
2022/12/25: ディレクトリ構造など決定
2023/1/6: T2SCHOLAとの同期機能以外完成
2023/1/15: 仮完成
2023/1/22: プレゼン資料完成

### 作業分担
敬称省略

- Frontend (React)
    メイン: Kojima, Shinohara
    サブ: Fujii

- Backend (Gin)
    メイン: Okazaki, Doi, Fujii
    サブ: 

