Thank you for your interest in contributing to Bambuddy! This document provides guidelines and instructions for contributing.
Please read and follow our Code of Conduct to keep our community welcoming and respectful.
Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/bambuddy.git
cd bambuddy
Add the upstream remote:
git remote add upstream https://github.com/maziggy/bambuddy.git
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Install pre-commit hooks
pip install pre-commit
pre-commit install
# Run backend
DEBUG=true uvicorn backend.app.main:app --reload --host 0.0.0.0 --port 8000
cd frontend
# Install dependencies
npm install
# Run development server
npm run dev
The frontend will be available at http://localhost:5173 and will proxy API requests to the backend.
docker compose up -d --build
Create a branch for your changes:
git checkout -b feature/your-feature-name
# or
git checkout -b fix/your-bug-fix
Make your changes following our code style guidelines
Test your changes thoroughly
Commit your changes with clear, descriptive messages:
git commit -m "Add feature: description of what you added"
feature/ - New featuresfix/ - Bug fixesdocs/ - Documentation changesrefactor/ - Code refactoringtest/ - Test additions or fixesWe use Ruff for linting and formatting:
# Check linting
ruff check .
# Auto-fix issues
ruff check --fix .
# Format code
ruff format .
We use ESLint and Prettier:
cd frontend
# Lint
npm run lint
# Type check
npm run type-check
Pre-commit hooks run automatically on git commit. To run manually:
pre-commit run --all-files
# Run all tests
pytest
# Run with coverage
pytest --cov=backend
# Run specific test file
pytest backend/app/tests/test_example.py
cd frontend
# Run tests
npm test
# Run with coverage
npm run test:coverage
Push your branch to your fork:
git push origin feature/your-feature-name
Create a Pull Request on GitHub:
Wait for review - maintainers will review your PR and may request changes
Use the Bug Report template and include:
Use the Feature Request template and include:
Thank you for contributing to Bambuddy!