# Contributing to C# Web API

**Author:** RSK World (https://rskworld.in)  
**Founded by:** Molla Samser  
**Designer & Tester:** Rima Khatun  
**Contact:** +91 93305 39277, info@rskworld.com, support@rskworld.in  
**Location:** Nutanhat, Mongolkote, Purba Burdwan, West Bengal, India - 713147  
**Year:** 2026

Thank you for your interest in contributing to the C# Web API project! This guide will help you get started with contributing to our educational resource.

## 🤝 How to Contribute

### Getting Started

1. **Fork the Repository**
   ```bash
   # Fork the repository on GitHub and clone your fork
   git clone https://github.com/your-username/csharp-web-api.git
   cd csharp-web-api
   ```

2. **Set Up Development Environment**
   ```bash
   # Install dependencies
   dotnet restore
   
   # Create and migrate the database
   dotnet ef database update
   
   # Run the application
   dotnet run
   ```

3. **Create a Feature Branch**
   ```bash
   git checkout -b feature/your-feature-name
   ```

### Development Guidelines

#### Code Style
- Follow C# coding conventions
- Use meaningful variable and method names
- Add XML documentation comments for public methods
- Keep methods small and focused

#### Project Structure
- Add new DTOs to `Core/DTOs/`
- Add new entities to `Core/Entities/`
- Create repository interfaces in `Core/Interfaces/`
- Implement repositories in `Infrastructure/Repositories/`
- Add controllers in `Controllers/`

#### Testing
- Write unit tests for new features
- Ensure all tests pass before submitting
- Add integration tests when applicable

### Submitting Changes

1. **Commit Your Changes**
   ```bash
   git add .
   git commit -m "feat: add your feature description"
   ```

2. **Push to Your Fork**
   ```bash
   git push origin feature/your-feature-name
   ```

3. **Create a Pull Request**
   - Provide a clear description of your changes
   - Link any relevant issues
   - Include screenshots if applicable

## 📝 Commit Message Guidelines

Use conventional commit messages:
- `feat:` for new features
- `fix:` for bug fixes
- `docs:` for documentation changes
- `style:` for code formatting changes
- `refactor:` for code refactoring
- `test:` for adding or updating tests
- `chore:` for maintenance tasks

Examples:
```
feat: add user profile image upload
fix: resolve JWT token expiration issue
docs: update API documentation
```

## 🐛 Bug Reports

When reporting bugs, please include:
- Clear description of the issue
- Steps to reproduce
- Expected vs actual behavior
- Environment details (.NET version, OS, etc.)
- Error messages and stack traces

## 💡 Feature Requests

For feature requests:
- Describe the feature and its use case
- Explain why it would be valuable
- Suggest implementation approach if possible

## 📋 Code Review Process

1. All contributions require review
2. Maintain code quality standards
3. Ensure tests pass
4. Update documentation as needed
5. Follow project conventions

## 🚀 Release Process

- Maintain backward compatibility
- Update CHANGELOG.md
- Version follows semantic versioning
- Tag releases appropriately

## 📞 Support

For questions about contributing:
- **Email:** help@rskworld.in
- **Phone:** +91 93305 39277
- **Website:** https://rskworld.in

---

**© 2026 RSK World. All rights reserved.**  
*Content used for educational purposes only.*
