Skip to content

時間の有効活用をテーマとしたWebアプリケーションです。

Notifications You must be signed in to change notification settings

shogo0625/PerioDo

Repository files navigation

PerioDo

時間にメリハリをつけて行動したい人のための「アクションタイマー」「ToDo リスト」付き、スケジュール投稿型 SNS です。
URL: https://periodo.site/

サイトテーマ

  • 行動内容を ToDo リストで管理し、開始時間や目標となる終了時間をサイト内のタイマーでセットすることで、目的が可視化された充実の一日を過ごすお手伝いをします。
  • フォロー機能・いいね機能・投稿機能・コメント機能を備えており、繋がりを持つことで他ユーザーの行動意識や時間管理の術に刺激を受け、自身の行動改善に活かすことができます。

テーマを選んだ理由

私自身、行動内容や時間の区切りを設けていなかったがために、効率的に物事を進められなかった経験があります。 最近になって時間の使い方への意識が変わり、自分が決めたことをひとつひとつ達成していく気持ち良さ、そのことによる日々の充実を感じています。 何か新しいことを始めたり、目標に向けて行動を継続していくのが難しいと感じているユーザーの背中を押し、充実した一日を送る手助けになるサービスを作りたいと思い製作しました。

ターゲットユーザー

  • 時間にメリハリをつけて行動することの大切さを知っており、実行したいと願う人
  • 習慣化させたい行動があるが、なかなか実現できていない人
  • 同じ意識を持ったユーザーとつながり応援し合うことで、一日の原動力を養いたい人

主な利用シーン

  • 朝起きたあと、一日のタスクを ToDo リストに登録し、ひとつひとつ実行していく。
  • 毎日行うタスクを【ルーティーン】として登録しておき、それらをまとめて ToDo リストに反映させる。
  • ToDo リスト上の一日に終了したタスクをアップロードし、行動記録・日記として利用。
  • 気分が乗らないときも、タイマーをセットし行動開始時間を決めたり投稿として共有することで、誰かと約束したような気になり行動しなきゃいけない状況を作る。

使用技術

アプリケーション構成図

AWS構成図_drawio_-_diagrams_net

使用言語

  • Ruby 2.5.7
  • Rails 5.2.4.3
  • Javascript(jQuery)

開発環境

  • Vagrant + VirtualBox
  • Docker, docker-compose(5/28 変更)

インフラ

  • AWS(VPC, EC2, RDS, ALB, S3, Lambda, CloudWatch, Route53)
  • MySQL2
  • Nginx(Web サーバ)
  • Capistrano
  • CircleCI(CI/CD)

その他の技術(gem 等)

  • Rspec(model スペック, feature スペック)
  • Rubocop
  • I18n(日本語化)
  • dotenv-rails(環境変数管理)
  • devise(ユーザー認証)
  • ransack(検索機能)
  • chartkick(タイムライングラフ)
  • kaminari(ページネーション)
  • bootstrap4
  • font-awesome
  • refile / refile-mini_magick(画像投稿)
  • cancancan(権限管理)
  • rails-admin(管理者ページ)

機能一覧

ユーザー機能

  • 名前、メールアドレス、パスワードによる新規登録
  • メールアドレス、パスワードによるログイン
  • プロフィール画像(S3 へ保存)、自己紹介文登録(任意)
  • ユーザー情報編集、削除、ログアウト機能
  • フォロー機能(非同期通信)
  • 詳細ページにタブメニュー(投稿一覧、フォロー一覧、フォロワー一覧、いいねした投稿一覧を非同期処理で切り替え表示)

投稿機能

  • 画像添付機能(非同期プレビュー、S3 へ保存)
  • ハッシュタグ機能(投稿作成、更新後に文章をスキャンし#タグ以下を別テーブルで保存)
  • いいね機能(非同期通信)
  • 編集、削除機能
  • 投稿へのコメント機能(非同期通信)
  • コメント編集(非同期通信)、削除機能

タイマー機能

  • タイマー時間設定(1〜60 分)
  • 他画面遷移時もタイマー残り時間引き継ぎ(sessionStorage にて受け渡し※現状 PC のみ対応)
  • タイマー表示、非表示切り替え(非同期処理)、リセット
  • ゼロになった時は alert にて通知

ToDo リスト機能

  • リスト項目を、Todo(実行予定)・Doing(実行中)・Done(完了)に分け、効率的なタスク管理を提供
  • 新規作成、編集(実行中、完了への変更含む)、削除機能を全て非同期通信化し直感的な操作が可能
  • リスト上の【投稿】ボタンから、タスクの内容を新規投稿画面へ受け渡し画面遷移

スケジュール登録機能

  • 毎日行うタスクを【ルーティーン】として登録でき、ToDo リストへ移行できる。
  • 一日に終えたタスクをまとめて【行動記録】として登録でき、日記のように記録を残せる。
  • 行動のスケジュールをタイムライングラフ表示(gem chartkick を使用)

検索機能

  • ユーザー検索機能(ユーザー名、自己紹介文から部分一致検索)
  • 投稿検索機能(本文、タグ名から部分一致検索)
  • タグ一覧表示(使用されている投稿数が多い順に表示)
    タグ選択後の投稿一覧ページより、選択したタグを用いて新規投稿可能

その他

  • ページネーション機能
  • 管理者権限(user/admin カラム)管理者ページ(rails-admin にて作成)

About

時間の有効活用をテーマとしたWebアプリケーションです。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published