# VFX Project Management System A comprehensive project management system designed specifically for the animation and VFX industry, similar to ftrack or ShotGrid. ## Features - Role-based access control (Admin, Director, Coordinator, Artist) - Project, episode, and shot management - Asset management with categories - Task assignment and tracking - Review and approval workflows - File upload and version control - Real-time notifications ## Technology Stack ### Backend - FastAPI (Python web framework) - SQLAlchemy (ORM) - SQLite (Database) - JWT authentication - Pydantic (Data validation) ### Frontend - Vue.js 3 with Composition API - TypeScript - Vite (Build tool) - Tailwind CSS - shadcn-vue components - Pinia (State management) ## Development Setup ### Prerequisites - Python 3.9+ - Node.js 18+ - npm or yarn ### Backend Setup 1. Navigate to the backend directory: ```bash cd backend ``` 2. Create a virtual environment: ```bash python -m venv venv ``` 3. Activate the virtual environment: - Windows: `venv\Scripts\activate` - macOS/Linux: `source venv/bin/activate` 4. Install dependencies: ```bash pip install -r requirements.txt ``` 5. Copy environment file: ```bash cp .env.example .env ``` 6. Run the development server: ```bash uvicorn main:app --reload --host 0.0.0.0 --port 8000 ``` The API will be available at http://localhost:8000 ### Frontend Setup 1. Navigate to the frontend directory: ```bash cd frontend ``` 2. Install dependencies: ```bash npm install ``` 3. Copy environment file: ```bash cp .env.example .env ``` 4. Run the development server: ```bash npm run dev ``` The frontend will be available at http://localhost:5173 ## API Documentation Once the backend is running, you can access the interactive API documentation at: - Swagger UI: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc ## Project Structure ``` ├── backend/ # FastAPI backend │ ├── models/ # SQLAlchemy models │ ├── routers/ # API route handlers │ ├── schemas/ # Pydantic schemas │ ├── services/ # Business logic │ ├── main.py # FastAPI application │ ├── database.py # Database configuration │ └── requirements.txt # Python dependencies ├── frontend/ # Vue.js frontend │ ├── src/ │ │ ├── components/ # Vue components │ │ ├── views/ # Page components │ │ ├── stores/ # Pinia stores │ │ ├── services/ # API services │ │ ├── types/ # TypeScript types │ │ └── router/ # Vue Router configuration │ ├── package.json # Node.js dependencies │ └── vite.config.ts # Vite configuration └── README.md # This file ``` ## Development Workflow 1. Start the backend server: `cd backend && uvicorn main:app --reload` 2. Start the frontend server: `cd frontend && npm run dev` 3. Access the application at http://localhost:5173 4. API documentation at http://localhost:8000/docs ## Contributing This project follows the spec-driven development methodology. See the `.kiro/specs/vfx-project-management/` directory for detailed requirements, design, and implementation tasks.