# Elements of a Community (of Practice)
[TOC]
**Definition**: a self-organised group group of people who "share a concern or a passion for something they do and learn how to do it better as they interact regularly" from [wikipedia](https://en.wikipedia.org/wiki/Community_of_practice).
## Overview
Use [mermaid charts](https://mermaid-js.github.io/mermaid/#/flowchart) to generate a top level graphical overview of a community but as the diagram rapidly becomes very crowded split at different levels.
```mermaid
graph TD
A[Community] -->A11[People] & A12[Infrastructure] & A13[Revenue];
A11 --> B11[Committee] & B12[Constitution];
A12 --> B21[Room] & B22[Web] & B23[Mailing list] & B24[(Repo)];
A13 --> B31[Sponsorship] & B32[Membership Fee] & B33[Donations] & B34[Cake];
```
To have a Community we need:
* People
* Infrastructure
* Revenue
## People
```mermaid
graph TD
A[People] --> A1[Committee] & A2[Constitution];
```
## Infrastructure
Infrastructure helps the group to gather physically or virtually. It also helps to provide a communications channel internally within the group and also externally to try and recruit new members.
```mermaid
graph TD
A12[Infrastructure] --> B21[Room] & B22[Web] & B23[Mailing list] & B24[(Repo)];
B24 --> C41[Licence];
```
## Revenue
Revenues go to pay for expenses mainly in the provision and maintenance of infrastructure and other sundry expenses (invited speakers).
```mermaid
graph TD
A13[Revenue] --> B31[Sponsorship] & B32[Membership Fee] & B33[Donations] & B34[Grants] & B35[Charging Model];
```
* Sponsorship: get a company or organisation to provide some funding.
* Membership Fee: ask members to contribute towards the cost.
* Donations: ask people that benefit in some way to pay, e.g. events, a donations button.
* Grants: you may get academic grants from a funding body or organisation to contribute towards the cost.
* Charging Model: you can ask people to pay for support, for use of a product, buy credits towards use of the product, etc
Hello