Giter Site home page Giter Site logo

mamena2020 / zomie-app Goto Github PK

View Code? Open in Web Editor NEW
30.0 3.0 8.0 5.21 MB

Online meeting app like Google meet, build with Flutter for all platforms. using WebRTC for media real-time communication, socket.io for signaling & messaging, & Server on Nodejs with SFU architecture

License: MIT License

Kotlin 0.07% Swift 0.88% Objective-C 0.02% Dart 75.72% CMake 9.98% C++ 11.61% C 0.76% HTML 0.97%
chat-application flutter meeting-application nodejs-server realtime socket-io webrtc android chat google-meet

zomie-app's Introduction

zomie

❗ the project continues on branch 1peer ❗

Online meeting app like google meet, build with flutter for all platforms. this app uses WebRTC for media real-time communication, and socket.io for signaling & messaging. Server running on nodejs with SFU architecture which features the following data transmission processes between the media server and the endpoints (client).

This app also using TURN Server as relays media, work as a backup plan if STUN Server won't work because client device behind of symmetric NAT. TURN server is already end-to-end encrypted by the peers and the TURN Server cannot decode/read the encrypted packet, it just relays the packet to other peers. By default TURN already setup in file (lib/Services/WebRTC/Config/WRTCConfig.dart) using free TURN Servers from OPEN RELAY. but you can add your own Turn server using Zomie TURN Server as relays media.

  • Features

    • No account needed
    • Create Room
      • life time (default 1 minute)
        • after life time & if there is no one in room, then room will destroy itself
      • password (optional)
    • Lobby
      • preparing for meeting
        • permission for microphone & camera
        • enter password (if required)
        • change user name
      • join room
    • Room meeting
      • video & audio communication
        • muted/unmuted microphone
        • turn on/off camera
      • chat room
      • Screen share
      • Pined layout
    • Settings
      • Bitrate
        • control video/screen bitrate in the room
      • Room Password
        • allow/not
      • Room life time
        • room life time after created
  • Tested platform status

    • ✔️ Android (tested)
    • ✔️ Web (tested)
    • ✔️ Windows (tested)
      • ❗ Screen share (not working yet)
      • ❗ WebCam light still on when camera turn off
    • ❗ Ios (not tested yet)
    • ❗ Linux (not tested yet)
    • ❗ Mac (not tested yet)

#SS Apps

  • Desktop-windows

  • Mobile-Android

  • Web browser

#How to use

  • create dotenv file

    • cmd: cp dotenv.example dotenv
    • fill in credentials, you can ignore (TURN_SERVER_HOST, TURN_SERVER_USERNAME, TURN_SERVER_PASSWORD), because by default its already setup, but its okay if you want to add more your own TURN server.
       MEDIA_SERVER_HOST = "localhost:5000"
      
       ALLOW_TURN_SERVER = "false" 
       TURN_SERVER_HOST = "turn:ip:port" #example: "turn:192.168.1.9:3478"
       TURN_SERVER_USERNAME = ""    #exampe: "zomie"
       TURN_SERVER_PASSWORD = "" #example: "password"
      
      
  • android config

    • change "applicationId"
      • dir: (android/app/build.gradle)
       defaultConfig {
         // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
         applicationId "com.example.zomie_app"
      
  • build

    • web
      • canvas kit: flutter build web --web-renderer canvaskit --release
      • html render: flutter build web --web-renderer html --release
    • android (APK)
      • flutter build apk --release
    • desktop windows
      • flutter build windows
  • run debug

    • web
      • flutter run -d chrome
    • android
      • flutter run -d android
    • desktop
      • flutter run -d windows

#Flutter info

  • build with version.
    • Flutter 3.3.4, dart 2.18.2
  • Android
    • targetSdk
        compileSdkVersion 33
        minSdkVersion 23
        targetSdkVersion 33
      

Note

  • WebRTC

    • Support Platform
      • All Platform
    • STUNT/TURN server
      • STUNT: "urls": "stun:stun.stunprotocol.org"
        • Stunt will not working if client is under symmetric NAT.
      • TURN: by default TURN server using from Open Relay, or you can add more using Zomie TURN Server
  • Socket io

    • Platform
      • All Platform
    • version match info [1]
        - server(nodejs): "socket.io": "^2.4.1"
        - client(flutter):  socket_io_client: ^1.0.1 | ^1.0.2
      
    • version match info [2]
        - server(nodejs): "socket.io": "^4.5.3"
        - client(flutter):  socket_io_client: ^2.0.0
      

References

zomie-app's People

Contributors

mamena2020 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.