Skip to content

Latest commit

 

History

History
240 lines (186 loc) · 6.61 KB

File metadata and controls

240 lines (186 loc) · 6.61 KB

Contributing to ModernWPF Enterprise Manager

Thank you for your interest in contributing to ModernWPF Enterprise Manager! This document provides guidelines and information for contributors.

🚀 Getting Started

Prerequisites

  • Visual Studio 2022 or JetBrains Rider
  • .NET 9 SDK
  • Git
  • Basic knowledge of C#, WPF, and MVVM patterns

Setting Up Development Environment

  1. Fork the repository

    git clone https://github.com/your-username/ModernWPF-Enterprise-Manager.git
    cd ModernWPF-Enterprise-Manager
  2. Install dependencies

    dotnet restore
  3. Build the project

    dotnet build
  4. Run tests

    dotnet test

📋 How to Contribute

Reporting Issues

  • Use the GitHub Issues page
  • Search existing issues before creating a new one
  • Use the appropriate issue template
  • Provide detailed information including steps to reproduce

Suggesting Features

  • Use the "Feature Request" issue template
  • Clearly describe the feature and its benefits
  • Include mockups or examples if applicable
  • Discuss the feature in issues before implementing

Code Contributions

Branch Naming Convention

  • feature/feature-name - New features
  • bugfix/issue-number-description - Bug fixes
  • hotfix/critical-issue - Critical fixes
  • improvement/area-description - Code improvements

Pull Request Process

  1. Create a feature branch

    git checkout -b feature/your-feature-name
  2. Make your changes

    • Follow coding standards (see below)
    • Write tests for new functionality
    • Update documentation as needed
  3. Test your changes

    dotnet test
    dotnet build --configuration Release
  4. Commit your changes

    git add .
    git commit -m "feat: add employee search functionality"
  5. Push to your fork

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

    • Use the provided PR template
    • Link related issues
    • Provide clear description of changes
    • Include screenshots for UI changes

📝 Coding Standards

C# Conventions

  • Follow Microsoft C# Coding Conventions
  • Use meaningful names for variables, methods, and classes
  • Add XML documentation for public APIs
  • Use async/await for asynchronous operations
  • Implement proper error handling and logging

MVVM Guidelines

  • Keep ViewModels independent of Views
  • Use data binding instead of direct UI manipulation
  • Implement INotifyPropertyChanged for data binding
  • Use Commands for user interactions
  • Separate business logic into services

XAML Conventions

  • Use consistent indentation (4 spaces)
  • Group related properties together
  • Use meaningful names for controls
  • Leverage styles and templates for consistency
  • Follow Material Design principles

Architecture Guidelines

  • Follow SOLID principles
  • Use dependency injection for loose coupling
  • Implement repository pattern for data access
  • Use proper separation of concerns
  • Write unit tests for business logic

🧪 Testing Guidelines

Unit Tests

  • Write tests for all business logic
  • Use descriptive test method names
  • Follow AAA pattern (Arrange, Act, Assert)
  • Mock external dependencies
  • Aim for 80%+ code coverage

Integration Tests

  • Test complete workflows
  • Test database operations
  • Test service interactions

UI Tests (Future)

  • Test user workflows
  • Test accessibility features
  • Test responsive behavior

📚 Documentation

Code Documentation

  • Document all public APIs
  • Include code examples for complex methods
  • Update README.md for new features
  • Maintain changelog

User Documentation

  • Update user guides for new features
  • Include screenshots and tutorials
  • Maintain help system content

🔄 Review Process

Code Review Checklist

  • Code follows project conventions
  • Tests are included and passing
  • Documentation is updated
  • No breaking changes (or properly documented)
  • Performance impact considered
  • Security implications reviewed
  • Accessibility requirements met

Review Timeline

  • Initial review within 2 business days
  • Follow-up reviews within 1 business day
  • Maintainer approval required for merge

🏷️ Versioning

We use Semantic Versioning:

  • MAJOR version for incompatible API changes
  • MINOR version for backward-compatible functionality
  • PATCH version for backward-compatible bug fixes

📄 License

By contributing, you agree that your contributions will be licensed under the same license as the project (MIT License).

🤝 Code of Conduct

Our Pledge

We pledge to make participation in our project a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

Our Standards

  • Using welcoming and inclusive language
  • Being respectful of differing viewpoints
  • Gracefully accepting constructive criticism
  • Focusing on what is best for the community
  • Showing empathy towards other community members

Enforcement

Project maintainers are responsible for clarifying standards and taking appropriate action in response to unacceptable behavior.

💬 Communication

  • GitHub Issues - Bug reports and feature requests
  • GitHub Discussions - General questions and discussions
  • Email - security@modernwpf.com for security issues

🎯 Contribution Ideas

Good First Issues

  • Documentation improvements
  • UI polish and styling
  • Unit test additions
  • Performance optimizations
  • Accessibility improvements

Advanced Contributions

  • New feature implementations
  • Architecture improvements
  • Performance optimizations
  • Security enhancements
  • Platform integrations

✅ Checklist for Contributors

Before submitting your contribution:

  • I have read and followed the contributing guidelines
  • My code follows the project's coding standards
  • I have tested my changes thoroughly
  • I have updated relevant documentation
  • My commits have clear, descriptive messages
  • I have linked my PR to relevant issues
  • I have considered the impact on existing functionality
  • I have added appropriate tests

🙏 Recognition

Contributors will be recognized in:

  • Project README.md
  • Release notes
  • Contributors section
  • Annual contributor acknowledgments

Thank you for contributing to ModernWPF Enterprise Manager!