See the docs for everything: Zuri Chat Documentation
The Zuri Chat Core (ZC_Core) is an open source API that serves as the backend and backbone of Zuri Chat - an open source slack clone developed during the HNG8 internship program
Zuri Chat implements a plug-in system that allows for much more functionality because different plugins can be developed by different creators. These plugins can then rest on the Zuri Chat Core backbone (ZC_Core) which is written in Golang
ZC_Core was written in Go because it is a fast, compiled language and it is easily scaled. Concurrency in Go is also ideal for implementing a plugin structure. This makes it easy to build on the project and allows for future expansion.
A list of the endpoints and the functions they implement can be found here detailing information about the all API resources.
This is an example of how you can setup your project locally. To get a local copy up and running follow these simple example steps.
Run an instance of MongoDB
$ mongod
Create and populate a .env
file with its keys corresponding values as listed in example.env
Run zc_core from project root directory
$ cd /path/to/zc_core
$ go run main.go
Lint checks are done with golangci-lint - an aggregator of linters
$ cd /path/to/zc_core
$ golangci-lint run --timeout 2m
Automated unit and integration tests done with golang's builtin testing
package.
$ go test -v ./... -cover
Pull requests are welcome from the zc_core_main team. Please review the issues created before making a pull request or create an issue if the issue you solve is not already listed.
git checkout -b [branch name]
)golangci-lint run --timeout 2m
)git commit -m "Added some amazing features"
)git push origin [branch name]
)