Skip to content

Uda-Titor/portfolio

Repository files navigation

FIX HERE!

スクリーンショット 2020-07-21 22 02 00

URL

https://fixhere.work/

概要

修繕して欲しい箇所の位置、写真、修繕内容について連絡ができるサービスです。グーグルマップにマーカーを落とすことで簡単に位置を教えることができ、管理者側もカレンダー機能、グラフ機能があることでデータを簡単に整理できます。

使用技術

  • Ruby2.6.5
  • Rails5.2.4.3
  • Rspec
  • jQuery
  • Bootstrap4
  • PostgreSQL
  • AWS(VPC, RDS, EC2, S3, ALB, Route53, ACM)
  • Docker/docker-compose

ER図

ポートフォリオテーブル

サービス構成図

構成図 (1)

当サービスについて

作成動機

前職において、住民から道路の修理等の要望を受け、業者の発注するという業務についていました。 問題として、

  • 電話での応答なので詳しい場所が伝わりづらい
  • 写真を持ってくるために、市役所までくる必要がある
  • 業務自体が紙ベースなので、データの整理が大変である などの問題が生じておりました。

この経験から住民と行政を繋ぐ際に、手軽に写真や、位置情報を伝えること、管理者側が簡単に整理することができるサービスを作りたいと思い、作成いたしました。

ユーザー調査

インタビュー

ポートフォリオを作成する前に、まずこのサービスについて、何が求められているか調査する必要があったので、ユーザーと管理者に調査を行いました。

#サービス構成図 <ユーザー側の声>

  • できるだけ最低限の入力で済ませたい
  • 住所がない場所を相手に伝えることができたら便利
  • どの場所で工事をしているか見れたら嬉しい

<管理者側の声>

  • 自動で工事完了メールを送ってほしい
  • データを視覚的に整理してほしい(カレンダーなど)
  • データの検索機能がほしい

考察

インタビューより以下の点に力を入れてサービスを作成しました。

  • 必要最低限の入力で簡単に投稿
  • 位置情報入力のUX
  • 管理者がデータを視覚的に整理しやすくする

ポートフォリオとしての見所

  • Google Maps Javascript API を用いた位置情報伝達
  • カレンダーや、グラフ機能を用いることで視覚的に見やすく
  • wheneverを用いたバッヂ処理
  • Rspecによるテスト
  • AWSを用いたデプロイ
  • docker cicleciの使用(予定)

機能一覧

認証周り

  • ログイン、 サインアップ機能(devise)
    • email,パスワード、ユーザー名必須(ログイン時はemailとパスワードのみ)
    • ゲストログイン機能(ゲストユーザーは退会、プロフィール変更不可)

案件投稿機能

  • CRUD機能
  • Google Maps Javascript API を使い、マーカーを落として箇所の緯度・経度を取得

検索機能

  • 案件内容のキーワード、進捗状況、作成日時,ユーザー名で検索が可能
  • 緊急度、作成日時で並び変え可能

いいね機能

  • 案件に対して、いいねができる。Ajaxによる対応するようにしている。さらに、いいね数も見れるようにしている。

コメント機能

  • 案件に対して、コメントができる。また、コメントの編集、削除が可能
  • Ajaxを使うことでページ遷移せずに作成できる。

通知機能

  • いいね、コメントがされた場合、案件作成ユーザーと、管理者に対して通知する。通知された案件に対して、詳細が確認できるようにリンクをつけている。
  • 詳細画面にいくと「未確認」から「確認済み」になるようにしている。

ラベル機能

  • 案件に対して、該当項目のラベルをチェックすることで表示できる。
  • ラベルは管理者画面で、Ajaxを使うことでページ遷移せずに作成できる。

カレンダー機能

  • 管理者が工事開始日と、工事完了日をいれるとことでカレンダーに表示される。
  • 案件詳細にリンクできるようにしている。

グラフ機能

  • 作成日時から、1週間の案件、1年間の案件の棒グラフを作成している。
  • ラベルより、案件を分類し円グラフで表示をしている。

お知らせ機能

  • 掲示板を作り、お知らせを入力できる。
  • Ajaxを使うことでページ遷移せずに作成できる。

工事完了メール機能(バッヂ処理)

  • wheneverを使い、毎日AM11:00に送信するように設定。

通知削除機能(バッヂ処理)

  • wheneverを使い、毎日AM11:00。

管理者権限

  • 管理者はユーザーを削除、編集できる。
  • 管理者は管理者を削除することができない

案件箇所マップ

  • 全案件箇所をマップにマッピング
  • 未着手は黄色、工事中は赤でマッピング
  • 案件詳細にリンクできるようにしている。

苦労した点

設計

モデル設計後、機能の追加や、改善を行っていくうちに必要なカラムや、いらないカラムが出てきており、当初通りの計画では上手く行かないことに悩まされた。

しかし、ほとんどの機能は予定通りのDB設計で行えたので、DB設計の重要性を感じることができました。今後はさらにDB設計を学び、業務に生かしていきたいです。

UI/UX

デプロイ後、様々な人にレビューをしてもらった結果、UI/UXに関して様々な意見をもらいました。

  • コーポレートカラーを意識して、どんな印象を与えたいかを考えてほしい
  • 緊急度の指標の説明文があった方がわかりやすい
  • マップを未着手、工事中を色で分けて、わかりやすく

上記のような意見をもらい、下記のことを意識しました。

  • 基本的なデザインについて学び、ユーザーに対してどのような印象を与えたいかを考える。
  • 視覚的にわかるように、アイコンや、イメージ色(削除なら赤など)を意識して、実装する

まだまだ、改善点があるのでたくさんの人にフィードバックをもらい、さらに良くなるように努力してきます。

今後

実装予定の機能

  • docker, cicleciの実装

カタログ設計

https://docs.google.com/spreadsheets/d/1SCTHp8nXC_ieGuNbFEBg1TDstzUigWyWO77LK7MQDDg/edit#gid=0

画面遷移図

https://docs.google.com/spreadsheets/d/18N2iG-viN3q7usR3FhspYlFYF2ObiG7418x0PUsB9Ys/edit#gid=0

画面ワイヤーフレーム

https://docs.google.com/spreadsheets/d/1i6w_WKBIz_PW9PrWvviHsScHt6MfP3jJl5EMSp1-7rg/edit#gid=0

データテーブル ER図

https://docs.google.com/spreadsheets/d/1mrwzfg59_YZ_7o_6FQ5d5z4Qe7je0MNfFt-0vSVqpak/edit#gid=0

使用予定gem

carrierwave
・mini_magik
・device
・ransack
・Geocoder

使用予定API

・Google Maps API

Releases

No releases published

Packages

No packages published