# Project Context ## Purpose Cross-departmental project management system serving as a Single Source of Truth to: - Reduce engineering time-reporting burden - Provide real-time resource load and project progress analysis - Standardize task tracking across departments Target users: - **Engineers**: Simplified reporting, automated reminders, personal task dashboard - **Unit Managers**: Team workload visibility, resource allocation heatmaps, multi-project health boards - **Admin/PMO**: Centralized data, automated weekly reports, document version control ## Tech Stack - **Frontend**: React.js (recommended for complex admin dashboards) - **Backend**: Python with FastAPI (enables future AI/ML integration for risk prediction) - **Database**: MySQL (relational structure for complex project hierarchies and dependencies) - **Cache & Real-time**: Redis (push notifications, task state locking) - **Real-time Sync**: WebSocket for live collaboration - **Authentication**: Enterprise Windows AD/LDAP via SSO (https://pj-auth-api.vercel.app) - **Environment Management**: Conda (for Python dependency isolation) ## Project Conventions ### Code Style - [To be defined - React/TypeScript conventions for frontend] - [To be defined - Python/FastAPI conventions for backend] ### Database Naming - **Table Prefix**: All tables must use `pjctrl_` prefix (e.g., `pjctrl_users`, `pjctrl_projects`, `pjctrl_tasks`) - This ensures isolation in shared database environments and prevents migration conflicts ### Architecture Patterns - 3-Tier Architecture (Presentation, Application, Data layers) - Designed for future extensibility (MES/ERP integration capability) - Multi-level task hierarchy: Space > Project > Task > Sub-task ### Testing Strategy - [To be defined] ### Git Workflow - [To be defined] ## Domain Context **Semiconductor/Manufacturing Industry** - Custom fields support domain-specific data: package types, machine numbers, expected yield rates - Document encryption (AES-256) for sensitive semiconductor drawings - User watermarking on downloads for IP protection - Department-level access control (e.g., factory ops cannot view R&D projects) ## Important Constraints - **Security**: Enterprise AD/LDAP integration with fine-grained permissions - **Audit Trail**: All changes logged (deadline modifications, file deletions, etc.) - **Data Sensitivity**: Encrypted storage for sensitive technical documents - **Real-time Requirements**: WebSocket-based live updates for concurrent editing - **Database Isolation**: All tables MUST use a designated prefix (e.g., `pjctrl_`) to prevent conflicts during sync/migration with other tables in shared database environments ## External Dependencies - **SSO Auth API**: https://pj-auth-api.vercel.app (Windows AD integration) - **On-premise Storage**: NAS for file attachments - Future: MES/ERP system integration ## Database Connection - **Host**: mysql.theaken.com - **Port**: 33306 - **User**: A060 - **Database**: db_A060 - **Table Prefix**: `pjctrl_` ## System Administrator - **Email**: ymirliu@panjit.com.tw - **Role**: super_admin (不可刪除或降級) ## Core Data Model (ERD) - **User**: ID, Name, Department, Role, Skills, Capacity - **Project**: ID, Title, Owner, Budget, Timeline, Security_Level - **Task**: ID, Project_ID, Assignee, Priority, Status, Original_Estimate, Time_Spent, Blocker_Flag - **Attachment**: ID, Task_ID, Version, File_Path