プロジェクト概要
企業向けのクレーム・お問い合わせ管理システムです。顧客からの問い合わせを一元管理し、 効率的な対応を実現するためのWebアプリケーションです。
複数の管理会社に対応し、各会社ごとに独立したチケット管理が可能です。 顧客は専用フォームから問い合わせを送信でき、管理者はダッシュボードから チケットの状況を一覧で確認・管理できます。
使用技術
バックエンド
- PHP 8.2+
- MySQL
- PDO(プリペアドステートメント)
フロントエンド
- HTML5 / CSS3
- JavaScript(Vanilla)
- レスポンシブデザイン
セキュリティ
- CSRF対策
- XSS対策
- SQLインジェクション対策
- レート制限
その他
- セッション管理
- ファイルアップロード
- メール送信(SMTP)
- Evernote API連携
主な機能
📝 チケット管理
顧客からの問い合わせをチケットとして管理。 ステータス(未対応、対応中、解決済みなど)で分類し、 進捗を可視化します。
💬 メッセージ機能
顧客と管理者間でメッセージのやり取りが可能。 会話履歴を保持し、過去の対応内容を確認できます。
📎 ファイル添付
画像、動画、PDFなどのファイルを添付可能。 ファイルタイプとサイズの検証を実装。
👥 マルチテナント対応
複数の管理会社に対応。各会社ごとに独立した チケット管理とユーザー管理が可能です。
📊 ダッシュボード
チケットの統計情報を一覧表示。 未対応チケットや放置チケットを アラートで通知します。
🔐 権限管理
スーパー管理者、管理者、スタッフの 3段階の権限管理を実装。 機能ごとにアクセス制御を行います。
📧 メール通知
チケット作成時や更新時に 自動でメール通知を送信。 顧客と管理者の両方に通知します。
🔍 検索・フィルタ
チケットID、ステータス、優先度などで 検索・フィルタリングが可能。 効率的なチケット管理を実現します。
セキュリティ対策
実装済みのセキュリティ対策
- SQLインジェクション対策:プリペアドステートメントを使用
- XSS対策:すべての出力でHTMLエスケープを実施
- CSRF対策:トークン生成・検証による二重送信防止
- 認証・認可:パスワードハッシュ化、ログイン試行回数制限
- セッションセキュリティ:httponly、samesite、secureフラグを設定
- ファイルアップロード:MIMEタイプ検証、ファイルサイズ制限
- レート制限:IPアドレス・メールアドレスベースの送信制限
- HTTPセキュリティヘッダー:X-Content-Type-Options、X-Frame-Options等
開発のポイント
セキュリティを重視した設計
本番環境での運用を想定し、セキュリティ対策を最優先に設計しました。 OWASP Top 10を意識し、主要な脆弱性に対する対策を実装しています。
スケーラブルなアーキテクチャ
マルチテナント対応により、複数の管理会社が同じシステムを利用できます。 データベース設計では、会社ごとのデータ分離を適切に実装しています。
ユーザビリティの向上
ダークテーマのモダンなUIデザインを採用し、視認性と操作性を向上させました。 レスポンシブデザインにより、スマートフォンからも快適に利用できます。
エラーハンドリングとログ管理
適切なエラーハンドリングとログ記録を実装し、 問題発生時の原因特定を容易にしました。
デモサイト
利用者側(お客様フォーム)
メールアドレス入力のみでチケットを作成できます。 実際にフォームから問い合わせを送信して動作を確認できます。
管理画面
デモ用ログイン情報:
ユーザー名: admin
パスワード: 12345678
注意:このアカウントはデモ専用です。 実際の本番環境とは別のアカウントです。
管理画面では以下の機能を確認できます:
- チケット一覧とステータス管理
- ダッシュボードでの統計情報表示
- メッセージの送受信
- ファイル添付機能
- ユーザー・会社管理(スーパー管理者の場合)
開発期間・規模
- 開発期間:約3ヶ月
- コード規模:約15,000行(PHP、HTML、CSS、JavaScript)
- データベーステーブル数:20以上
- 主な機能数:30以上