diff --git a/contribution.md b/contribution.md new file mode 100644 index 000000000..5a182b97e --- /dev/null +++ b/contribution.md @@ -0,0 +1,49 @@ +# Contribution + +### Code Structure + +The codebase is structured in 3 big components: +* Client +* Server +* Signal +* Dashboard (separate [repository](https://github.com/netbirdio/dashboard)) + +--- + +### CLIENT +The Client consists of three different components. + +##### Daemon + +``` +client/server # daemon server that runs in the background +client/proto # grpc daemon server listening to either the CLI or UI for requests +management/client # grpc client that connects to the management server +``` +The Daemon runs in the background, and keeps the connection running. + +##### CLI +We use [Cobra](https://github.com/spf13/cobra) as our CLI framework +``` +client/cmd # All CLI commands are defined and implemented here +client/cmd/root.go # All commands are registered in root.go +``` + +##### UI-App +We use [systray](https://github.com/getlantern/systray) and [fyne](https://github.com/fyne-io/fyne) to write a UI application for the Systemtray. +``` +client/ui # +``` + + +--- +### MANAGEMENT + + + +--- +### SIGNAL + + +--- +### DASHBOARD