Init Repo
This commit is contained in:
+112
@@ -0,0 +1,112 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Development setup script for VFX Project Management System
|
||||
"""
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
def run_command(command, cwd=None):
|
||||
"""Run a command and return the result"""
|
||||
try:
|
||||
result = subprocess.run(command, shell=True, cwd=cwd, check=True, capture_output=True, text=True)
|
||||
return True, result.stdout
|
||||
except subprocess.CalledProcessError as e:
|
||||
return False, e.stderr
|
||||
|
||||
def setup_backend():
|
||||
"""Set up the backend environment"""
|
||||
print("Setting up backend...")
|
||||
backend_dir = Path("backend")
|
||||
|
||||
# Check if virtual environment exists
|
||||
venv_dir = backend_dir / "venv"
|
||||
if not venv_dir.exists():
|
||||
print("Creating virtual environment...")
|
||||
success, output = run_command("python -m venv venv", cwd=backend_dir)
|
||||
if not success:
|
||||
print(f"Failed to create virtual environment: {output}")
|
||||
return False
|
||||
|
||||
# Install dependencies
|
||||
print("Installing backend dependencies...")
|
||||
if os.name == 'nt': # Windows
|
||||
pip_cmd = "venv\\Scripts\\pip install -r requirements.txt"
|
||||
else: # Unix-like
|
||||
pip_cmd = "venv/bin/pip install -r requirements.txt"
|
||||
|
||||
success, output = run_command(pip_cmd, cwd=backend_dir)
|
||||
if not success:
|
||||
print(f"Failed to install backend dependencies: {output}")
|
||||
return False
|
||||
|
||||
# Copy .env file if it doesn't exist
|
||||
env_file = backend_dir / ".env"
|
||||
env_example = backend_dir / ".env.example"
|
||||
if not env_file.exists() and env_example.exists():
|
||||
print("Creating .env file from example...")
|
||||
env_file.write_text(env_example.read_text())
|
||||
|
||||
print("Backend setup complete!")
|
||||
return True
|
||||
|
||||
def setup_frontend():
|
||||
"""Set up the frontend environment"""
|
||||
print("Setting up frontend...")
|
||||
frontend_dir = Path("frontend")
|
||||
|
||||
# Install dependencies
|
||||
print("Installing frontend dependencies...")
|
||||
success, output = run_command("npm install", cwd=frontend_dir)
|
||||
if not success:
|
||||
print(f"Failed to install frontend dependencies: {output}")
|
||||
return False
|
||||
|
||||
# Copy .env file if it doesn't exist
|
||||
env_file = frontend_dir / ".env"
|
||||
env_example = frontend_dir / ".env.example"
|
||||
if not env_file.exists() and env_example.exists():
|
||||
print("Creating .env file from example...")
|
||||
env_file.write_text(env_example.read_text())
|
||||
|
||||
print("Frontend setup complete!")
|
||||
return True
|
||||
|
||||
def main():
|
||||
"""Main setup function"""
|
||||
print("VFX Project Management System - Development Setup")
|
||||
print("=" * 50)
|
||||
|
||||
# Check if we're in the right directory
|
||||
if not Path("backend").exists() or not Path("frontend").exists():
|
||||
print("Error: Please run this script from the project root directory")
|
||||
sys.exit(1)
|
||||
|
||||
# Setup backend
|
||||
if not setup_backend():
|
||||
print("Backend setup failed!")
|
||||
sys.exit(1)
|
||||
|
||||
# Setup frontend
|
||||
if not setup_frontend():
|
||||
print("Frontend setup failed!")
|
||||
sys.exit(1)
|
||||
|
||||
print("\n" + "=" * 50)
|
||||
print("Setup complete! To start development:")
|
||||
print("\n1. Start the backend:")
|
||||
print(" cd backend")
|
||||
if os.name == 'nt':
|
||||
print(" venv\\Scripts\\activate")
|
||||
else:
|
||||
print(" source venv/bin/activate")
|
||||
print(" uvicorn main:app --reload")
|
||||
print("\n2. Start the frontend (in a new terminal):")
|
||||
print(" cd frontend")
|
||||
print(" npm run dev")
|
||||
print("\n3. Access the application at http://localhost:5173")
|
||||
print(" API documentation at http://localhost:8000/docs")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user