# 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.