Skip to content

Explore 'Batein Karo' - a lightweight chat application crafted with Flutter and Firebase. Engage in seamless conversations and stay connected with loved ones. Let's chat

Notifications You must be signed in to change notification settings

sanskarvijpuria/Batein-Karo

Repository files navigation

Project logo

Batein Karo

Firebase Flutter Licence


A Flutter Chat App with Firebase Integration

📝 Table of Contents

🧐 About

Batein Karo is a feature-rich, multi-platform chat application built with Flutter and Firebase. It empowers users to seamlessly connect and communicate across devices. With a focus on user experience and scalability, Batein Karo offers a solid foundation for further development.

📸 Screenshots

Login Screen Signup Screen Add User Dialog
User Detail Screen Self Detail Screen Photo Viewer
Pre Edited Message Post Edited Message Export Dialog

✨ Key Features

  • Messaging:
    • Send and receive text messages to individuals with the ability to edit sent messages for flexibility.
    • View message statuses (seen/unseen) for better communication flow.
    • Solo heart emojis that animate with a beating effect, similar to WhatsApp, adding a fun and engaging touch to conversations.
  • Media Sharing:
    • Share and receive images, enhancing chat interactions.
    • Download or save received images for offline viewing.
  • Cloud Storage:
    • Securely store data in the Firebase cloud, ensuring reliability and accessibility.
  • User Management:
    • Create a profile, set a personalized profile picture, and add an "About Me" section.
    • View other users' profile pictures, online status, last seen, and "About Me" sections.
    • Forgot Password feature allowing users to easily reset their passwords and regain access to their accounts.
  • Notifications:
    • Receive timely notifications even when the app is in the background, ensuring you never miss a message.
  • Export Feature:
    • Export entire chat conversations, including images and user profiles.
  • Delete Functionality:
    • Delete unwanted messages.
  • Material 3 UI:
    • Experience a modern and visually appealing interface that adheres to Material 3 design principles.
  • Additional Features:
    • Launcher screen and custom icon for a polished user experience.
    • Photo viewer for profile pictures and sent images with zooming capabilities for detailed viewing.
    • Essential chat app functionalities for smooth communication.

🏁 Getting Started

To get started quickly and easily, follow these steps: Prerequisites:

Setting Up Firebase:

  1. Enable Firebase Services: Within your newly created Firebase project, activate the services you'll be using in the Batein Karo app. Some common choices include Authentication (for user login), Firestore (for storing chat data), and Storage (for media sharing). Refer to the Firebase documentation for guidance on enabling these services: https://firebase.google.com/docs

  2. Connect Firebase to Flutter:

    • Refer to the documentation for details regarding the below-mentioned points: https://firebase.google.com/docs/flutter/setup?platform=android
    • Firebase CLI: Install the Firebase CLI globally using your preferred package manager (e.g., npm or yarn). This tool helps manage your Firebase project from the command line. Refer to the official documentation for installation instructions: https://firebase.google.com/docs/cli.
    • FlutterFire CLI: While the Firebase CLI sets up the overall project connection, FlutterFire CLI is a plugin specifically designed for integrating Firebase features within your Flutter app. Use the flutterfire configure command to configure FlutterFire for your chosen platforms (Android, iOS, etc.).

Installing Dependencies:

  • Carefully review the pubspec.yaml file within the Batein Karo project. This file lists all the external libraries (packages) required for the app to function.
  • Run the command flutter pub get in your terminal to download and install these dependencies. Important: Pay close attention to any compatibility notes or additional setup instructions mentioned on the pub.dev pages of these libraries, especially for specific platforms (Android, iOS, etc.). You might encounter issues if these platform-specific requirements aren't met.

Connecting a Device or Emulator:

Follow Flutter's official documentation to connect a physical device or launch an emulator. Ensure a compatible device/emulator is ready to receive the app.

Running the App:

  1. Open your terminal or command prompt and navigate to the root directory of the Batein Karo project.
  2. Run the command flutter run to launch the app on your connected device or emulator.

Understanding Your Data (Firestore Schema):

The included FirestoreChatAppSchema.pdf document outlines how your chat data is organized and stored in the cloud. This schema is crucial for comprehending how messages, users, and other chat-related information are structured. You may need to manually set up collections and documents in Firestore according to this schema if they are not automatically created.

🗂️ Project Strcture

The Batein Karo codebase is organized using a clear and modular structure:

  • lib/:
    • functions/: Helper functions for various app functionalities (authentication, API calls, etc.).
    • models/: Dart classes representing your chat app's data models (user, message, etc.).
    • screens/: Individual screens that make up the app's UI (chat screen, profile screen, etc.).
    • widgets/: Reusable UI components or parts of the screen broken down into different widgets.

🚀 Future Enhancements

Batein Karo serves as a solid foundation for a feature-rich chat application. Here are some potential areas for future development:

  • Group Chats: Implement functionality for creating and managing group chats, allowing users to communicate with multiple individuals.
  • Search Functionality: Integrate a search bar to enable users to quickly search for specific messages, contacts, or content within the app.
  • State Management: Consider incorporating a state management solution like Provider, Riverpod, or Bloc to manage complex app states and improve code organization.
  • Additional Features: Explore adding features like voice messages, video calls, location sharing, and more to enhance user experience.

🙏 Inspiration and Attribution

📌 PS

Pssst! That awesome image at the top? It's kind of like a cool hat for this README – there to add a little pizazz, but not exactly what the app looks like. Just imagine a boring simple with a little fun app under there, waiting to be explored! (I made that image with AI help, just for fun.)

Want to chat more? I'd love to hear your thoughts on this project or anything Flutter-related! Feel free to connect with me on LinkedIn: Sanskar Vijpuria

About

Explore 'Batein Karo' - a lightweight chat application crafted with Flutter and Firebase. Engage in seamless conversations and stay connected with loved ones. Let's chat

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages