135 lines
3.4 KiB
Markdown
135 lines
3.4 KiB
Markdown
# 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. |