迷惑電話から守るスマートフォンアプリ。電話番号の識別、スパム報告、自動ブロック機能を提供します。
- 電話番号検索・識別: 着信時に発信者情報を表示
- 迷惑電話ブロック: スパム電話の自動ブロック
- ユーザー報告システム: コミュニティベースの情報収集
- 通話履歴管理: 詳細な通話履歴の表示・管理
- カスタマイズ可能な設定: ブロックカテゴリやホワイトリストの管理
- フロントエンド: React Native (Expo)
- バックエンド: Node.js + Express + TypeScript
- データベース: MongoDB + Mongoose
- 認証: JWT
- セキュリティ: Helmet, CORS, Rate Limiting
- ダッシュボード(統計情報表示)
- 最近の通話履歴
- クイックアクション
- 電話番号検索
- スパム報告機能
- カテゴリ分類
- ブロック済み番号一覧
- ブロック解除機能
- 検索・フィルター
- 詳細な通話履歴
- タイプ別フィルター
- 統計情報
- 自動ブロック設定
- 通知設定
- ホワイトリスト管理
- Node.js (v18以上)
- npm または yarn
- MongoDB (ローカルまたはクラウド)
- Expo CLI
-
リポジトリをクローン ```bash git clone cd trae_test ```
-
フロントエンド(React Native)のセットアップ ```bash npm install npx expo install react-dom react-native-web ```
-
バックエンドのセットアップ ```bash cd backend npm install ```
-
環境変数の設定 ```bash cd backend cp .env.example .env
```
-
バックエンドサーバーを起動 ```bash cd backend npm run dev ``` サーバーは http://localhost:3000 で起動します
-
フロントエンドアプリを起動 ```bash
npm run web ``` アプリは http://localhost:8081 で起動します
-
モバイルアプリ(オプション) ```bash npm run android # Android npm run ios # iOS ```
- `GET /api/phone/:number` - 電話番号検索
- `POST /api/reports` - スパム報告
- `GET /api/stats` - 統計データ取得
- `GET /api/blocklist` - ブロックリスト取得
- `POST /api/blocklist` - ブロックリストに追加
- `DELETE /api/blocklist/:number` - ブロックリストから削除
- `GET /api/history` - 通話履歴取得
- `POST /api/history` - 通話履歴追加
- `GET /api/history/stats` - 通話統計取得
- `GET /api/health` - ヘルスチェック
- `GET /api/` - API情報
```typescript { number: string, // 電話番号 name?: string, // 名前 category: string, // カテゴリ(spam, telemarketing, etc.) reportCount: number, // 報告数 lastReported: Date, // 最終報告日 isBlocked: boolean, // ブロック状態 tags: string[], // タグ reports: ObjectId[] // 関連する報告 } ```
```typescript { phoneNumber: string, // 電話番号 name?: string, // 名前 type: string, // 通話タイプ(incoming, outgoing, missed) timestamp: Date, // 通話時刻 duration?: number, // 通話時間(秒) isBlocked: boolean, // ブロック状態 category?: string // カテゴリ } ```
```typescript { phoneNumber: string, // 報告対象の電話番号 category: string, // 報告カテゴリ description?: string, // 詳細説明 reportedBy: string, // 報告者 timestamp: Date, // 報告日時 verified: boolean // 検証済みフラグ } ```
- レート制限: API呼び出し回数制限
- CORS設定: クロスオリジンリクエスト制御
- ヘルメット: セキュリティヘッダー設定
- 入力検証: Express Validator使用
- エラーハンドリング: 適切なエラーレスポンス
```bash
cd backend npm test
npm test ```
```bash cd backend npm run build npm start ```
```bash
npm run build
npx expo build:android npx expo build:ios ```
- フォークする
- フィーチャーブランチを作成 (`git checkout -b feature/AmazingFeature`)
- 変更をコミット (`git commit -m 'Add some AmazingFeature'`)
- ブランチにプッシュ (`git push origin feature/AmazingFeature`)
- プルリクエストを作成
このプロジェクトはMITライセンスの下で公開されています。
- Whoscall - インスピレーション元
- React Native コミュニティ
- Express.js チーム
- MongoDB チーム
注意: このアプリは教育・学習目的で作成されています。実際の迷惑電話対策には、公式のアプリやサービスの使用を推奨します。