公開URL:
仕事をする上で、問題解決能力は重要ですが、それを日々の業務だけで身につけることは難しい。社会人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
- 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
- Vue.js(タグの入力フォームのみ)
- Vue-multiselect
- jQuery
- jscroll
-
wheneverを用いて以下を毎日定期実行
- attachされておらず作成びが1日以上前のファイルの削除
- 28日以上経過した通知の削除
-
github actionsを用いたCI
- プルリクエストをする時、github actionsでRSpecが実行され、パスしないとmasterブランチにマージできない
-
ユーザー機能
- ユーザー作成/編集
- ユーザーデータのcsvインポート
- ユーザーログイン / ログアウト
- 管理者
-
イシュー投稿機能
- 作成/編集/削除
- リッチテキストでの投稿
- 公開範囲設定
- 動的タグ付
-
検索・ソート機能
- ユーザーの検索、ソート
- イシューの検索、ソート
-
コメント投稿機能
- 作成/編集/削除
- リッチテキストでの投稿
-
いいね、ストック機能
- 作成/削除
-
チャット機能(ドラフト版)
- リアルタイムチャット機能
サーバー名 | 用途 |
---|---|
db | データベース用 |
web | アプリケーション用 |
webpacker | webpackのコンパイル用 |
minio | ストレージ(S3互換)用 |
mc | minioの初期設定用 |
redis | アクションケーブル(チャット)のサブスクリプションアダプタ用 |
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