From b052e74fe7e9dd3a9514e3a8a3402f9a1b869f36 Mon Sep 17 00:00:00 2001 From: shatoboar Date: Tue, 21 Jun 2022 14:37:09 +0200 Subject: [PATCH] Code guide for new contributors Description for daemon, CLI and UI --- contribution.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 contribution.md 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