概要
サービスの概要
商品開発ダッシュボードを作成しました。 商品に対する基本情報と実績を表示するツールです。 ユーザーはダッシュボードを確認することで、問題のある商品の特定から改善に向けた行動をとることができます。 - これまで商品の基本情報と売り上げ実績が別々に表示されていたが、本ダッシュボードでレポートを作成する手間を省ける。 - これまで商品レビューは軽視されてきた状況だが、本ダッシュボードでお客様の声を意識した開発ができるようになった。
使用技術
- 利用言語:Python(サーバー側), Javascript(フロントエンド側)
- ライブラリ:Mecab(キーワード抽出), D3.js(ワードクラウド), echart(時系列グラフ)
- フレームワーク:Django,Backbonejs
- その他:Docker, SVN, MySQL
サービスの運営上での課題と工夫
dockerによる開発環境構築
課題 開発環境と本番環境、他メンバーPC間で環境にズレが生じる可能性があるため、環境構築の手間や環境が壊れた時のリスクが生じる。
使用技術 docker使用。
工夫 svnの導入と組み合わせることで、ソースの管理と環境の管理を行い、完全管理が可能になっている。
成果 環境間の差異をなくし、5分で開発環境を構築することができた。 後にAWS EC2への移行の話が出たが、windowsとlinux間での環境差異を考慮しなくても良い状態になった。
Webサーバー(フロントエンド) + データ提供APIのアーキテクチャ(バックエンド)
課題 複数メンバーでの開発のため、マージの際には競合が発生してしまう可能性がある。
使用技術 WebAPI
工夫 フロントエンドとバックエンドで開発メンバーを分け、 互いの領域でないソースは編集しないというルールを設ける。
成果 コンテナ単位(フォルダー単位)でのソースの管理を行い、マージの際の競合はなくなった。 フロントエンドとバックエンドが明確に分離され、変更に耐えるシステムになった。
開発の詳細
これまでのプロジェクトの流れ
上記達成時点より、以下の本格的な開発サイクルがスタート
上記のサイクルを用いて、以下の3点を実装 1. キーワードクラウドによる商品レビューの頻出単語の可視化 2. 売り上げの時系列グラフ化 3. CSV管理 → MySQLデータベース管理による高速化
キーワードクラウドによる商品レビューの頻出単語の可視化
経緯 商品開発チームより「ユーザーレビューを活かす取り組みを始めるために直感的なユーザーインターフェースにしたい」という要望があったため実装。 星ごとにワードの色を変えることで、レビューのネガポジのキーワードを直感的に拾える工夫をした。
使用技術 Python+Mecabでレビューからキーワード+頻度を抽出。 抽出したデータをD3.jsライブラリーを用いてワードクラウド化。
工夫 言語分析は「ユーザーレビューを活かしたい」という要件により、再利用性が重要だと予測。 言語分析APIとしてコンテナを作成して対応した。