---
# System prepended metadata

title: GWアプリケーション

---

# GWアプリケーション

### ラフ案
- スケジュール管理アプリ
    - スケジュール決める
    - 日の計画を円グラフで見える化※「何に」「どれくらいの割合の時間を使ったか」項目(カテゴリー)・％で
    - 実績も計画と同様の円グラフで見える化、元の計画と対比で比較でき、乖離をすぐに分析できる
    - 両円グラフの下にはコメントフォーム？みたいのを設け、上記分析のコメントを残せる
    - 日の実績を積み上げ、週・月でも算出し、週ごと月ごとでも実績を見える化
    - 計画の円グラフは、ユーザー機能を付け計画を標準化でき、随時メンテ可能で、基本は標準の計画をベースに調整することで日の計画立案は効率化可能

### 技術スタック
- バックエンド
    - rails7.0 × tailwindCSS × DaisyUI（仮）
- フロントエンド
    - Hotwire
- インフラ
    - heroku
- デザイン
    - 時間ないので手書きを共有する

### アプリケーション機能詳細
- スケジュール
    - 作成
        - スケジュール項目
            - タイトル(日付)
                - 項目(やる事)※円グラフで見える化、24時間の構成を％で　　　　　　　　　　　　　　
            - タスク（詳細）
                - カテゴリー（設定できる）
                - 項目
                - タスクの時間(0.25h単位で管理できる)
            `ここに関してはイメージ画像あり。過去のGoogleカレンダーAppを参考してもいいかも...`
            - グラフ分析※計画と実績のグラフの項目別の時間の構成の差異を分析できる
            - コメント入力機能(気付き・振り返り入力)
    - 編集（赤線、追加機能的なのにする）
    - 更新（普通の更新）
    - 削除（間違って消さないように階層を深くするか、専用モード的な括りにする）
    - スケジュール標準機能に関しては、次回作成時にそれが反映される
- ユーザーログイン機能（gem sorcery）
    - スケジュール標準（ユーザー本人にしかできない）
        - 作成
        - 編集
        - 更新
        - 削除
- 分析グラフ機能（JS Chart.js）
    - 日の予定グラフ
    - 日の実績グラフ
        （日をベースに足し算される）
        - 週の予定グラフ
        - 週の実績グラフ
        （日をベースに足し算される）
        - 月の予定グラフ
        - 月の実績グラフ
    `投稿ボタンをクリックすると分析開始してデータが反映されるような仕組み）`
- 一覧表示機能
    - 自分のスケジュールと他者のスケジュール共有というか見れるようにする
    - ゆくは、承認したユーザーのみが見れるようにしたい
- ソート機能（gem ransack）
    - 古い順、新しい順とかだけでもいい
    - 月・週・日で確認できる
- ページネーション（gem kaminari or gem will-pagenation）


### 余裕があれば実装する
- Githubログイン機能（時間あれば）
- スケジュール標準日誌機能
    - （パターンを保存できる）
    - （パターンの変更のログを取れる）
- シェア機能（時間があればね...）
    - TWシェア かつ OGP設定
- 無限スクロール

### 使用するgem
- gem sorcery
- gem will-pagination
- gem ransack

- gem groupdate
- gem draper

- gem rails-i18n
    https://qiita.com/shimadama/items/7e5c3d75c9a9f51abdd5
- gem gon
    https://qiita.com/Y_uuu/items/ef107a02c27836696545
- gem meta-tags
    https://asalworld.com/meta-tag-rails/

- gem factory_bot_rails
- gem rspec-rails
- gem capybara
- gem better_errors
- gem binding_of_caller
- gem bullet

- gem rubocop
- gem overcommit

### DB設計
- User
    - id
    - username（str）
    - password（str）
    - crypted_password
    - salt
    - provider（github_login）
    - uid（github_login）

- Schedule
    - id
    - title(date)
    - analysis
    - time_stamp
    - user_id（外部キー）

- Schedule_base
    - id
    - title(date) default: :2020/01/01 
    - analysis
    - time_stamp
    - user_id（外部キー）

- task
    - title
    - category
    - resource
    - time_stamp
    - schedule_id（外部キー）
    - schedule_base_id（外部キー）


       

### issue
- 環境構築🐶
    - 必要なGem導入
        - rspecとFactoryBotの設定
        - rubocopの設定
        - overcommitの設定
            https://qiita.com/piggydev/items/074e020e07af7ebc872d
        - i18nの設定
            https://qiita.com/shimadama/items/7e5c3d75c9a9f51abdd5
        - 設定ファイルを編集し、いらないファイルが作成されないようにする
    - fontawesomeの導入
        https://blog.corsego.com/fontawesome-importmaps-rails7
    - githubの設定する
    - DB設計
        - migration作成（全てのデータベース）
