ChatMate is a dynamic cross-platform mobile app designed for seamless real-time communication. Built with Flutter and Dart, and powered by Firebase, it offers features such as text messaging, voice notes, image sharing, online status, unread message count, user blocking, and chat clearing. ChatMate ensures a smooth and engaging chatting experience, suitable for both personal and group interactions.
- Real-time Messaging: Chat with friends in real-time using text messages.
- Voice Notes: Record and send voice notes seamlessly within the chat.
- Image Sharing: Share images with friends by picking from the gallery.
- Online Status: View the online status of your friends.
- Unread Message Count: Keep track of unread messages for each conversation.
- User Blocking: Block users to prevent them from sending you messages.
- Chat Clearing: Clear chat history with a specific user.
- Profile Viewing: View the profile information of your friends.
- Flutter: For building the cross-platform mobile application.
- Dart: The programming language used with Flutter.
- Firebase Authentication: For user authentication and authorization.
- Firebase Firestore: For real-time database needs.
- Firebase Storage: For storing images and voice notes.
- Flutter Packages:
provider
: For state management.image_picker
: For selecting images from the gallery or camera.flutter_sound
: For recording and playing voice notes.permission_handler
: For handling permissions.path_provider
: For accessing the device's file system.firebase_core
: For initializing Firebase in the Flutter app.cloud_firestore
: For interacting with Firestore.firebase_storage
: For uploading and downloading files from Firebase Storage.
- Firebase Cloud Functions: For serverless backend logic.
- Firebase Firestore: For storing user data and messages.
- Firebase Storage: For storing media files.
- GitHub Actions: For continuous integration and deployment.
- Dart Code Metrics: For code quality checks.
- Prettier: For code formatting.
To get a local copy up and running, follow these simple steps:
- Flutter: Ensure you have Flutter installed on your machine.
- Firebase CLI: For deploying Cloud Functions and other Firebase resources.
- Clone the repository:
git clone https://github.com/your-username/ChatMate.git
cd ChatMate
- Install dependencies:
flutter pub get
- Setup Firebase:
- Create a Firebase project in the Firebase Console.
- Add your Android and iOS apps to the Firebase project.
- Download the
google-services.json
file for Android andGoogleService-Info.plist
for iOS, and place them in the respective directories:android/app
ios/Runner
- Initialize Firebase in your project:
firebase init
Follow the prompts to set up Firestore, Authentication, and Cloud Functions.
- Download the released APK.
- Log in or register to start using the chat features.
- Send text messages, images, and voice notes to your friends.
- View online status and unread message count for each conversation.
- Clear chat history, block users, and view friend profiles from the chat screen.