Baby Tracker Contribution Guidelines

How to contribute to the Baby Tracker open source project

Contributing to Baby Tracker

Join our community and help make Baby Tracker better for everyone

Ways to Contribute

🐛 Report Bugs

Found an issue? Help us fix it by reporting detailed bug reports.

💡 Suggest Features

Have ideas for new features? Share them with the community.

🔧 Write Code

Contribute new features, fix bugs, or improve existing functionality.

📚 Improve Documentation

Help others by improving docs, guides, and API references.

🔒 Security Review

Help keep Baby Tracker secure by reviewing code and reporting vulnerabilities.

🤝 Community Support

Help other users with questions and share your experience.

Getting Started with Development

1Fork & Clone

Fork the repository and clone your copy:

git clone https://github.com/YOUR-USERNAME/baby-tracker-api.git
cd baby-tracker-api
git remote add upstream https://github.com/theamazingmrb/baby-tracker-api.git

2Set Up Development Environment

Follow the setup instructions above to get your development environment running.

3Create a Feature Branch

# Create a new branch for your work
git checkout -b feature/your-feature-name

# Or for bug fixes:
git checkout -b fix/issue-description

4Make Your Changes

Implement your feature or fix following our coding standards:

  • Follow PEP 8 for Python code style
  • Add type hints to new functions
  • Write docstrings for classes and functions
  • Add tests for new functionality
  • Update documentation if needed

5Test Your Changes

# Run the test suite
python manage.py test

# Run specific tests
python manage.py test tracker.tests.test_your_feature

# Check code style
flake8 .

6Submit Your Pull Request

# Commit your changes
git add .
git commit -m "Add: descriptive commit message"

# Push to your fork
git push origin feature/your-feature-name

Then create a pull request on GitHub with a clear description of your changes.

Code Style & Standards

Python Standards

  • Follow PEP 8 style guide
  • Use type hints for function parameters
  • Write descriptive docstrings
  • Keep functions under 50 lines when possible
  • Use meaningful variable names

Django Conventions

  • Follow Django naming conventions
  • Use Django's built-in features when possible
  • Write tests for all views and models
  • Use proper permission classes
  • Follow REST API best practices

Git Workflow

  • Use descriptive commit messages
  • One feature per pull request
  • Keep commits small and focused
  • Rebase before submitting PR
  • Reference issues in commit messages

Testing Requirements

  • Write tests for new features
  • Maintain high test coverage
  • Include edge case testing
  • Test both success and error paths
  • Use Django's TestCase class

Issue Reporting & Feature Requests

Help us improve Baby Tracker by reporting issues or suggesting new features:

🐛 Bug Reports

Include the following information:

  • Steps to reproduce the issue
  • Expected vs. actual behavior
  • Environment details (OS, Python version)
  • Error messages or logs
  • Screenshots if applicable

💡 Feature Requests

Help us understand your needs:

  • Describe the feature clearly
  • Explain the use case and benefits
  • Provide examples if possible
  • Consider implementation complexity
  • Check if similar features exist

📋 Issue Templates

We provide issue templates to help you include all necessary information. Choose the appropriate template when creating a new issue.