Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ElshiatyTube/FlutterAgoraFirebaseVideoCall_Public

FlutterAgoraFirebaseVideoCall (Agora RTC, Bloc Pattern, Cubit, Firestore, Cloud Function, FCM)
https://github.com/ElshiatyTube/FlutterAgoraFirebaseVideoCall_Public

Last synced: about 2 months ago
JSON representation

FlutterAgoraFirebaseVideoCall (Agora RTC, Bloc Pattern, Cubit, Firestore, Cloud Function, FCM)

Awesome Lists containing this project

README

        

# Flutter Agora Fully Functional Video Call module

## Tech Stack

**Client:** Dart, Flutter

**Server:** Firebase firestore, Google cloud functions

## Techniques

*BloC pattern with Cubit State management

*Fully Real-time data-consuming for (Users-History-VideoCall status)

*Real-time handling for all call status (calling - accept- reject - cancel - busy - unAnswer - end)

*Clean code

*Ui=>Cubit=>Api data flow

*Dio package for deals with (generate agora token - FCM) api

*Fcm notification (handling incoming calls in terminated mode)

*V2:
*User connection status (presence) using firebase realtimeDB and cloud functions. https://github.com/ElshiatyTube/presenceFirestoreCloudFuncs

*Live chat

*Update some dependencies

**Build token generator using nodejs:** https://www.youtube.com/watch?v=KcLypppA2IQ&ab_channel=Agora

**Demo Video :** https://www.youtube.com/watch?v=Ond-VhB11h4

![App Screenshot](https://i.ibb.co/3kWWdVX/Untitled1.png)

![App Screenshot](https://i.ibb.co/nbV41dV/new.png)

![App Screenshot](https://i.ibb.co/8KdjTF1/Untitled2.png)

## Getting Started

*Create a new firebase project and setup firestore and enable email/password authentication

*Copy FCM authorization key and past it on fcmKey var in constants.dart file

*Create agora new project and general token, channel name for test purpose and past them with your appId on (agoraAppId-agoraTestChannelName-agoraTestToken) vars in constants.dart file