Skip to content

Attempt at creating a chat room service using Flutter and Go Lang

Notifications You must be signed in to change notification settings

kishansairam9/yaroom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Yet Another [Chat] Room (yaroom)

yaroom-logo

Attempt at creating a "chat room" service

Demo video - Onedrive link, enable 1080p in player quality for text readability

Features

Friends & Chat

  • Users can add others as friends and chat with each other
  • Chat supports text & multi-media files
  • Search functionality is available with in a chat exchange

Groups & Rooms

  • Users can create groups with other users & chat together
  • Rooms are inspired from discord servers, contain multiple channels to exchange messages
  • Multi-media messages & text search are available in all exchanges

Tech Stack

Frontend

  • Frontend is implemented in flutter, with all used packages supporting Android, iOS and Web
  • Application currently targets only Android, but can be extended to support Web and iOS

Backend

  • Backend is written in Go Lang
  • Cassandra is choosen as Database
    • It is choosen over alternative NoSQL DBs - MongoDB and Couchbase
    • MongoDB doesn't have support for inbuilt caching and intrinsic distributed support which others have
    • For this project, schema is assumed to be static, hence document ability of MongoDB & Couchbase is not utilised
    • Given Cassandra's higher write throughput it was utilised in this work
  • Elastic Search is used for text search functionality (via Elassandra integration)
  • Minio Object Store is utilised to store media files
  • Streams in backend are supported by NATS Jetstream, and are used to send stream updates and active status via Websocket

External Services

  • User login and registration is integrated with Auth0
  • Google firebase's FCM is used to send notifications to users

About

Attempt at creating a chat room service using Flutter and Go Lang

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •