Skip to the content.

Contribution Guide

Welcome to Planwise!

Thank you for your interest in contributing to Planwise. This guide will help you understand our development process and how you can contribute to the project.

Code of Conduct

We expect all contributors to follow our Code of Conduct. Please be respectful and constructive in all communications and interactions.

Getting Started

  1. Fork the Repository: Start by forking the main repository on GitHub
  2. Clone Your Fork: git clone https://github.com/your-username/planwise.git
  3. Add Upstream Remote: git remote add upstream https://github.com/original-owner/planwise.git
  4. Create a Branch: git checkout -b feature/your-feature-name

Development Workflow

Issues

Branching Strategy

We follow a feature branch workflow:

Pull Requests

  1. Keep PRs Focused: Each PR should address a single issue or feature
  2. Write Descriptive Titles: Clearly indicate what the PR does
  3. Link Related Issues: Use GitHub keywords (e.g., “Fixes #123”)
  4. Provide Details: Explain what changes you made and why
  5. Include Tests: Add tests for new features or bug fixes

PR Template

## Description
Brief description of the changes

## Related Issue
Fixes #123

## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Documentation update
- [ ] Code refactoring
- [ ] Other (please describe):

## Testing
Describe the tests you ran to verify your changes

## Screenshots (if applicable)

## Additional Notes

Code Review Process

  1. All PRs require at least one review before merging
  2. Address all review comments before requesting re-review
  3. Maintainers will merge approved PRs

Coding Standards

Python Guidelines

Documentation

Testing

Setting Up Your Development Environment

See our Environment Setup Guide for detailed instructions.

Making Changes to Models

When working on recommendation models:

  1. Document model architecture and parameters
  2. Save training metrics and evaluation results
  3. Version model artifacts clearly
  4. Add validation tests for model performance

Database Changes

When making database schema changes:

  1. Create an Alembic migration
  2. Test migrations both up and down
  3. Document changes in the migration file

Frontend Development

For Streamlit app changes:

  1. Keep UI components consistent
  2. Use session state for managing user state
  3. Test on different screen sizes
  4. Document new UI features with screenshots

Release Process

  1. Version Bump: Update version numbers according to Semantic Versioning
  2. Changelog: Update the CHANGELOG.md file
  3. Release Branch: Create a release branch from develop
  4. Testing: Perform final testing on release branch
  5. Merge: Merge release branch to main and develop
  6. Tag: Create a Git tag for the new version
  7. Release: Create a GitHub release with release notes

Where to Get Help

Thank you for contributing to Planwise! Your help makes this project better for everyone.