Skip to content

要件定義

プロジェクトの背景と目的

  • 背景: 店舗ビジネスにおいてGoogleマップ上での検索順位(MEO: Map Engine Optimization)が集客に大きく影響するが、複数店舗を管理するオーナーにとって、Googleビジネスプロフィール(GBP)の管理・分析は手作業では困難である
  • 目的: GBPの口コミ管理、投稿管理、検索順位トラッキング、SMS・アンケートによる顧客エンゲージメントを一元管理するWebサービスを提供する
  • 期待する効果: MEO対策の効率化、口コミ対応の迅速化、検索順位の可視化による施策改善

システムのスコープ(作業範囲)

対象範囲

  • GMACアプリケーション: MEOサービスのWebアプリケーション(管理画面・ユーザー画面)
  • スクレイピングプログラム: Google検索結果からMEOランキングを自動取得するバッチプログラム

対象外

対象ユーザー

  • メインユーザー(MAIN_USER): 店舗オーナー。GBP管理、口コミ返信、投稿作成、分析閲覧
  • グループユーザー(GROUP_USER): 店舗スタッフ。メインユーザーから委任された範囲での管理操作
  • マスターユーザー(MASTER_USER): 複数店舗の統括管理者
  • 管理者(Admin): システム管理者。ユーザー管理、レポート、データインポート・エクスポート

業務フロー

MEOランキング取得フロー

口コミ管理フロー

機能要件

システムに求める具体的な機能を定義する。詳細は機能一覧を参照。

機能カテゴリ概要
ダッシュボードGBP更新状況、口コミ統計、検索ランキング比較の一覧表示
口コミ管理口コミの閲覧・返信・テンプレート管理・自動返信設定
投稿管理GBP投稿の作成・スケジュール・グループ投稿
キーワード・ランキング検索キーワード管理、ランキング推移の可視化
SMSSMS配信、テンプレート管理、配信ログ
アンケートアンケート作成・配信・回答集計
グループ管理ユーザーグループの作成、ロケーション割当
管理者機能ユーザー管理、レポート、データインポート/エクスポート
スクレイピングGoogle検索結果からMEOランキングを自動取得

非機能要件

性能・拡張性

項目要件
同時接続数数百ユーザー程度
応答速度API 3秒以内
データ量ユーザー数千件、キーワード数万件、口コミ数十万件
スクレイピング処理能力約14,000キーワード/回(28バッチ x 500件)

セキュリティ

項目要件
認証方式セッション認証(Web)+ OAuth2トークン認証(API、Laravel Passport)
アクセス制御ロールベース(Spatie Laravel Permission)
通信暗号化HTTPS必須
OAuth連携Google OAuth、Instagram OAuth

可用性・保守性

項目要件
データベースMySQL Read/Write レプリカ構成
キャッシュRedis
ログSlackへのエラー通知、Spatie Activity Log
バックアップDB定期バックアップ

操作性・ユーザビリティ

項目要件
対応言語日本語
レスポンシブ対応PC向けSPA
チャートChart.jsによるグラフ表示

稼働環境要件

クライアント環境

項目要件
ブラウザChrome / Edge

サーバー環境

項目要件
GMACバックエンドPHP 7.1.3+ / Laravel 5.7
GMACフロントエンドVue.js 2.6 SPA
スクレイピングPython 3.10 / Django 5.0 / Playwright
データベースMySQL 8+
キャッシュ/セッションRedis
ファイルストレージAWS S3
コンテナDocker(Laradock)

システム構成図