[KIMOCHI]
June 4, 2024 · View on GitHub
サービスURL
https://tranquil-reef-61954-2d3bbdfbb995.herokuapp.com/
サービスへの思い
私は趣味の麻雀をする際、友人を誘うと「特に予定はないけど、妻に言い出しづらい…」と回答されたことがあります。 別の友人は「特に予定がないから、1人キャンプに行こうとすると妻からあまりいい顔をされないから、なかなかキャンプに行けない」と言っていました。 共同生活を送っていると「なにか悪いことを実行しようとしているわけではないのに、それを行っていいのか相手に言いづらい」という状態になることがあると思います。 上記のような状態になってしまい「実行したいと言いにくい」という悩みを解決するために、実行したいことを行うための条件提示と、調整を行いながら、お互いにちょうど良い落とし所をつけるためのサービスです。
アプリケーションの利用フロー図
基本的にアプリユーザーは報酬(自分の実行したいこと、欲しい物etc...)を得るための、代価(なんらかの条件、任意で複数可能)を設定します。
graph TD A(AがBに報酬と代価を提示)-->B[Bが報酬と代価を精査] B-->|承諾| C[Aは代価を支払うことが可能になる] C-->|全代価支払後| D(Aは報酬を得ることが可能になる) D-->|報酬を得る| E(完了) B-->|不承諾| G(BはAに報酬と代価の再考を求める) G-->H(Aは報酬および代価を修正し再度Bに提示) H-->|不承諾| B
機能一覧
| トップ画面 |
|---|
| LINEによる外部認証を実装 |
| プロフィール詳細画面 | プレビュー画像 |
|---|---|
| LINEアイコンが自動で自身のアイコンになるよう実装 | プレビュー画像表示機能実装 |
| グループ作成画面 | グループ一覧画面 |
|---|---|
| 新規グループ作成機能 | 所属グループ一覧表示機能 |
| グループ詳細画面 |
|---|
| グループ詳細表示機能 |
| 招待リンク作成機能 |
|---|
| 招待リンクを作成し、そのリンクに他ユーザーがアクセスするとグループに所属する機能を実装 |
| リクエスト作成画面 | リクエスト一覧画面 |
|---|---|
| 新規リクエスト作成機能 | 状態別リクエスト一覧機能 |
| リクエスト詳細画面 | リクエスト状態表示 |
|---|---|
| リクエスト詳細機能 | リクエストの状態を動的に表示する機能を実装 |
| リアルタイムチャット画面 | リクエスト承認機能 |
|---|---|
| リクエスト毎にリアルタイムチャット機能実装 | 承認者によるリクエスト承認機能実装 |
| タスク完了・完了取消機能 | リクエスト完了機能 |
|---|---|
| タスク完了・完了取消機能実装(リクエストが承諾された場合表示) | リクエスト完了機能実装(タスクを全て完了した場合に出現) |
| 完了リクエスト一覧画面 |
|---|
| グループ毎に完了したリクエスト一覧を表示する機能実装 |
| 個人リクエスト一覧画面 |
|---|
| ユーザー毎に作成したリクエスト一覧を表示する機能実装 |
| LINEプッシュ通知画面 |
|---|
| 報酬の実行予定日当日8時にLINEプッシュ通知機能実装 |
使用技術
| Category | Technology Stack |
|---|---|
| Backend | Ruby(3.2.2), Ruby on Rails(7.0.8) |
| Frontend | Stimulus(3.2.2), Tailwind CSS(3.3.6), DaisyUI(3.9.4) |
| Infrastructure | Heroku |
| Database | PostgreSQL |
| CI/CD | GitHub Actions(自動デプロイ) |
| etc. | Docker, RuboCop, RSpec, Git, GitHub |
GEM
- device(ログイン・認証機能)
- omniauth-line, omniauth-rails_csrf_protection(LINEログイン)
- line_bot_api(LINEプッシュ通知)
- delayed_job_active_record(招待リンクの時限式削除)
- action_cable(リアルタイムチャット)
- kaminari(ページネーション)
- ActiveStorage(ファイルアップロード、保存)
- activestorage-validator(アップロードされるファイルのバリデーション設定)
- image_processing(画像リサイズ、ファイル容量一律化)
- RSpec(テスト)
- rubocop(lintチェック)
