Skip to content

Latest commit

 

History

History
301 lines (228 loc) · 7.7 KB

File metadata and controls

301 lines (228 loc) · 7.7 KB

Contributing to BlockChain Mastery 🤝

First off, thank you for considering contributing to BlockChain Mastery! It's people like you that make this learning resource valuable for the entire blockchain community. 🎉

📋 Table of Contents

📜 Code of Conduct

This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers.

🎯 How Can I Contribute?

Reporting Bugs 🐛

Before creating bug reports, please check existing issues to avoid duplicates. When you create a bug report, include as many details as possible:

  • Use a clear and descriptive title
  • Describe the exact steps to reproduce the problem
  • Provide specific examples to demonstrate the steps
  • Describe the behavior you observed and what you expected to see
  • Include screenshots if applicable
  • Note the version/commit where you found the bug

Suggesting Enhancements 💡

Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion:

  • Use a clear and descriptive title
  • Provide a detailed description of the suggested enhancement
  • Explain why this enhancement would be useful to most users
  • List any similar features in other projects if applicable

Content Contributions 📝

We welcome various types of content contributions:

1. Adding New Tutorials

  • Create well-structured markdown files
  • Include practical examples
  • Add code snippets where applicable
  • Ensure accuracy and clarity

2. Improving Existing Content

  • Fix typos and grammatical errors
  • Clarify confusing explanations
  • Update outdated information
  • Add more detailed examples

3. Adding Code Examples

  • Ensure code is well-commented
  • Test code before submitting
  • Include README with setup instructions
  • Follow language-specific best practices

4. Creating Projects

  • Provide complete project setup instructions
  • Include all necessary dependencies
  • Add clear documentation
  • Test the project thoroughly

5. Translating Content

  • Maintain the original structure
  • Ensure accuracy of technical terms
  • Create a new language directory
  • Update the main README with language links

🚀 Getting Started

Prerequisites

  • Git installed on your system
  • Basic knowledge of Markdown
  • GitHub account

Step-by-Step Guide

  1. Fork the Repository

    # Click the 'Fork' button on GitHub
  2. Clone Your Fork

    git clone https://github.com/YOUR_USERNAME/BlockChain-Mastery.git
    cd BlockChain-Mastery
  3. Create a Branch

    git checkout -b feature/your-feature-name
    # or
    git checkout -b fix/your-bug-fix
  4. Make Your Changes

    • Edit files using your preferred editor
    • Add new content or code
    • Ensure all links work correctly
  5. Test Your Changes

    • Verify all links are working
    • Check markdown formatting
    • Test any code examples
    • Preview markdown files
  6. Commit Your Changes

    git add .
    git commit -m "Add: Brief description of your changes"
  7. Push to Your Fork

    git push origin feature/your-feature-name
  8. Create a Pull Request

    • Go to the original repository
    • Click "New Pull Request"
    • Select your branch
    • Fill in the PR template
    • Submit the pull request

📐 Style Guidelines

Markdown Style

  • Use clear and descriptive headings
  • Include a table of contents for long documents
  • Use code blocks with language specification
  • Add alt text to images
  • Use relative links for internal references
  • Keep line length reasonable (80-120 characters)

Code Style

JavaScript/TypeScript

// Use clear variable names
const blockchainNetwork = 'ethereum';

// Add comments for complex logic
function calculateGasFee(gasLimit, gasPrice) {
  // Calculate total gas fee in wei
  return gasLimit * gasPrice;
}

Python

# Follow PEP 8 style guide
def create_transaction(sender, receiver, amount):
    """
    Create a new transaction.
    
    Args:
        sender: Address of the sender
        receiver: Address of the receiver
        amount: Transaction amount
    
    Returns:
        Transaction object
    """
    return Transaction(sender, receiver, amount)

Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// Clear contract documentation
contract SimpleToken {
    // State variables with descriptive names
    mapping(address => uint256) public balances;
    
    // Events for important state changes
    event Transfer(address indexed from, address indexed to, uint256 amount);
}

Documentation Style

  • Use clear, concise language
  • Define technical terms when first used
  • Include practical examples
  • Add diagrams where helpful
  • Reference authoritative sources

💬 Commit Message Guidelines

We follow conventional commits specification:

Format

<type>(<scope>): <subject>

<body>

<footer>

Types

  • feat: A new feature
  • fix: A bug fix
  • docs: Documentation changes
  • style: Formatting changes
  • refactor: Code refactoring
  • test: Adding or updating tests
  • chore: Maintenance tasks

Examples

feat(defi): Add Uniswap V3 tutorial
fix(smart-contracts): Correct ERC-20 example code
docs(readme): Update installation instructions
style(projects): Format code examples consistently

🔄 Pull Request Process

  1. Update Documentation

    • Update README.md if needed
    • Add/update relevant documentation
    • Include examples if applicable
  2. Follow the Checklist

    • Code follows the style guidelines
    • Self-review completed
    • Comments added for complex code
    • Documentation updated
    • No breaking changes (or documented)
    • Links verified and working
  3. PR Description

    • Clearly describe what and why
    • Reference related issues
    • Include screenshots for visual changes
    • List any breaking changes
  4. Review Process

    • Address reviewer feedback
    • Make requested changes
    • Keep the discussion professional
    • Be patient and respectful
  5. After Merge

    • Delete your feature branch
    • Update your fork
    • Celebrate your contribution! 🎉

🌟 Recognition

Contributors will be recognized in the following ways:

  • Listed in the README.md contributors section
  • Mentioned in release notes (for significant contributions)
  • Special badges for multiple contributions
  • Community recognition and thanks

📞 Community

Getting Help

  • GitHub Discussions: Ask questions and discuss ideas
  • Issues: Report bugs or request features
  • Pull Requests: Submit changes for review

Communication Channels

  • Be respectful and inclusive
  • Stay on topic
  • Help others when you can
  • Share your knowledge

🙏 Thank You!

Your contributions, no matter how small, make a big difference. Whether you're:

  • Fixing a typo
  • Adding a tutorial
  • Creating a project
  • Improving documentation
  • Reporting a bug
  • Suggesting an enhancement

You're helping build a better learning resource for the blockchain community! 🚀


Questions? Feel free to open an issue or reach out to the maintainers.

Happy Contributing! 💙Buy Me a Coffee