issues_app

問題意識・問題解決の習慣化と情報共有を補助するツール(新人教育用)

Stars
0
Committers
2

意習(issue)

公開URL:

新着

  • action cableを用いたリアルタイムチャット機能(ドラフト版)追加しました: 2022/05/19
    チャットイメージ

意習(issue)とは

仕事をする上で、問題解決能力は重要ですが、それを日々の業務だけで身につけることは難しい。社会人1年目(薬剤師)の問題識・問題解決の慣化と情報共有を補助するツールとしてこのアプリを作りました。 日頃の業務の中で遭遇するイシューをアウトプットし、新人同士で情報共有することで問題意識と解決能力を養います。日誌、日報とせず、イシューとすることで、問題意識を持たせることができると考えました。 ユーザーは、薬剤師のメンターと新人薬剤師を想定しています。 イシューを投稿し、コメントすることができます。また、解決・未解決の分類があり、メンターは未解決のイシューをフォローしたり、解決の方法に問題ないかチェックできます。

開発環境(言語)

  • ruby 3.0.1
  • rails 6.0.3
  • jQuery 3.5.1
  • Vue.js 2.6.14
  • Bootstrap 4.5.0
  • popper.js 1.16.0
  • postgreSQL 14.2

インフラ

  • AWS S3
  • SendGrid
  • docker

技術

ruby gem

  • actioncable
  • actiontext
  • activerecord-import
  • acts-as-taggable-on
  • aws-sdk-s3
  • bullet
  • cancancan
  • devise
  • kaminari
  • rails_admin
  • ransack
  • redis (>= 3, 5 <)
  • rspec-rails
  • sendgrid-ruby
  • whenever

javascript

  • Vue.js(タグの入力フォームのみ)
    • Vue-multiselect
  • jQuery
    • jscroll

その他

  • wheneverを用いて以下を毎日定期実行

    • attachされておらず作成びが1日以上前のファイルの削除
    • 28日以上経過した通知の削除
  • github actionsを用いたCI

    • プルリクエストをする時、github actionsでRSpecが実行され、パスしないとmasterブランチにマージできない

主な機能

  • ユーザー機能

    • ユーザー作成/編集
    • ユーザーデータのcsvインポート
    • ユーザーログイン / ログアウト
    • 管理者
  • イシュー投稿機能

    • 作成/編集/削除
    • リッチテキストでの投稿
    • 公開範囲設定
    • 動的タグ付
  • 検索・ソート機能

    • ユーザーの検索、ソート
    • イシューの検索、ソート
  • コメント投稿機能

    • 作成/編集/削除
    • リッチテキストでの投稿
  • いいね、ストック機能

    • 作成/削除
  • チャット機能(ドラフト版)

    • リアルタイムチャット機能

docker構成

サーバー名 用途
db データベース用
web アプリケーション用
webpacker webpackのコンパイル用
minio ストレージ(S3互換)用
mc minioの初期設定用
redis アクションケーブル(チャット)のサブスクリプションアダプタ用

AWS CDK

CDKのGitHubリンク: https://github.com/fumtas1k/issues_app_cdk

実行手順

このアプリは、最初にアカウント登録したユーザーに管理者権限が付与されます。

以下は全てターミナルでの操作になります(macでの操作)。

1. hostsの追加

まず、S3の代わりにdockerでminioを使用するため、minioのIPアドレスを読み替える必要があります。 webサーバーからは http://minio:9000 でminioサーバーにアクセスしますが、ブラウザからは http://localhost:9000 でアクセスするため、そのままでは保存した画像が表示できなかったり直接のアップロードができなかったりします。

$ sudo vi /etc/hosts

パスワード入力が必要になります。 パソコンログイン時のパスワードを入力して下さい。

ファイルの中身が表示されたら、i キーを押して、編集できるようにします。 最終行の下に以下を追加。

127.0.0.1 minio

esc キーを押して編集を終了し、:wqと入力し、エンターキーを押すと保存されます。これで、下準備完了です。

2. 環境構築

まず、githubからデータをクローンし、ディレクトリを移動し.envファイルを作成します。

$ git clone https://github.com/fumtas1k/issues_app.git
$ cd issues_app
$ touch .env

.envファイルに、以下をコピーしイコールの右側を埋めて環境変数を設定します。SENDGRID_API_KEYはSEND GRIDに登録し、API KEYを入手して下さい。EMAILはご自分のメールアドレスを入力して下さい。パスワード再設定のみに必要なため設定しなくても問題はありません。

SENDGRID_API_KEY =
SENDGRID_API_HOST = https://api.sendgrid.com
EMAIL =

.env ファイルの設定が終わったらコンテナを作成、起動するため以下を実行。

$ docker-compose up -d

全てが立ち上がったら使用可能となります。 http:127.0.0.1:3000 にアクセスして下さい(最初に立ち上げた時は、データベースの初期化等で時間がかかります)。

3. ダミーデータ

ダミーデータが欲しい場合は、ターミナルで以下を実行

$ docker-compose run web rails db:seed

4. サーバー内での作業

dockerのwebサーバー内で作業したい場合は、ターミナルで以下を実行(他のサーバーに入りたい場合はwebの部分をdb, minio等に変更)。

$ docker-compose exec web bush

5. 停止したい場合

$ docker-compose stop

削除手順

一括削除するには、以下のコマンドをターミナルで実行。 コンテナ、イメージ、ボリューム、ネットワークが削除されます。

$ docker-compose down --rmi all --volumes --remove-orphans

カタログ設計

https://docs.google.com/spreadsheets/d/1TkFKai1BwqkoukUsm8eNM-FI5RmXw8tFM69eKMoSiRY/edit#gid=782464957

テーブル定義書

https://docs.google.com/spreadsheets/d/1TkFKai1BwqkoukUsm8eNM-FI5RmXw8tFM69eKMoSiRY/edit#gid=2020033787

ワイヤーフレーム

https://cacoo.com/diagrams/m03GB5prFCD9g9ma/CA3E3

ER図

画面遷移図

Related Projects