# Contributing

The folowing conventions must be strictly followed in this project.

## Conventions

### Coding

- Naming conventions:
  - For functions use pascal case: `FunctionName`.
  - For scoped variables and function paramters use snake case: `variable_name` and `parameter_name`.
  - For class names use pascal case: `ClassName`.
  - For class variables use snake case: `variable_name`.
  - For macros use upper case snake case: `MACRO_NAME`.
  
- Use tabs for indentation, not spaces.
- All function names should be verbs.

### Services Conventions

- For JSON keys always use pascal case: `KeyName`.
- For url endpoints always use kebab case: `url-endpoint`

### Directory Structure

- Naming conventions:
  - Folder names must be in pascal case: `FolderName`.
  - File names also must be in pascal case: `FileName.extension`.
  - Never use symbols or unicode characters.
  
- All source code must be in the `Source` directory.