Skip to main content

Contributing

Guidelines for contributing to FiestaBoard.

Getting Started

  1. Fork the repository on GitHub
  2. Clone your fork:
    git clone https://github.com/your-username/FiestaBoard.git
    cd FiestaBoard
  3. 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.md and docs/SETUP.md
  • Follow the plugin template structure

See the Plugin Development Guide for details.

Submitting a Pull Request

  1. Commit your changes with clear commit messages
  2. Push to your fork
  3. Open a Pull Request against the main branch
  4. Describe your changes in the PR description
  5. 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