This guide will help you set up the development environment and start contributing to the AI-powered collaborative video editor.
- Node.js (v18+) and npm/yarn
- Python (3.9+) for AI services
- Docker and Docker Compose
- Git
- PostgreSQL (14+)
- Redis (6+)
- Go (1.19+) if using Go for backend
- FFmpeg (4.4+) for video processing
- CUDA (optional, for GPU acceleration)
git clone https://github.com/shivansh-source/ambitious_project.git
cd ambitious_projectcd backend
npm install
# or if using Go:
# go mod downloadcd frontend
npm installcd ai-services
pip install -r requirements.txt
# or using poetry:
# poetry installCreate .env files in each service directory:
NODE_ENV=development
PORT=3000
DATABASE_URL=postgresql://user:password@localhost:5432/videdit
REDIS_URL=redis://localhost:6379
JWT_SECRET=your-secret-key
AWS_ACCESS_KEY_ID=your-key
AWS_SECRET_ACCESS_KEY=your-secret
S3_BUCKET=videdit-storageVITE_API_URL=http://localhost:3000
VITE_WS_URL=ws://localhost:3000MODEL_PATH=/path/to/models
REDIS_URL=redis://localhost:6379
GPU_ENABLED=false# Start PostgreSQL (via Docker)
docker run -d \
--name videdit-postgres \
-e POSTGRES_PASSWORD=password \
-e POSTGRES_DB=videdit \
-p 5432:5432 \
postgres:14
# Run migrations
cd backend
npm run migrate
# or: go run cmd/migrate/main.go# Start all services
docker-compose up
# Or start specific services
docker-compose up backend frontendTerminal 1 - Backend:
cd backend
npm run devTerminal 2 - Frontend:
cd frontend
npm run devTerminal 3 - AI Services:
cd ai-services
python -m uvicorn main:app --reloadTerminal 4 - Redis:
docker run -p 6379:6379 redis:6- Create a feature branch
git checkout -b feature/your-feature-name- Make your changes
# Edit files
# Add tests
# Update documentation- Test your changes
# Backend tests
cd backend && npm test
# Frontend tests
cd frontend && npm test
# AI services tests
cd ai-services && pytest- Commit and push
git add .
git commit -m "feat: add your feature description"
git push origin feature/your-feature-name- Create pull request
- Go to GitHub
- Create PR from your branch to main
- Request review
- Use ESLint and Prettier
- Run:
npm run lint - Auto-fix:
npm run lint:fix
- Use Black and Flake8
- Run:
black . && flake8
- Use gofmt and golint
- Run:
go fmt ./... && golint ./...
# Backend
npm test
# Frontend
npm test
# AI Services
pytest tests/npm run test:integrationcd tests/e2e
npm run test:e2eambitious_project/
├── backend/ # Backend API services
│ ├── api/ # REST endpoints
│ ├── services/ # Business logic
│ └── models/ # Data models
├── frontend/ # Web application
│ └── src/
│ ├── components/ # React components
│ ├── pages/ # Application pages
│ └── store/ # State management
├── ai-services/ # AI/ML services
│ ├── video-analysis/ # Video analysis
│ ├── effects/ # AI effects
│ └── models/ # ML models
├── versioning/ # Version control engine
├── storage/ # File storage
├── infrastructure/ # Deployment configs
└── docs/ # Documentation
- Create route in
backend/api/routes/ - Add controller in
backend/api/controllers/ - Add service logic in
backend/services/ - Add tests in
tests/backend/ - Update API documentation
- Create component in
frontend/src/components/ - Add styles
- Add to Storybook (if applicable)
- Add tests
- Use in relevant pages
- Create service in
ai-services/ - Train/download ML model
- Create API endpoint
- Add to processing queue
- Integrate with backend
- Add UI controls
# Single test file
npm test -- video.test.js
# With coverage
npm test -- --coverage
# Watch mode
npm test -- --watch# Node.js
node --inspect-brk server.js
# Attach VSCode debugger
# Use launch.json configuration- Use React DevTools
- Use Redux DevTools
- Browser DevTools (Sources tab)
# Python debugger
python -m pdb service.py
# Or use IPython
ipython# Find process using port
lsof -i :3000
# Kill process
kill -9 <PID># Check if PostgreSQL is running
docker ps | grep postgres
# Check logs
docker logs videdit-postgres# Check FFmpeg installation
ffmpeg -version
# Check logs
tail -f logs/video-processing.log- Create an issue on GitHub
- Join our Discord server
- Check existing documentation
- Ask in pull request comments