Skip to content

the-real-i9/i9chat-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

i9chat (API Server)

Test i9chat

A Chat & Messaging API Server

Intro

i9chat is a full-fledged chat and messaging API server built in Go It supports all major chat application application features with a scalable, production-grade arcitecture, serving as a foundation for building apps like WhatsApp and Discord clones.

Technologies and Tools

go gofiber redis websocket neo4j jwt googlecloud docker

Technologies

  • Go - Programming Language
  • Fiber - REST API Framework
  • Neo4j - Graph DBMS
  • CypherQL - Query Language for a Graph database
  • WebSockets - Full-duplex, Bi-directional communication protocol
  • Redis Key/Value Store (Cache)
  • Redis Streams
  • Redis Pub/Sub
  • Redis Queue (via LPOP, RPUSH, RPOP, LPUSH)
  • Google Cloud Storage

Tools

  • Docker
  • Ubuntu Linux
  • VSCode
  • Git & GitHub Version Control
  • GitHub Actions CI

Table of Contents

Features

The following are the features supported by this API. Visit the API documentation for implementation guides.

Find Users

  • Find a user by their username (exact matching only)
  • Find users nearby (via geolocation coordinates)

Chat & Messaging

Realtime chatting with users of the application, and in groups.

Direct Chat

Start by finding a user by their username.

  • Realtime user presence (online/offline) status and last seen.
  • Supports various message types including:
    • Text
    • Voice
    • Image(s) with caption
    • Video(s) with caption
    • Audio
    • File attachments (Documents)
  • React to Messages
  • Reply to messages
  • Delivered and Read receipts

Group Chat

  • Group creation
  • Joining group
  • Leaving group (you can't be re-added, unless you re-join)
  • Total members count
  • Online members count
  • Group admin management
    • Add members
    • Remove members (they can't re-join, unless re-added)
    • Make member an admin
    • Remove member from admins

Realtime Message Delivery

  • Chat messages are delivered to target users in realtime.

Real-time Updates

  • Clients receive user "presence" and "last seen" updates (upon subscription)
  • Real-time read receipts

Technical Highlights

API Documentation

REST request/response Communication: Click Here

WebSocket Real-time Communication: Click Here



Upcoming features

The following is a list of features to be supported by this Social Media Backend API.

Media Processing and Upload Pipeline (In progress)

  • Image and Video processing and upload pipeline for user-generated media and post content and chat messages.

Releases

No releases published

Contributors 2

  •  
  •  

Languages