A simple communicator project for messaging, voice calls, and video calls. The application works on mobile devices with iOS or Android. Created in React Native, it uses AgoraSDK technology for calls, while user data and text messages are transmitted via the Firebase platform. Google OAuth2 authentication is used for registration/login.
The application was created as part of the project for the "Advanced Design Patterns" course offered at Jagiellonian University (UJ).
- Google OAuth2 authentication
- Adding friends using an invitation code
- Text message chat
- Real-time voice and video calls
- Sending photos in the chat
- Unread message notifications
- Cross-platform application (iOS/Android)
- Modern and polished UI
You need to have a Node.js environment installed (e.g., v20.15.1). To run the application on an iOS simulator/device, Xcode is required, while Android Studio is needed for Android. It is best to follow the React Native environment setup documentation.
For Google OAuth2 authentication, you need to provide iosClientId and androidClientId to the AuthRequestConfig configuration, which are loaded from a .env
file that should be created and placed in the ap
p` folder:
REACT_APP_IOS_CLIENT_ID=
REACT_APP_ANDROID_CLIENT_ID=
cd app
npm install
npm run start
For running the application on an iOS simulator, additionally execute:
cd ios
pod install
Additionally, to run the application on an iOS device:
open app.xcworkspace
Next, in Xcode
, build and install the application on the selected device. Useful documentation:
https://developer.apple.com/documentation/xcode/building-and-running-an-app
https://developer.apple.com/documentation/xcode/running-your-app-in-simulator-or-on-a-device
After installing the application on a device, scan the QR code generated by the Expo server.