# How to Contribute
Outside input is essential to ensuring the Vulnerator is the absolute best application that it can be.  Want to help out?  Here are a few ways you can get your voice heard:
- Create an [issue](https://github.com/Vulnerator/Vulnerator/issues)
- Fork & code
- Review others' work
- Test the features

## Create an Issue
The [Vulnerator Issue Tracker](https://github.com/Vulnerator/Vulnerator/issues) is actually a lot more than that - it is the centralized repository that is used to house any and all change requests.  If you run into a bug or want to see a change made, this is the place to report or request it.

To ensure that you are getting exactly what you want (and that the developers are gettng what they need), here are a few guidelines to follow:
- **Make it Unique:** Whether you are reporting a bug or asking for a new feature, take a few moments to make sure that someone else has not already encountered or thought of the same thing.
  - Dont just search the open items!  Sometimes, a request is closed without any code modification required, or it is deemed to not be in the best interest of the program to make the change - be sure to check out those closed issues, too!
- **Over Explain:** Although something might seem simple to you, small changes in environments can have a huge impact on how an application runs.  When generating an issue, the more detail, the better
- **Provide Artifacts:** With the exception of sensitive data (think vulnerability scans), attachments are a welcome addition to any bug report or feature request.  Send us the application log (the issue template will tell you where to find it), upload a sample report template that shows exactly what you want, or point us in the direction of the guidance you are referencing - more is always better!
- **Follow the Template:** The issue template is there to help you _and_ the developers - please answer everything!

## Fork & Code
If you are code savvy, feel free to fork the repository and generate your own code!  Although you are welcome to keep changes for yourself, if you feel that the community-at-large can benefit, don't be afraid to submit a pull request!  In order to get started:
- Download [Visual Studio](https://www.visualstudio.com/downloads/) 2015 or greater (the free Community Edition works fine)
- Install the XamlStyler extension (to keep the code pretty - don't worry, there is a settings file in the repository that does the work for you)
- Click the "Fork" button at the top of the [Vulnerator page](https://github.com/Vulnerator/Vulnerator)
- Create a "feature branch" detailing what changes you are making (e.g. "incorporate-new-filetype" or "gh##-dev", if you are addressing a specific issue)
- Clone your fork to your local environment and go!

If you do decide to generate a pull request to accompany your change, please make sure that you provide all of the information requested in the pull request template.  Thanks in advance!

## Review Others' Work
Somebody already beat you to the change you wanted to make?  No sweat - feel free to look over their pull request and offer suggestions on how to do something better, faster, or in a way that might benefit the community better.  Extra eyes are always welcome!

## Test the Features
As new features are incorporated, `alpha` and `beta` pre-release versions will be made available - feel free to check these out and provide feedback if you thinks something isn't quite right or could be better.
