Contributing
Guidelines for contributing to FiestaBoard.
Getting Started
- Fork the repository on GitHub
- Clone your fork:
git clone https://github.com/your-username/FiestaBoard.git
cd FiestaBoard - Create a branch for your changes:
git checkout -b feature/my-new-feature
Development Environment
# Set up your environment
cp env.example .env
# Edit .env with your API keys
# Start the development environment with hot reload
docker-compose -f docker-compose.dev.yml up --build
The development environment provides:
- Hot reload for Python backend changes
- Hot reload for Next.js frontend changes
- Web UI at
http://localhost:3000 - API at
http://localhost:8000
Making Changes
Code Standards
- Python: Follow PEP 8 and project pylint configuration
- TypeScript/JavaScript: Follow ESLint rules
- Docker-first: All features should work in Docker
- No secrets: Never commit API keys or sensitive data
Running Tests
# Python tests
pytest tests/
# Web UI tests
npm run test:web
# Lint web code
npm run lint:web
Plugin Development
When creating a new plugin:
- Minimum 80% test coverage is required
- Include
README.mdanddocs/SETUP.md - Follow the plugin template structure
See the Plugin Development Guide for details.
Submitting a Pull Request
- Commit your changes with clear commit messages
- Push to your fork
- Open a Pull Request against the
mainbranch - Describe your changes in the PR description
- Squash commits — PRs should be squashed into a single commit when merging
PR Checklist
- Code follows project style guidelines
- Tests pass locally
- Documentation is updated if needed
- No secrets or API keys are committed
- Changes work in Docker
Reporting Issues
- Use GitHub Issues to report bugs
- Include steps to reproduce the issue
- Include relevant log output
- Specify your environment (OS, Docker version, etc.)
Security
For security vulnerabilities, please report them responsibly. See the SECURITY.md file for details.
Next Steps
- Local Development — Development setup details
- Plugin Development Guide — Creating plugins
- Testing Guide — Running and writing tests