- Top Page作成🐶
    - フロントエンド🐶
        - トップページ作成（app/layouts/....）
        - GIF的なやつ作成
- ヘッダー作成🐸
    - バックエンド🐶
        - ログインボタンとサインアップボタンの設置
        - ログイン後のヘッダーの型作成
    - フロントエンド🐸
        - ログイン前
        ------  （右寄せ）ドアアイコン（ログイン）　と　インするアイコン（サインアップ）　------
        - ログイン後
        ------  01 / 01 ~ 12 / 31 :22  トグル  ユーザーアイコン（ドロップダウン -- schedule base / logout --） -----
- ログイン機能🐸
    - バックエンド🐸
        - sorcery 導入（github gemのチュートリアル）
        - github ログイン
    - フロントエンド🐶
        - login page デザイン
        - sign up デザイン
- schedule機能🐶
    - バックエンド（app/views/schedule... app/models/schedule.rb）
        - schedule新規作成🐸
        - schedule一覧🐸
        - schedule詳細🐸
        - schedule編集（一旦ボタンで実装）🐸
        - schedule削除（一旦編集の隣に実装）🐸
        - schedule task連携🐶🐸
    - フロントエンド（app/views/schedule... app/javascript/... config/tailwind.config.js）
        - schedule新規作成　デザイン🐶🐸
        - schedule一覧　デザイン🐶🐸
        - schedule詳細 デザイン🐶🐸
        - schedule編集をアイコンへ置き換える🐶🐸
            - schedule編集の打ち消し機能
            - schedule編集のコメント的な実装
        - schedule削除をshowページだけで隠して表示（詳細未定）🐶🐸
    - Torbo連動
        - CRUD全体🐶🐸
- schedule base🐶
    - バックエンド（app/views/schedule_base... app/models/schedule_base.rb）
        - schedule新規作成
        - schedule一覧
        - schedule詳細
        - schedule編集（一旦ボタンで実装）
        - schedule削除（一旦編集の隣に実装）
        - schedule task連携🐶🐸
    - フロントエンド（app/views/schedule_base... app/javascript/... config/tailwind.config.js）
        - schedule新規作成（同じ）🐶🐸
        - schedule編集🐶🐸
        - schedule削除🐶🐸
- 検索機能🐸
    - バックエンド🐸
        - ransack導入（コントローラの修正・フォーム（日付検索・ソート機能））
    - フロントエンド🐶🐸
        - 検索機能 デザイン
        ------  01 / 01 ~ 12 / 31 :22  トグル  ユーザーアイコン（ドロップダウン -- schedule base / logout --） -----
- Pagination🐸
    - バックエンド🐸
        - will-pagination導入
        - ページの情報を取得
    - フロントエンド🐶🐸
        - viewに情報を反映　デザイン
- フラッシュメッセージの作成
- デプロイする

### 画面遷移図
- TOP Page
    - User
        - login
        - sign up
    - Profile
        - User detail
        - schedule base
            - schedule base new
            - （SB）task hogehoge
            - （SB）submit
    - Search
    - Schedule index
        - schedule show
        - Schedule base show
        - schedule edit
        - schedule update
            - schedule delete
        - shedule analysis
    - Pagination
    - Schedule create
        - schedule new
        - task hogehoge
        - submit


### スケジュール
- 1Day
    - 全体の開発方針を決める
    - 機能の抜粋
    - 使用するgemなど決定
    - DB設計
    - デザイン設計
    - issues作成
    - 環境構築
    - CRUD作成（必要なら）
- 2Day
    - その他バックエンド実装
    - フロントデザイン実装
`ここはペアプロで実装する`
- 3Day
    - その他バックエンド実装
    - フロントデザイン実装
    - デプロイ & リリース

# 1日のスケジュール
- 08 ~ 12 4h
- 12 ~ 13 休憩
- 13 ~ 18 5h
- 22 ~ 24 2h


# 参考記事
- chart.js * rails7.0
https://alvincrespo.com/blog/chartjs-and-rails/
- chart.js
https://www.chartjs.org/

# 泉さん　名前案
- schedule
- 予定
- タイムテーブル
- Analysis
- perfect
- プログラム
- Program plans
- YOTEI
- Tumitate
- Reserve
- Habit improvement
- Time Habit 
- Time order
- Small Habit
- minimal 
- 810s
- Dissect
- metaNote
- Metaim
- Metalysis
- metagram

- a meta note
a-meta-note.dev

# 関根さん　名前案
- Anasis
- P.F
- 8/10
- Plan Supporter
- TIM
- Habit Manager
- スキーム
- ノート
- メタ
- MetaPlaner
- MetaHabit
- Meta
- meta
- meta
- meta
- meta
- meta
- meta
- meta