Giter Site home page Giter Site logo

popinion's Introduction

README

README

匿名チャットアプリ Popinion

概要

Popinionを使用すれば、余計なノイズを排除した「純粋な意見」を集める助けになります。

コンセプト

匿名性と細かな設定を用意し、ユーザーが特定多数のコミュニティで本当に欲しい意見を収集できるようにする。

バージョン

Ruby 2.6.5 Rails 5.2.4

機能一覧

  • ログイン機能
  • グループ作成機能
  • チャットルーム作成機能
  • 3人以上による非同期チャット機能
  • チャットルームに対するタグ付与機能
  • チャットルームの細かな設定機能
  • 議事録をPDFとしてダウンロードする機能
  • 画像投稿機能
  • 通知機能
  • 外部APIを活用したログイン機能
  • ゲストログイン機能

カタログ設計

https://docs.google.com/spreadsheets/d/1A21Iq1uj5wrTxmmqpuW2rPd1xGXlYxfbR0SLWjbUUHE/edit?usp=sharing

テーブル定義

https://docs.google.com/spreadsheets/d/1yDFUKMk0xNdYWIiOKoRYlW7vGzIldSqjZrqsmB6rIss/edit?usp=sharing

ER図

https://docs.google.com/spreadsheets/d/1kS0DK-bwJQ8bP-ZnGW9uVTTLFCcFEk29bX1UL3mm7E0/edit?usp=sharing

画面遷移図

https://docs.google.com/spreadsheets/d/1CZpgYR6n89iKMROrh1sgyUXZzzS7XT4ajj9BzfLkUSo/edit?usp=sharing

ワイヤーフレーム

https://docs.google.com/spreadsheets/d/1aFUOUxszvWOwMY5YiVNOKz-fHvnTdftbogzp-NR0b9E/edit?usp=sharing

使用予定Gem

  • carrierwave
  • mini_magick
  • devise
  • ransack
  • wicked_pdf
  • slim-rails
  • font-awesome-sass
  • devise_token_auth

就業タームから選択する技術

  • メッセージ機能
  • device

カリキュラム外の技術

  • wicked_pdf
  • slim-rails
  • ransack(優先度:中)
  • devise_token_auth(優先度:中)

popinion's People

Contributors

notawhisper avatar nanjananimono avatar

Stargazers

 avatar yasuko nishimura avatar

Watchers

 avatar

popinion's Issues

各アクションへの制限付与、UIの最低限の調整

作業内容

  • 各モデルでバリデーションをかける
  • 各ページに適切なリンクを設定
  • 翻訳ファイルの記述
  • パーシャルへの分割
  • 要件(優先度高)を満たしているか確認
  • レビュー用シードデータの作成

PDFダウンロード機能の実装

実装する機能

  • チャットルームの投稿をpdfでダウンロードする機能

想定される工程

  • wicked_pdfの導入、設定
  • viewをパーシャルに分割

基本的なチャット機能の実装

求める機能

  • ログインしている場合、チャットルームを作成することができる
  • チャットを行うことができる
  • チャットルームの投稿をまとめてPDFとしてダウンロードできる
  • ホスト以外の投稿の閲覧権とダウンロード権をホストだけに認可できる
  • チャットルームの参加メンバーを公開・非公開に設定できる

メモ

  • 必要テーブルは(rooms, room_user_lists, temporary_ids, posts)
  • 「簡単なチャットルームCRUD機能→チャットルームに対するメンバー追加機能→チャットへの投稿機能→PDFダウンロード機能→発展的なチャットルーム設定機能」の順に実装する
  • seedデータを入れる
  • カラムにindexをはる必要があるかは吟味する

疑問
アソシエーションメソッドusersにhostも含めるべきか?

変更
room_user_listsテーブルを削除、temporary_idsテーブルの名称をchat_membersテーブルに変更

Action Cable導入テスト

問題
チャットが非同期通信でないため、非常に使い勝手がわるい。

目標
Action Cableをチャット部分に実装する。

具体的作業内容
Action Cableの実装。
デフォルトで作成されるcoffeeスクリプトは使用せず、jsファイルに直して利用する。

発展的なチャットルーム設定機能の実装

求める機能

  • チャットルームの参加メンバーを公開・非公開に設定できる
  • ホスト以外の投稿の閲覧権とダウンロード権をホストだけに認可できる
  • 発言者を区別するかしないか選択できる(これのみ優先度中、基本的なメソッドは実装済み)

グループ機能の追加

追加したい機能

  • ユーザーグループ(3人以上)のCRUD機能がある
  • グループ詳細画面でチャットルームの一覧を表示できる
  • グループ詳細画面から、グループメンバー全員が参加するチャットルームを作成できる

第一次リファクタリング

大まかな機能ではできたので、
コードをリファクタリングする。

解消すべきこと

  • 冗長性
  • N+1問題

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.