Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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)
- Host: GitHub
- URL: https://github.com/ElshiatyTube/FlutterAgoraFirebaseVideoCall_Public
- Owner: ElshiatyTube
- Created: 2022-06-10T14:03:37.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-05-25T21:45:56.000Z (over 1 year ago)
- Last Synced: 2024-06-18T13:48:59.156Z (3 months ago)
- Language: Dart
- Size: 804 KB
- Stars: 56
- Watchers: 3
- Forks: 18
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
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