/Resonate

Clubhouse, but Open Source. A social voice platform.

Primary LanguageC++

Resonate - A Social Voice Platform

With the rising popularity of social voice platforms such as Clubhouse and Twitter Spaces, it is high time for an Open Source alternative. A platform like this would not only enhance credibility within the open-source community, but also attract more users and foster growth. An engagement platform that is Open Source has the potential to drive significant traction and help establish a strong presence.

Goals

  1. Design and Develop a Flutter Mobile Application.
  2. Develop a backend for the app using NodeJS, Firebase and LiveKit.

High Level Architecture

  1. LiveKit - It is an open source WebRTC stack that gives everything needed to build scalable and real-time video, audio, and data experiences in our application. This will be responsible for audio streaming. It will be easier to implement and deploy it since they have a great documentation too. To get started, we can use their free cloud service and then we can host the open-source version on our own server.
  2. Firebase - We can use it for storing user data, managing rooms/spaces (Firestore Database).
  3. Auth0 - Will be used for authentication of users.
  4. NodeJS - Will be used to develop a web server which will interact with the mobile app, firebase as well as LiveKit. The flutter app will interact with the server using REST API endpoints.
  5. Flutter - Will be used to develop the application for various platforms. We can design the app using MVC (Model View Controller) architecture and use GetX for state management. GetX offers several features, including reactive programming, dependency injection, and routing, which can help us build scalable and maintainable application. Listeners, moderators and speakers are devices having the flutter application.

Architecture

Firebase Firestore Structure (To be finalized)

Please join the discussion in this issue

Firebase Firestore Structure

App Level Design Pattern

Flutter will be used to develop the application for various platforms. We will be designing the app using MVC (Model View Controller) architecture and we will be using GetX for state management. GetX offers several features, including reactive programming, dependency injection, and routing, which can help us build scalable and maintainable application.

Repository Links

  1. Resonate Flutter App
  2. Resonate Backend

Commit Structure

Make sure to use conventional commit structure as follows:

<type>: <short summary>
  │               │
  │               └─⫸ Summary. Not capitalized. No period at the end.
  │
  └─⫸ Commit Type: docs|feat|fix|perf|refactor|test