• Stars
    star
    130
  • Rank 277,575 (Top 6 %)
  • Language
    Go
  • Created over 3 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The Zuri Core is an open-source API that serves as the backend and backbone of Zuri Chat

ZC_CORE Go Reference

Zuri Chat Core Api

See the docs for everything: Zuri Chat Documentation

GitHub repo size

Description

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

Language

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.

API Documentation

A list of the endpoints and the functions they implement can be found here detailing information about the all API resources.

Getting Started

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.

Prerequisites

  1. Go 1.16 or lastest version already installed on your local machine.
  2. MongoDB

Installation

  1. Run an instance of MongoDB
$ mongod
  1. Create and populate a .env file with its keys corresponding values as listed in example.env
  2. Run zc_core from project root directory
$ cd /path/to/zc_core
$ go run main.go

Testing

  1. Lint checks are done with golangci-lint - an aggregator of linters
$ cd /path/to/zc_core
$ golangci-lint run --timeout 2m
  1. Automated unit and integration tests done with golang's builtin testing package.
$ go test -v ./...  -cover

Features

  • Blog: Content management package for the CRUD of blog posts and associated services
  • Contact: Service to process all user-related inquiries, complaints, and service-related suggestions
  • Data: Data management for plugins
  • Docs: OpenAPI specification for all resources
  • External: Desktop application download, email subscriptions, etc...
  • Marketplace: Plugins marketplace
  • Messaging: Realtime messaging service with SocketIO
  • Organizations: Organization management system
  • Plugin: Plugin management system
  • Realtime Communication (RTC): Connection authentication, subcription and pulishing service with centrifugo proxy server
  • Report: Report generation and viewing service
  • Services: Mail and file upload service package
  • Users: User management system
  • Utils: Utility package of shared helper functions and data types

Contributing

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.

  1. Fork/Clone the Project
  2. Create your Feature Branch (git checkout -b [branch name])
  3. Lint your Changes (golangci-lint run --timeout 2m)
  4. Commit your Changes (git commit -m "Added some amazing features")
  5. Push to the Branch (git push origin [branch name])
  6. Open a Pull Request

More Repositories

1

zc_main

A Workspace Web App powered by React and Node Js.
JavaScript
187
star
2

zc_app

Dart
36
star
3

zc_plugin_chessboard

JavaScript
21
star
4

zc_messaging

Python
19
star
5

zc_plugin_todo

Todo plugin for Zuri Chat
Vue
18
star
6

zc_plugin_dm

Direct Message Plugin
Python
18
star
7

zc_app_android

Kotlin
18
star
8

zc_plugin_company_goals

JavaScript
17
star
9

zc_desktop_flutter

Dart
15
star
10

zc_plugin_youtube_music_video

ZuriChat is an open source workspace app that provides the opportunity for people to network, collaborate, educate and learn remotely. It allows people to take their classroom everywhere, make learning fun, stay engaged and inspired with the virtual lounge and games. One of its unique features are the variety of plugins designed to add functionalities such as tracking company expenses, sending information fast and smoothly, managing files and integrating tools all with ZuriChat. This project is focused on the ZuriChat music plugin.
TypeScript
15
star
11

zc_plugin_deadlines

JavaScript
14
star
12

zc_plugin_channels

JavaScript
10
star
13

zurimain

zurimain
TypeScript
10
star
14

zc_plugin_company_files

An effective file management plugin that improves business workflow, allows the organization of important data, and provides a searchable database for quick retrieval.
JavaScript
10
star
15

zc_plugin_noticeboard

JavaScript
9
star
16

zc_plugin_company_sales_prospect

JavaScript
7
star
17

zc_plugin_company_holiday_calendar

This is calendar plugin developed with python, django, html, css and reactJs. It is part of the microservice zuri chat application and follows the monolithic software architecture. It writes, fetches and deletes its data from the zuri core system.
JavaScript
7
star
18

zc_plugin_tools

JavaScript
6
star
19

zc_plugin_duty_shift

Company Duty Shift plugin for zuri Chat
JavaScript
5
star
20

zc_plugin_expenses

PHP
5
star
21

zc_plugin_company_shift

CSS
5
star
22

zc_plugin_contribution-tracker

A plugin that allows you track peoples contribution to open source projects, and highlight most pressing issues
JavaScript
4
star
23

Documentation

JavaScript
4
star
24

zc_plugin_whiteboard

JavaScript
3
star
25

zc_app_quick_reply

2
star