Giter VIP home page Giter VIP logo

agent-review-1's Introduction

README

Smoothly(仮)

App URL

テスト用アカウント

1️⃣概要

不動産営業マンのレビューを書くこと

ユーザーはユーザー新規登録をした後に、不動産営業マンのレビューを書くことができる。

レビューを書きたい営業マンがいない場合、新規不動産営業マンを登録すること

ユーザーはレビューを書きたい営業マンが存在しなかった場合、新しく営業マンを作ることができる。

既存のレビューを閲覧できること

他のユーザーが投稿したレビューを閲覧することができる。

2️⃣目指した課題解決

不動産業界をよりクリアに風通しを良くしたかった。
人間に最も重要な衣・食・住。不動産は実生活に密接な関係を持ちながらも、「ボッタクリ」や「騙し(詐欺)」が後を断たない。
一方で素晴らしい営業マンもいる中、消費者は容易にそれを判断することができない。
良い営業マンも悪い営業マンも明るみに出て、口コミ(レビュー)で消費者をサポートしたいと思った。

3️⃣実装した機能についてのGIFと説明

ユーザー管理機能

nickname、メールアドレス、パスワードを入力することによってユーザー新規登録をすることができる。 Image from Gyazo

レビュー投稿/編集/削除機能

特定の営業マンに対してレビューを書くことができる。自分の書いたレビューに限り、編集と削除をすることができる。 ea1bf6d745949e4a9de3cd67f82c2e1d ↓星の数をクリックすることで評価をすることができる。
Image from Gyazo

営業マン検索機能

営業マンの名前・会社名・場所を元に検索することができる。
Image from Gyazo

新規営業マン登録機能

レビューを書きたい営業マンがまだ存在しない場合は、新しく営業マンを作成することができる。
f32072d868574aa5268df7c2f69eac42

4️⃣実装予定の機能

レビューに対する「同意」・「反対」機能

5️⃣課題

※以下の課題は進化版アプリケーションで是正予定※

  • Coffee Scriptを使用しない
  • テストコード未実装
  • コードの可読性の向上、DRY原則に従う

6️⃣データベース設計

ER図
スクリーンショット 2021-01-07 20 10 18

7️⃣使用技術

フロントエンド

  • HTML
  • CSS
  • BULMA
  • JavaScript
  • Coffee Script

バックエンド

  • Ruby : 2.6.5
  • Ruby on Rails : 6.0.3.4

使用Gem

  • rubocop
  • devise
  • bulma-rails
  • pry-rails
  • active_hash
  • coffee-rails

8️⃣テーブル設計

users テーブル

Column Type Options
nickname string null: false
email string null: false
encrypted_password string null: false

Association

  • has_many :reviews
  • has_many :agents
  • has_many :likes
  • has_many :reviews, through: :likes

reviews テーブル

Column Type Options
score integer null: false
deal_type_id integer null: false
close_deal_id integer null: false
content text null: false
user references null: false, foreign_key: true
agent references null: false, foreign_key: true

Association

  • belongs_to :user
  • belongs_to :agent
  • has_many :likes
  • has_many :user, :through :likes

agents テーブル

Column Type Options
last_name string null: false
first_name string null: false
last_name_kana string null: false
first_name_kana string null: false
company_name string null: false
company_location string null: false

Association

  • has_many :reviews
  • belongs_ to :user

likes テーブル

Column Type Options
user references null: false, foreign_key: true
review references null: false, foreign_key: true

Association

  • belongs_ to :user
  • belongs_ to :review

agent-review-1's People

Contributors

yesiamhayato avatar

Watchers

 avatar

agent-review-1's Issues

事前準備

概要

機能を実装できる段階まで事前準備を行う

タスク

  • database.ymlでencoding: utf8に変更
  • データベースを作成
  • Rubocop導入、設定編集
  • turbolinksが読み込まれないように編集
  • 不要な変更履歴がGitで管理されないようにする。(.gitignoreファイルの一番下の行に.Ds_Storeと追記)

営業マン登録機能

概要

レビューを書く対象となる、営業マンを登録する機能を実装する

タスク

  • agentモデル作成
  • agentテーブル作成
  • バリデーション記入する
  • ルーティング記入する
  • form_withを用いてフォームを作成する
  • ビューを整える

ユーザー管理機能

概要

deviseを用いてユーザー管理機能を実装する。

タスク

  • gem devise導入
  • userモデル作成
  • userテーブル作成
  • バリデーション作成
  • homesコントローラー、topアクション作成。rootに設定。
  • bootstrap導入
  • トップページのビューにナビゲーションバー作成。ログイン状態によって表示を変える。
  • ユーザー登録画面ビュー作成
  • ログイン画面ビュー作成

Agentモデルの単体テストコード

概要

サービスを保証するため、Agentモデルの単体テストコードを記述する。

タスク

  • factorybot作成
  • 正常系テストコード
  • 異常系テストコード

データベース設計

概要

レビューサイトに必要なデータベース設計を行う

  • ユーザー管理機能
  • 営業マン新規登録機能
  • レビュー機能
  • いいね機能

タスク

  • アプリの機能を元に、必要なテーブル・カラム情報を洗い出す
  • ER図を書く
  • READEMEにデータベース設計を記述する

Userモデルの単体テストコード

概要

サービスを保証するため、Userモデルの単体テストコードを記述する。

タスク

  • rspec, faker, factorybotのgem導入
  • factorybot作成
  • 正常系テストコード
  • 異常系テストコード

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.