日本企業向けの包括的な廃棄物管理システムです。排出事業者、元請業者、収集運搬業者向けの機能を提供し、電子マニフェスト(JWNET)連携、GPS追跡、写真管理、逆オークション機能を備えています。
This change was made together by @Yupsecous and @optimizm0 as part of the Pair Extraordinaire challenge.
🌐 本番環境: https://JWT.vercel.app
- RESTful API: OpenAPI 3.0準拠のAPI設計
- リアルタイム処理: WebSocket対応の逆オークション
- セキュリティ: JWT認証、RBAC、MFA対応
- スケーラビリティ: マイクロサービス対応、キュー処理
- 監査ログ: 全操作の追跡可能なログ記録
- Node.js + TypeScript
- NestJS - スケーラブルなNode.jsフレームワーク
- PostgreSQL + PostGIS - 地理空間データ対応
- Redis - キャッシュ・キュー処理
- Bull - ジョブキュー管理
- AWS S3 - オブジェクトストレージ
- JWT - 認証・認可
- React + TypeScript
- PWA対応 - モバイル最適化
- API統合 - 型安全なAPI呼び出し
- Vercel - クラウドデプロイ
- Docker + Docker Compose
- Nginx - リバースプロキシ
# リポジトリのクローン
git clone https://github.com/Yupsecous/JWT.git
cd JWT
# 開発サーバー起動
npm run start:dev# Docker Composeで起動
docker-compose up -d
# 依頼作成
POST /api/cases
{
"siteLat": 35.6762,
"siteLng": 139.6503,
"siteAddress": "東京都渋谷区恵比寿1-1-1",
"wasteType": "一般廃棄物",
"wasteCategory": "可燃ごみ",
"scheduledDate": "2024-01-15T10:00:00Z"
}
# データベース初期化
npm run seed
# アプリケーションアクセス
# - API: http://localhost:3000
# - API ドキュメント: http://localhost:3000/api/docs
# - ヘルスチェック: http://localhost:3000/health# ユーザー登録
POST /api/auth/register
{
"email": "[email protected]",
"password": "password123",
"name": "田中太郎",
"role": "排出事業者"
}
# ログイン
POST /api/auth/login
{
"email": "[email protected]",
"password": "password123"
}# 依頼一覧取得
GET /api/cases?status=新規&priority=高
# マッチング結果取得
GET /api/cases/{id}/matching# プリサインドURL取得
POST /api/photos/presigned-url
{
"caseId": "uuid",
"fileName": "photo.jpg",
"mimeType": "image/jpeg"
}
### GPS追跡
```bash
# GPSイベント登録
POST /api/gps/events
{
"caseId": "uuid",
"deviceId": "DEVICE_001",
"lat": 35.6762,
"lng": 139.6503,
"accuracyM": 5.0,
"eventType": "現場到着"
}# 入札作成
POST /api/auction/bids
{
"caseId": "uuid",
"amount": 50000,
"message": "迅速な対応を心がけます"
}
# オークション状況取得
GET /api/auction/status/{caseId}┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │ │ Mobile PWA │ │ VOLT UI │
│ (React) │ │ (React) │ │ (Integration) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────────┼───────────────────────┘
│
┌─────────────────┐
│ Vercel │
│ (CDN & Edge) │
└─────────────────┘
│
┌─────────────────┐
│ NestJS API │
│ (Backend) │
└─────────────────┘
│
┌───────────────────────┼───────────────────────┐
│ │ │
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ PostgreSQL │ │ Redis │ │ AWS S3 │
│ (Database) │ │ (Cache/Queue) │ │ (Storage) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │
└───────────────────────┼───────────────────────┐
│ │
┌─────────────────┐ ┌─────────────────┐
│ JWNET API │ │ External │
│ (Integration) │ │ Services │
└─────────────────┘ └─────────────────┘
- 依頼作成: 排出事業者が廃棄物依頼を作成
- 自動マッチング: 地域・許可証・価格に基づく業者マッチング
- 逆オークション: 複数業者による入札競争
- 業者選定: 最適な業者の自動選定
- 現場作業: GPS追跡・写真撮影による進捗管理
- 電子マニフェスト: JWNET連携による自動登録
- 完了報告: 処分完了までの全工程管理
- JWT認証: セキュアなトークンベース認証
- RBAC: 役割ベースアクセス制御
- MFA: 多要素認証対応
- セッション管理: 安全なセッション管理
- 暗号化: S3でのAES-256暗号化
- TLS: 全通信の暗号化
- 監査ログ: 全操作の追跡
- データマスキング: 機密データの保護
# アプリケーション状態確認
curl https:/JWT.vercel.app/api/health
# データベース接続確認
curl https://JWT.vercel.app/api/health/db
# Redis接続確認
curl https://JWT.vercel.app/api/health/redis- 構造化ログ: JSON形式でのログ出力
- ログレベル: DEBUG, INFO, WARN, ERROR
- 監査ログ: 全操作の追跡可能なログ
- パフォーマンス: レスポンス時間、スループット
- エラー率: API エラー率の監視
- リソース使用量: CPU、メモリ、ディスク使用量
npm run testnpm run test:e2enpm run test:cov# Vercel CLIでデプロイ
npm install -g vercel
vercel --prod
# 環境変数設定
vercel env add DB_HOST
vercel env add DB_PASSWORD
vercel env add JWT_SECRET本番環境では以下の環境変数を設定してください:
NODE_ENV=productionJWT_SECRET: 強力なJWT秘密鍵DB_*: 本番データベース設定AWS_*: AWS認証情報JWNET_*: JWNET API設定
- CPU: 2コア以上
- メモリ: 8GB以上
- ストレージ: 50GB以上(SSD推奨)
- ネットワーク: 100Mbps以上
- 水平スケーリング: 複数インスタンスでの負荷分散
- データベース: 読み取り専用レプリカの活用
- キャッシュ: Redis クラスターでの分散キャッシュ
- フォークを作成
- フィーチャーブランチを作成 (
git checkout -b feature/amazing-feature) - 変更をコミット (
git commit -m 'Add amazing feature') - ブランチにプッシュ (
git push origin feature/amazing-feature) - プルリクエストを作成
このプロジェクトは MIT ライセンスの下で公開されています。詳細は LICENSE ファイルを参照してください。
- ドキュメント: API ドキュメント
- Issues: GitHub Issues
- メール: [email protected]
- 初回リリース
- 基本機能の実装
- JWNET連携機能
- 逆オークション機能
- GPS追跡機能
- 写真管理機能
- Vercel デプロイ対応
廃棄物管理システム - 日本の廃棄物管理をデジタル化し、効率化を実現します。
🌐 本番環境: https://JWT.vercel.app