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

Zuri core get started document #82

Open
wants to merge 23 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
bb1c502
Created markdown file for technical specification of native and flutt…
Tmakinde Oct 26, 2021
e7cc435
made changes to markdown file of native and flutter android
Tmakinde Oct 26, 2021
60023ca
[development]: company files getting started documentation, initial c…
misspee007 Oct 27, 2021
60a7e3a
Merge pull request #65 from zurichat/main
pidoxy Oct 27, 2021
2cd247b
[Development]: Company Files Getting Started docs updated
misspee007 Oct 27, 2021
65484b1
finished writing the doc. remains the info of the team leads.
Emekarr Oct 27, 2021
1b9b532
Merge pull request #66 from misspee007/files-getting-started
pidoxy Oct 28, 2021
6205a04
Merge branch 'develop' of https://github.com/Emekarr/Documentation
Emekarr Oct 28, 2021
dbb7a15
Setup development get started documentation for company goals plugin
abiona01 Oct 28, 2021
2a0d6d7
getting started doc for sales plugin
jamido1 Oct 29, 2021
b7289c5
Setup development get started documentation for chess plugin
JoshuaMonyei Oct 30, 2021
a82eac5
Set up development get started documentation for dms plugin
Quemmies3 Oct 30, 2021
e8ae633
Merge pull request #67 from Emekarr/develop
pidoxy Oct 30, 2021
105a728
Merge pull request #69 from abiona01/Get-started-docs-Plugin-goals
pidoxy Oct 30, 2021
5ad986d
Merge pull request #71 from jamido1/develop
pidoxy Oct 30, 2021
60fe62d
Merge pull request #75 from JoshuaMonyei/develop
pidoxy Oct 30, 2021
6a1fada
Merge pull request #76 from Quemmies3/develop
pidoxy Oct 30, 2021
3219b44
created get started document for zuri core
Boluwatt Nov 1, 2021
1eb1889
Merge pull request #63 from Tmakinde/main
mikenrowland Nov 1, 2021
bef5863
Deleted Flutter readme.md
Boluwatt Nov 2, 2021
79a010a
Deleted todo readme.md
Boluwatt Nov 2, 2021
79a4a73
Deleted zurimain readme.md
Boluwatt Nov 2, 2021
3dc1e85
Merge branch 'develop' of https://github.com/Boluwatt/Documentation i…
Boluwatt Nov 2, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions docs/Plugins/flutterandroid.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
slug: /Flutter-Android
sidebar_position: 1
title: Flutter-Android App
---


# Technical Specifications for Zurichat Android Flutter App

This contains the technical specifications for zuri android native app
### Platform
The ZuriChat Mobile app was built with Flutter, a trending technology owned by Google. Flutter is a powerful UI toolkit powered by Dart for building beautiful, natively compiled applications for mobile, web, desktop, and embedded devices from a single codebase. Codebase architecture and state management is Stacked (with MVVM)

### Supporting Versions of the OS
- Android versions 4.4 Kitkat through 12
- IOS *(not tested yet)


### Information on the Servers
- Server and Online DB: Auth: Zuri Core, DMs and Channels: Zuri Main
- In-app Services: taken care by the - architecture and state management tool.
- Local Database: SharedPreferences and Hive* or SQflite*

### API/Services Doc
- Zuri core: https://docs.zuri.chat/
- DMs: https://docs.zuri.chat/dm_chat
- Channels: https://docs.zuri.chat/channels

### Credentials/Developers Accounts for Google Playstore
- Playstore Account Link: https://play.google.com/store/apps/developer?id=The+Zuri+Team
- Apple Store Account Link: None Yet
26 changes: 26 additions & 0 deletions docs/Plugins/nativeandroid.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
slug: /Native-Android
sidebar_position: 1
title: Native-Android App
---


# Technical Specifications for Zurichat Android Native App

This contain the technical specifications for zuri android native app
### Platform
Android Operating System

### Supporting Versions of the OS
minSDK - API level 21 (lollipop)(>API21)

### Information on the Servers
Zuri core4 Backend
minSDK - API level 21 (lollipop)(>API21)
### API/Services Doc
- Zuri core: https://docs.zuri.chat/
- DMs: https://docs.zuri.chat/dm_chat
- Channels: https://docs.zuri.chat/channels

