Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Get started docs - markdown file #84

Open
wants to merge 16 commits into
base: main
Choose a base branch
from
210 changes: 210 additions & 0 deletions docs/development/get-started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,210 @@
# GETTING STARTED @ZURICHAT
Hello welcome, this docs would be helping you in getting started as a new member or contributor of ZURICHAT.

## Firstly, what is ZuriChat?

ZuriChat is a workspace project intended for companies and organizationations and many more for a smooth running and perfect administration experience.

## ZuriChat Development Structure(Plugins)

ZuriChat is a large project with lots of functionlalities and for a fast and efficient building and development, the project was divided into different part(plugin) based on a functionality.

### What is a ZuriChat Plugin.
A plugin is a segment or section of the ZuriChat that tends to serve a specific function to the project at large. There are various plugins in Zurichat, and each plugin has it's technologies used in developing and building, and also have specific linting tools and docs for starting and getting it running locally for easy contribution.

## ZuriChat Plugins

- ### [Zuri Main](https://github.com/zurichat/zc_main)
#### Stacks:
- ReactJS
- NodeJS
#### Linting Tools:
- ESLint
- Prettier
- Husky (Pre-Commit)
<!-- **Docs** -->

- ### [Zuri Desktop](https://github.com/zurichat/zc_desktop_flutter)
#### Stacks:
- Flutter
#### Linting Tools:
<!-- **Docs** -->

- ### [Zuri Mobile]
- [Android](https://github.com/zurichat/zc_app)
- [IOS](https://github.com/zurichat/zc_app_iOS)
#### Stacks:
- Flutter (Dart)
- Swift
#### Linting Tools:
<!-- **Docs** -->

- ### [Zuri Api (Architecture, Core)](https://github.com/zurichat/zc_core)
#### Stacks:
- GoLANG
#### Linting Tools:
<!-- **Docs** -->

- ### Direct Messaging and Channels Plugin
- [Direct Messaging](https://github.com/zurichat/zc_plugin_dm)
- [Channels](https://github.com/zurichat/zc_plugin_channels)
- [ZC Messaging](https://github.com/zurichat/zc_messaging)
#### Stacks:
- Python(Django)
- ReactJS
#### Linting Tools:
- ESLint
- Pylint
- Flake
- Black
- Isort
<!-- **Docs** -->

- ### [Chess Plugin](https://github.com/zurichat/zc_plugin_chessboard)
#### Stacks:
- ReactJS
- NodeJS
#### Linting Tools:
- ESLint(Backend)
- ESLint(Frontend)
- Husky (Pre-commit)
<!-- **Docs** -->

- ### [Company Files Plugin](https://github.com/zurichat/zc_plugin_company_files)
- **Stacks:**
- ReactJS
- NodeJS
- **Linting Tools:**
- Eslint
- Husky
<!-- **Docs** -->

- ### [Company Goals Plugin](https://github.com/zurichat/zc_plugin_company_goals)
- **Stacks:**
- ReactJS
- NodeJS
- **Linting Tools:**
- Eslint(Backend)
- Prettier (Frontend)
- Husky (Pre-commit)
<!-- **Docs** -->

- ### [Noticeboard Plugin](https://github.com/zurichat/zc_plugin_noticeboard)
- **Stacks:**
- ReactJS
- Python(Django)
- **Linting Tools:**
- ESLint (Frontend)
- Pylint (Backend )
- Husky (Pre-Commit)
<!-- **Docs** -->

- ### [Music (YouTube music video) Plugin](https://github.com/zurichat/zc_plugin_youtube_music_video)
- **Stacks:**
- ReactJS
- Python(Django)
- **Linting Tools:**
- Eslint (Frontend)
- pylint (pre-commit)
- flake8 and black (Backend)
<!-- **Docs** -->

- ### [Company Sales Plugin](https://github.com/zurichat/zc_plugin_company_sales_prospect)
- **Stacks:**
- ReactJS
- Python(Django)
- **Linting Tools:**
- Eslint (Frontend)
- Pylint (Pre-commit)
- Flake8 and Black (Backend)
<!-- **Docs** -->

- ### [Todo Plugin](https://github.com/zurichat/zc_plugin_todo)
- **Stacks:**
- VueJS
- PHP(Laravel)
- **Linting Tools:**
- PHP code Smiter and PHP Stan (Backend)
- Eslint Airbnb (Frontend)
- Husky (Pre-commit)
<!-- **Docs** -->

- ### [Deadlines Plugin](https://github.com/zurichat/zc_plugin_deadlines)
- **Stacks:**
- ReactJS
- NodeJS
- **Linting Tools:**
- Eslint (Frontend)
- Pylint (Pre-commit)
- Flake8 and Black (Backend)
<!-- **Docs** -->

- ### [Duty Shift Plugin](https://github.com/zurichat/zc_plugin_duty_shift)
- **Stacks:**
- Python(Django)
- ReactJS
- **Linting Tools:**
<!-- **Docs** -->

- ### [Expenses Plugin](https://github.com/zurichat/zc_plugin_expenses)
- **Stacks:**
- PHP(Laravel)
- **Linting Tools:**
<!-- **Docs** -->

- ### [Tools Plugin](https://github.com/zurichat/zc_plugin_tools)
- **Stacks:**
- ReactJS
- NodeJS
- **Linting Tools:**
<!-- **Docs** -->

- ### [Whiteboard Plugin](https://github.com/zurichat/zc_plugin_whiteboard)
- **Stacks:**
- Konva
- React-Konva
- **Linting Tools:**
- ESLint (Backend)
- ESLint (Frontend)
- Husky (Pre-Commit)
<!-- **Docs** -->

- ### [Contribution Tracker Plugin](https://github.com/zurichat/zc_plugin_contribution-tracker)
- **Stacks:**
- VueJS
- NodeJS
- **Linting Tools:**
<!-- **Docs** -->



## Do you want to contribute?
If you love the vision of this project and would love to contribute to the growth and development, you have to join the ZuriChat workspace and pick a plugin of your choice.

## General Contribution and Pull Request Guideline
- PR should clearly state its purpose in the description
- PR should only touch files within its scope (don’t correct comment typos or change variable names in another file). Fix only what is needed to make things work.
- Lint your files before making PRs as much as possible
- Always pull and merge into the latest upstream dev branch before making PRs to avoid merge conflicts.
- There will be two approvals before each PR is merged. In order to distribute the workload and avoid delays, each team is encouraged to have at least 2 PR approvers, and 2 PR mergers. The approvers don’t have to have merge access, but must approve before the merger can merge.
PR mergers can also approve.
- PRs introducing new functionality should come with test coverage.
- Your PRs must follow the respective guidelines


## How do I get into the Zuri WorkSpace?
The ZuriChat WorkSpace is where all contributors meet, join specific plugin channel, get necessary informations, stay updated and many more.
To be a contributor of ZuriChat, it is very important, if not neccessary to join the ZuriChat WorkSpace. To join the workspace, kindly click this [link](https://join.slack.com/t/zurichat/shared_invite/zt-xsr2n0ci-iO~N8lqlZKnc3wPLRUkr0w)

## What do I tend to gain as a contributor
There are various things to gain here at ZuriChat, example;
- Experience
- Zuri Token - This a crypto coin to be distributed to contributors based on contributions.
- Communication Skills
and many more.