要件定義
プロジェクトの背景と目的
- 背景: 店舗ビジネスにおいてGoogleマップ上での検索順位(MEO: Map Engine Optimization)が集客に大きく影響するが、複数店舗を管理するオーナーにとって、Googleビジネスプロフィール(GBP)の管理・分析は手作業では困難である
- 目的: GBPの口コミ管理、投稿管理、検索順位トラッキング、SMS・アンケートによる顧客エンゲージメントを一元管理するWebサービスを提供する
- 期待する効果: MEO対策の効率化、口コミ対応の迅速化、検索順位の可視化による施策改善
システムのスコープ(作業範囲)
対象範囲
- GMACアプリケーション: MEOサービスのWebアプリケーション(管理画面・ユーザー画面)
- スクレイピングプログラム: Google検索結果からMEOランキングを自動取得するバッチプログラム
対象外
- smart MEO本体サイト(https://smart-meo.com/)の管理
- Google Business Profile APIの開発(Google提供APIを利用)
対象ユーザー
- メインユーザー(MAIN_USER): 店舗オーナー。GBP管理、口コミ返信、投稿作成、分析閲覧
- グループユーザー(GROUP_USER): 店舗スタッフ。メインユーザーから委任された範囲での管理操作
- マスターユーザー(MASTER_USER): 複数店舗の統括管理者
- 管理者(Admin): システム管理者。ユーザー管理、レポート、データインポート・エクスポート
業務フロー
MEOランキング取得フロー
口コミ管理フロー
機能要件
システムに求める具体的な機能を定義する。詳細は機能一覧を参照。
| 機能カテゴリ | 概要 |
|---|---|
| ダッシュボード | GBP更新状況、口コミ統計、検索ランキング比較の一覧表示 |
| 口コミ管理 | 口コミの閲覧・返信・テンプレート管理・自動返信設定 |
| 投稿管理 | GBP投稿の作成・スケジュール・グループ投稿 |
| キーワード・ランキング | 検索キーワード管理、ランキング推移の可視化 |
| SMS | SMS配信、テンプレート管理、配信ログ |
| アンケート | アンケート作成・配信・回答集計 |
| グループ管理 | ユーザーグループの作成、ロケーション割当 |
| 管理者機能 | ユーザー管理、レポート、データインポート/エクスポート |
| スクレイピング | 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) |