### Credentials/Developers Accounts for Google Playstore
https://play.google.com/store/apps/developer?id=The+Zuri+team
151 changes: 151 additions & 0 deletions docs/development/chess/get_started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
---
slug: /chess
sidebar_position: 2
title: Getting started
---

## Chess Plugin Overview
Zuri chesss plugin is a web based recreational and competitive board game that can be played between two players, that can easily be installed and used as part of the Zuri chat main application. Chess plugin is a monolith app with the Backend(Nodejs) and Frontend(JavaScript- React.js). The repo is divided into two major folders; Frontend - which utilizes Single SPA structure, and the Backend.

- Live Link : [https://chess.zuri.chat](https://chess.zuri.chat)
- GitHub repo : [https://github.com/zurichat/zc_plugin_chessboard](https://github.com/zurichat/zc_plugin_chessboard)

### Cloning the Repository

1. Fork this repository https://github.com/zurichat/zc_plugin_chessboard
2. Open a terminal and clone the repository: `git clone https://github.com/zurichat/zc_plugin_chessboard.git`

### Installing Dependencies

1. Ensure nodejs and git are installed in your machine `node -v && git --version`
If they are not installed, you can follow the guide [here](#setting-up-for-windowslinuxmac) to install.
2. Change directory into the new clone. `cd zc_plugin_chessboard`
3. Switch to the backend directory and install all dependencies using
`cd backend`
`yarn install` or `npm install`
4. Switch to the frontend directory and install all packages using
`cd frontend`
`yarn install` or `npm install`

### How to Run the App Locally

1. Now to run both servers in development mode
- Run backend server

```
cd server
npm run dev or yarn run dev
```

Open http://127.0.0.1:5050/
Open another terminal in vscode and run

```
cd client
npm start or yarn start
```
Open http://127.0.0.1:3000/


## Local Development

### Linting

Linting is the automated checking of a source code for programmatic and stylistic errors. This is done by using a lint tool (otherwise known as linter). A lint tool is a basic static code analyzer. Linting is important to reduce errors and improve the overall quality of our code.

For the backend part of this project, the Google code style is used with some minor modifications. A code style is set of conventions (sometimes arbitrary) about how to write code for that project. It is much easier to understand a large codebase when all the code in it is in a consistent style.

### Commit Guide

This plugin uses Commitlint to ensure commits messages follow a particular convention using the conventional config. If you're totally new to this convention, that's totally fine.

> _Commit CheatSheet_

| Type | | Description |
| -------- | ------------------------ | ----------------------------------------------------------------------------------------------------------- |
| feat | Features | A new feature |
| fix | Bug Fixes | A bug fix |
| docs | Documentation | Documentation only changes |
| style | Styles | Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) |
| refactor | Code Refactoring | A code change that neither fixes a bug nor adds a feature |
| perf | Performance Improvements | A code change that improves performance |
| test | Tests | Adding missing tests or correcting existing tests |
| build | Builds | Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm) |
| ci | Continuous Integrations | Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs) |
| chore | Chores | Other changes that don't modify backend, frontend or test files |
| revert | Reverts | Reverts a previous commit |

> _Sample Commit Messages_

- `chore: Updated README file` := `chore` is used because the commit didn't make any changes to the backend, frontend or test folders in any way.
- `feat: Added plugin info endpoints` := `feat` is used here because the feature was non-existent before the commit.
- `bug: Fixed plugin install endpoints` := `bug` is used here because a fix was done to an already existent feature.

### Contribution Guide

1. Open your cloned repo in your prefered code editor.
2. Open your terminal & set the upstream branch: `git remote add upstream https://github.com/zurichat/zc_plugin_chessboard.git`
3. Pull upstream `git pull upstream dev`
4. Create a new branch for the ticket you're working on e.g.: `git checkout -b <new branch name>`
5. After making changes, run `git add .`
6. Commit your changes with a descriptive commit message : `git commit -m "your commit message"`.
7. To make sure there are no conflicts : `git pull upstream dev`
8. Push changes to your new branch : `git push origin <new branch name>`
9. Create a pull request to the `dev` branch.

