https://github.com/sahar-dev/video_conference_app
Secure, scalable Android video‑conferencing & chat app built on WebRTC (Jitsi Meet SDK) and Firebase Cloud Messaging for seamless real‑time calls, notifications, and user management.
https://github.com/sahar-dev/video_conference_app
android-studio firebase-auth java webrtc
Last synced: 5 months ago
JSON representation
Secure, scalable Android video‑conferencing & chat app built on WebRTC (Jitsi Meet SDK) and Firebase Cloud Messaging for seamless real‑time calls, notifications, and user management.
- Host: GitHub
- URL: https://github.com/sahar-dev/video_conference_app
- Owner: Sahar-dev
- Created: 2025-04-17T13:05:01.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2025-04-17T13:27:34.000Z (10 months ago)
- Last Synced: 2025-04-24T02:40:16.373Z (10 months ago)
- Topics: android-studio, firebase-auth, java, webrtc
- Language: Java
- Homepage:
- Size: 306 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Avempace Video Conferencing App 🎥💬
A professional, secure Android app for real‑time video conferencing and chat, built with WebRTC (via Jitsi Meet SDK) and Firebase Cloud Messaging.
---
## 🚀 Key Features
- **🔐 Authentication**
Register & log in with email/password; JWT tokens stored securely in SharedPreferences.
- **👥 User Directory**
Browse online users, start one‑on‑one calls with a tap, or initiate group calls via multi‑select.
- **📹 High‑Quality Video Calls**
Powered by Jitsi Meet SDK (WebRTC) with customizable server URL (`https://meet.jit.si` by default).
- **🔔 Push Notifications**
Incoming‑call alerts delivered via Firebase Cloud Messaging; handled by a custom FCM service and EventBus.
- **🗄️ Background Jobs**
WorkManager stub for handling any long‑running tasks or data sync in the background.
- **🛠️ Utilities & Tools**
- Retrofit 2 + Gson for networking
- Timber for comprehensive logging
- SweetAlertDialog for polished dialogs
- Centralized API response wrapper (`ApiResponse`)
---
## 🎯 Getting Started
### 🔧 Prerequisites
- Android Studio Arctic Fox or newer
- Android SDK API level 21+
- Java 8 or Kotlin support
- A running backend REST API
- Firebase project with Cloud Messaging enabled
## Getting Started
### Open in Android Studio
- Import the Gradle project.
- Place your `google‑services.json` in the `app/` directory.
### Configure APIs
- In `ServiceBuilder.java`, set `BASE_URL` to your backend.
- Verify endpoints in `ApiService.java`.
### Sync & Build
- Sync Gradle to download dependencies.
- Build the project (**Build → Make Project**).
---
## 🚀 Running the App
1. Launch an emulator or connect a device (with Google Play services).
2. Press **Run ▶️** in Android Studio.
3. The splash screen appears, then prompts for login or registration.
---
## 📖 Usage
### Sign Up / Log In
- Create a new account or authenticate with existing credentials.
### Home Screen
- **Tap** a user to start a one‑on‑one call.
- **Long‑press** to multi‑select users, then tap the group‑call button.
### Incoming Calls
- Receive a push notification dialog.
- **Accept** to join the conference or **Decline** to dismiss.
---
## 🔧 Customization
### Jitsi Server
Change the URL in `CallFragment.java`:
```java
new URL("https://your.jitsi.server");
```
### API Endpoints
Update `@GET` / `@POST` annotations in `ApiService.java` to match your backend routes.
### Notifications
Tweak `sendNotification(`) in ` MyFirebaseMessagingService.java ` to customize channel, icon, or sound.
### Storage
Replace `SharedPreferenceHelper` with `DataStore` or `EncryptedSharedPreferences` if desired.
### 🤝 Contributing
Fork this repository.
1. Create a branch:
```
git checkout -b feature/YourFeature
```
2. Commit your changes & push to your fork.
3. Open a Pull Request against main.