Matches the existing vendor/easy-asterisk convention (used by services/asterisk.sh) instead of two one-off top-level directories that cluttered the repo root and didn't look like anything else next to setup.sh, lib/, services/, extras/. Only the two services' own SRC_DIR path resolution and header comments needed updating — nothing else in the repo referenced the old ./ai-stack / ./paintplus paths. Also documents vendor/ in README.md's Layout section.
1.7 KiB
1.7 KiB
Contributing to AI Photo Edit
Thank you for your interest in contributing to AI Photo Edit!
Development Setup
- Fork the repository
- Clone your fork
- Create a feature branch
- Make your changes
- Test your changes
- Submit a pull request
Development Environment
Using Docker (Recommended)
# Start dev environment with hot-reload
docker-compose -f docker-compose.dev.yml up
Local Development
Backend
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reload
Frontend
cd frontend
npm install
npm run dev
Code Style
Python (Backend)
- Follow PEP 8
- Use type hints where appropriate
- Add docstrings to functions and classes
JavaScript/React (Frontend)
- Use functional components with hooks
- Follow React best practices
- Use meaningful variable names
Pull Request Process
- Update the README.md with details of changes if needed
- Ensure all tests pass
- Update documentation as needed
- Get approval from maintainers
- Squash commits if requested
Reporting Bugs
When reporting bugs, please include:
- Description of the issue
- Steps to reproduce
- Expected behavior
- Actual behavior
- Screenshots if applicable
- Environment details (OS, Docker version, etc.)
Feature Requests
We welcome feature requests! Please:
- Check if the feature already exists
- Explain the use case
- Describe the expected behavior
- Consider if it aligns with project goals
Code of Conduct
- Be respectful and inclusive
- Welcome newcomers
- Focus on constructive feedback
- Respect differing opinions
Thank you for contributing!