### PR Guide

1. Pull request (PR) should clearly state clearly state its purpose/task in the description.
2. PR should only touch files within its scope. **Do not** correct comment typos or change variable names in another file. Fix only what is needed to make your assigned ticket work.
3. Lint your files before making PRs.
4. Always pull and merge into latest upstream dev branch before making PRs to avoid merge conflicts.
5. Your PR must be approved by 2 PR approvers/mergers before it is merged.

### Setting Up for Windows/Linux/Mac

- [How to install Git on Windows, Linux and macOS](https://www.digitalocean.com/community/tutorials/how-to-contribute-to-open-source-getting-started-with-git)

#### Windows

- [How to install node.js](https://phoenixnap.com/kb/install-node-js-npm-on-windows)
- Install yarn using `npm install --global yarn`
- Check installed yarn version `yarn --version`

#### macOS

- [How to install node.js on macOS](https://www.webucator.com/article/how-to-install-nodejs-on-a-mac/)
- Install Yarn using `npm install --global yarn` or `brew install yarn` or `curl -o- -L https://yarnpkg.com/install.sh | bash`
- Check installed yarn version `yarn --version`

#### Linux

- [How to install node.js on Linux PC](https://linuxconfig.org/how-to-install-node-js-on-linux)
- Install yarn using `npm install --global yarn`

or

- Import the GPG key to verify the yarn packages: `curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -`

- Enable the Yarn package manager repository: `echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list`

- Then install the yarn package manager: `sudo apt update && sudo apt install yarn`

- Check the installed yarn version: `yarn --version`

## Troubleshooting

### Possible Errors and Solutions

| Error | Probable Cause | Solution |
| :--------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | ---------------------------------------------------------------- |
| -bash: git: command not found<br></br>'git' is not recognized as an internal or external command, operable program, or batch file. | Git is not installed. | Install git. See guide [here.](#setting-up-for-windowslinuxmac) |
| 'yarn' is not recognized as an internal or external command, operable program or batch file. | yarn is not installed. | Install yarn. See guide [here.](#setting-up-for-windowslinuxmac) |

### Contact

If you have any questions, feel free to contact:

- Team lead:
[Ndubuisi Jr](https://github.com/NdubuisiJr)
(Email: ndubuisijrchukuigwe@gmail.com; Slack workspace display name - **@ndubuisijr**)

Empty file removed docs/development/chess/readme.md
Empty file.
136 changes: 136 additions & 0 deletions docs/development/companyFiles/get_started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
---
slug: /files-doc
sidebar_position: 1
title: Zuri Chat Company Files Plugin
---

## GETTING STARTED

## Quickstart

### Cloning the Repository

1. Fork this repository https://github.com/zurichat/zc_plugin_company_files
2. Open a terminal and clone the repository: `git clone https://github.com/zurichat/zc_plugin_company_files.git`

### Installing Dependencies

1. Ensure nodejs and git are installed in your machine `node -v && git --version`
If they are not installed, you can follow the guide [here](#setting-up-for-windowslinuxmac) to install.
2. Change directory into the new clone. `cd zc_plugin_company_files`
3. Run setup script to install all packages using `yarn run install-setup` or `npm run install-setup:npm`

### How to Run the App Locally

1. Run build script to get bundled react file `yarn run build:local` or `npm run build:local-npm`
2. Now run server in development mode with `yarn run dev`or `npm run dev`
3. Visit http://localhost:5500/

### Project Structure

For the BackEnd structure of this project, please refer to this [document](https://github.com/zurichat/zc_plugin_company_files/blob/dev/BACKEND_DOC.md).

## Local Development

### Linting

Linting is the automated checking of a source code for programmatic and stylistic errors. This is done by using a lint tool (otherwise known as linter). A lint tool is a basic static code analyzer. Linting is important to reduce errors and improve the overall quality of our code.

For the backend part of this project, the Google code style is used with some minor modifications. A code style is set of conventions (sometimes arbitrary) about how to write code for that project. It is much easier to understand a large codebase when all the code in it is in a consistent style.

### Commit Guide

This plugin uses Commitlint to ensure commits messages follow a particular convention using the conventional config. If you're totally new to this convention, that's totally fine.

> _Commit CheatSheet_

| Type | | Description |
| -------- | ------------------------ | ----------------------------------------------------------------------------------------------------------- |
| feat | Features | A new feature |
| fix | Bug Fixes | A bug fix |
| docs | Documentation | Documentation only changes |
| style | Styles | Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) |
| refactor | Code Refactoring | A code change that neither fixes a bug nor adds a feature |
| perf | Performance Improvements | A code change that improves performance |
| test | Tests | Adding missing tests or correcting existing tests |
| build | Builds | Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm) |
| ci | Continuous Integrations | Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs) |
| chore | Chores | Other changes that don't modify backend, frontend or test files |
| revert | Reverts | Reverts a previous commit |

> _Sample Commit Messages_

- `chore: Updated README file` := `chore` is used because the commit didn't make any changes to the backend, frontend or test folders in any way.
- `feat: Added plugin info endpoints` := `feat` is used here because the feature was non-existent before the commit.

### Contribution Guide

1. Open your cloned repo in your prefered code editor.
2. Open your terminal & set the upstream branch: `git remote add upstream https://github.com/zurichat/zc_plugin_company_files.git`
3. Pull upstream `git pull upstream dev`
4. Create a new branch for the ticket you're working on eg : `git checkout -b feat-import-file-from-url`
5. After making changes, run `git add .`
6. Commit your changes with a descriptive commit message : `git commit -m "your commit message"`.
7. To make sure there are no conflicts : `git pull upstream dev`
8. Push changes to your new branch : `git push origin feat-import-file-from-url`
9. Create a pull request to the `dev` branch.

### PR Guide

1. Pull request (PR) should clearly state clearly state its purpose/task in the description.
2. PR should only touch files within its scope. **Do not** correct comment typos or change variable names in another file. Fix only what is needed to make things work.
3. Lint your files before making PRs.
4. Always pull and merge into latest upstream dev branch before making PRs to avoid merge conflicts.
5. Your PR must be approved by 2 PR approvers/mergers before it is merged.

### Setting Up for Windows/Linux/Mac

- [How to install Git on Windows, Linux and macOS](https://www.digitalocean.com/community/tutorials/how-to-contribute-to-open-source-getting-started-with-git)

#### Windows

- [How to install node.js](https://phoenixnap.com/kb/install-node-js-npm-on-windows)
- Install yarn using `npm install --global yarn`
- Check installed yarn version `yarn --version`

#### macOS

- [How to install node.js on macOS](https://www.webucator.com/article/how-to-install-nodejs-on-a-mac/)
- Install Yarn using `npm install --global yarn` or `brew install yarn` or `curl -o- -L https://yarnpkg.com/install.sh | bash`
- Check installed yarn version `yarn --version`

#### Linux

- [How to install node.js on Linux PC](https://linuxconfig.org/how-to-install-node-js-on-linux)
- Install yarn using `npm install --global yarn`

or

- Import the GPG key to verify the yarn packages: `curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -`

- Enable the Yarn package manager repository: `echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list`

- Then install the yarn package manager: `sudo apt update && sudo apt install yarn`

- Check the installed yarn version: `yarn --version`

## Troubleshooting

### Possible Errors and Solutions

| Error | Probable Cause | Solution |
| :--------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | ---------------------------------------------------------------- |
| -bash: git: command not found<br></br>'git' is not recognized as an internal or external command, operable program, or batch file. | Git is not installed. | Install git. See guide [here.](#setting-up-for-windowslinuxmac) |
| 'yarn' is not recognized as an internal or external command, operable program or batch file. | yarn is not installed. | Install yarn. See guide [here.](#setting-up-for-windowslinuxmac) |

### Contact

If you have any questions, feel free to contact any of these people:

- Team lead:
[Omezibe](https://github.com/omzi)
(Email: obiohaomezibe@gmail.com; Slack workspace display name - **@omzi**)

- Frontend Lead:
[Williams](https://github.com/billmal071)
(Email: billmal071@gmail.com; Slack workspace display name - **@Gilgamesh**)
Empty file.
Loading