How to Contribute

Ways to Contribute

Type What You Can Do

Code

Bug fixes, new features, performance improvements

Documentation

User guides, tutorials, API docs, translations

Testing

Bug reproduction, beta testing, security testing

Community

Forum support, mentoring, knowledge sharing

Getting Started

Prerequisites:

  • GitHub account

  • Basic Git knowledge

  • Development environment setup

  • Understanding of project structure

First Steps:

  1. Fork the repository

  2. Join community forums

  3. Read existing documentation

  4. Look for "good first issue" labels

  5. Introduce yourself to the community

Development Setup

Required Tools:

  • Git

  • Python 3.8+

  • Node.js (for frontend)

  • Docker (for local testing)

  • Code editor (VS Code recommended)

Setup Commands:

# Clone your fork
git clone https://github.com/YOUR_USERNAME/Oju.git
cd Oju

# Install dependencies
pip install -r requirements.txt
npm install

# Setup development environment
cp .env.example .env
python manage.py migrate
python manage.py runserver

Contribution Process

Standard Workflow:

  1. Pick an Issue - Choose from GitHub issues or propose new feature

  2. Create Branch - git checkout -b feature/your-feature-name

  3. Make Changes - Follow coding standards

  4. Test - Run tests and verify functionality

  5. Commit - Use clear commit messages

  6. Pull Request - Submit for review

  7. Address Feedback - Make requested changes

  8. Merge - Approved changes get merged

Commit Message Format:

type: brief description

Longer explanation if needed

Fixes #123

Types: feat, fix, docs, test, refactor, style

Code Standards

Python Guidelines:

  • Follow PEP 8

  • Use type hints

  • Write docstrings for functions

  • Add unit tests for new code

  • Maximum line length: 88 characters

Frontend Guidelines:

  • Use ESLint configuration

  • Follow component naming conventions

  • Write accessible HTML

  • Test on multiple browsers

Security Requirements:

  • Validate all user inputs

  • Use parameterized queries

  • Implement proper authentication

  • Follow OWASP guidelines

  • No hardcoded secrets

Pull Request Checklist

Before Submitting:

  • Code follows style guidelines

  • Tests pass locally

  • Documentation updated

  • No merge conflicts

  • Security considerations addressed

  • Performance impact considered

PR Description Template:

## Description
Brief summary of changes

## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Documentation update
- [ ] Performance improvement

## Testing
- [ ] Unit tests added/updated
- [ ] Manual testing completed
- [ ] No breaking changes

## Screenshots (if UI changes)
[Add screenshots here]

Communication Guidelines

Community Standards:

  • Be respectful and professional

  • Focus on technical merit

  • Provide constructive feedback

  • Help newcomers

  • Keep discussions on-topic

Getting Help:

  • GitHub Discussions for questions

  • Discord/Slack for real-time chat

  • Email for security issues

  • Documentation for basic info

Common Tasks

Bug Fixes:

  1. Reproduce the issue

  2. Write a test that fails

  3. Fix the code

  4. Verify test passes

  5. Update documentation if needed

New Features:

  1. Discuss in GitHub issue first

  2. Design the solution

  3. Implement with tests

  4. Update documentation

  5. Get community feedback

Documentation:

  1. Identify gaps or errors

  2. Write clear, concise content

  3. Include code examples

  4. Test instructions

  5. Request review

Recognition

Contributors Get:

  • Credit in release notes

  • Contributor badge on GitHub

  • Access to beta features

  • Invitation to contributor events

  • Mentorship opportunities