Salingsapa is a Flutter application designed to make video calls more inclusive. The app focuses on improving communication for individuals with hearing impairments by incorporating Sign Language Recognition and Speech-to-Text features. Built following Clean Architecture principles and utilizing BLoC state management, Salingsapa ensures a robust and scalable solution.
Enjoy seamless, high-quality video calls powered by Agora and supported by a strong Firebase backend. Salingsapa aims to make communication easier and more accessible for everyone.
- Conduct video calls with a unique emphasis on inclusivity.
- Features advanced Sign Language Recognition and Speech-to-Text for enhanced communication.
- Seamless video calls powered by WebRTC with Agora for high-quality and efficient communication.
- Employs TensorFlowLite to recognize and interpret Sign Language gestures.
- Enhances communication for individuals with hearing impairments.
- Utilizes native Android and iOS APIs for real-time Speech-to-Text conversion.
- Converts spoken words into text to aid understanding during calls.
The project follows a well-structured directory layout to ensure scalability and maintainability.
configs/
scripts/
lib/
βββ core/
βββ data/
βββ domain/
βββ presentation/
For more details, please refer to the PROJECT_STRUCTURE.md.
- Firebase: Provides backend services for authentication, messaging, and remote configuration.
- Agora RTC Engine: Powers seamless and high-quality video calls using WebRTC.
- TensorFlowLite: Utilized for Sign Language Recognition to enhance communication for individuals with hearing impairments.
- BLoC (Business Logic Component): Manages state efficiently, ensuring scalable and maintainable application logic.
- Dio: Manages HTTP requests for data communication.
- Flutter Localizations and Intl: Supports multiple languages and localization.
- Dynamic Color: Enhances the user interface and experience with adaptive color schemes.
- **Clean Architecture **: Ensures the maintainability and scalability of the codebase, separating concerns into distinct layers (presentation, domain, data).
- Codemagic: Automates CI/CD processes, streamlining development and deployment.
- ASL Alphabet Dataset: The Sign Language Recognition model is trained using the ASL Alphabet dataset by Akash.
Before you begin, make sure you have:
- Flutter installed on your machine.
- An emulator or a physical device connected for testing.
- Android SDK (for running the Android app).
- Cocoapods and Xcode (for running the iOS app).
-
Clone the Repository
git clone https://github.com/baharudin-yusup/salingsapa.git cd salingsapa
-
Run the App
-
Configuring and Running Automatically
-
Visual Studio Code
-
Open the "Run and Debug" panel.
-
Choose the appropriate configuration:
- DEV App
- PROD App
-
Run the selected configuration.
-
-
Android Studio/IntelliJ IDEA
-
Open the "Run/Debug and Configuration" dropdown.
-
Choose the appropriate configuration:
- DEV App (Windows)
- PROD App (Windows)
- DEV App (Mac/Linux)
- PROD App (Mac/Linux)
-
Run the selected configuration.
-
-
-
Configuring and Running Manually
This example demonstrates how to run the app manually on MacOS in a development environment:
-
Initialize Environment
Run the
initialize-env.sh
script with the--env dev
argument to set up the development environment.chmod +x ./scripts/initialize-env.sh && ./scripts/initialize-env.sh --env dev
-
Initialize Firebase Options
Run the
initialize-firebase-options.sh
script with the--env dev
argument to set up Firebase options for the development environment.chmod +x ./scripts/initialize-firebase-options.sh && ./scripts/initialize-firebase-options.sh --env dev
-
Generate Necessary Files
Run the following command to generate necessary files and delete any conflicting outputs.
dart run build_runner build --delete-conflicting-outputs
-
Install Flutter Packages
Run the following command to install required Flutter packages.
flutter pub get
-
Run the App
Finally, run the app with the specified flavor and target.
flutter run --flavor dev --target=lib/main_dev.dart
-
-
We hope you find Salingsapa useful and enjoyable to use. If you have any questions, suggestions, or issues, please feel free to open an issue on our GitHub repository.