feat: Initial commit - Task Reporter incident response system

Complete implementation of the production line incident response system (生產線異常即時反應系統) including:

Backend (FastAPI):
- User authentication with AD integration and session management
- Chat room management (create, list, update, members, roles)
- Real-time messaging via WebSocket (typing indicators, reactions)
- File storage with MinIO (upload, download, image preview)

Frontend (React + Vite):
- Authentication flow with token management
- Room list with filtering, search, and pagination
- Real-time chat interface with WebSocket
- File upload with drag-and-drop and image preview
- Member management and room settings
- Breadcrumb navigation
- 53 unit tests (Vitest)

Specifications:
- authentication: AD auth, sessions, JWT tokens
- chat-room: rooms, members, templates
- realtime-messaging: WebSocket, messages, reactions
- file-storage: MinIO integration, file management
- frontend-core: React SPA structure

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
egg
2025-12-01 17:42:52 +08:00
commit c8966477b9
135 changed files with 23269 additions and 0 deletions

64
docker-compose.minio.yml Normal file
View File

@@ -0,0 +1,64 @@
# MinIO Object Storage for Task Reporter
# Usage: docker-compose -f docker-compose.minio.yml up -d
#
# This configuration starts MinIO for local development.
# Access MinIO Console at: http://localhost:9001
# S3 API endpoint at: http://localhost:9000
version: '3.8'
services:
minio:
image: minio/minio:latest
container_name: task-reporter-minio
ports:
- "9000:9000" # S3 API
- "9001:9001" # MinIO Console
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
command: server /data --console-address ":9001"
volumes:
- minio_data:/data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
restart: unless-stopped
volumes:
minio_data:
driver: local
# ============================================================================
# Quick Start Guide
# ============================================================================
#
# 1. Start MinIO:
# docker-compose -f docker-compose.minio.yml up -d
#
# 2. Access MinIO Console:
# Open http://localhost:9001 in your browser
# Login: minioadmin / minioadmin
#
# 3. The application will automatically create the bucket on startup
# (configured as 'task-reporter-files' in .env)
#
# 4. Stop MinIO:
# docker-compose -f docker-compose.minio.yml down
#
# 5. Remove all data:
# docker-compose -f docker-compose.minio.yml down -v
#
# ============================================================================
# Production Notes
# ============================================================================
#
# For production deployment:
# - Change MINIO_ROOT_USER and MINIO_ROOT_PASSWORD to secure values
# - Use external volume or persistent storage
# - Configure TLS/HTTPS
# - Set up proper backup policies
# - Consider MinIO distributed mode for high availability
#