Skip to content

A Flutter chat app with a Node.js, Socket.IO, and Redis backend. Features real-time messaging, offline support, message replies, and reactions. Built using BLoC and clean architecture for scalable and maintainable code.

License

Notifications You must be signed in to change notification settings

shehrii9/scaleable-flutter-nodejs-chat-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Chat Application

Welcome to the Chat Application! This project is a real-time chat application that features a Flutter frontend and a Node.js backend using Socket.IO and Redis. It includes real-time messaging, offline support, message replies, and reactions.

📦 Features

  • Real-Time Messaging: Communicate instantly with other users.
  • Offline Support: Messages are queued and delivered once the recipient is online.
  • Message Replies: Reply directly to specific messages.
  • Message Reactions: React to messages with emojis.
  • Network Connectivity Listener: Monitors and handles network connectivity changes to ensure a seamless messaging experience.

🚀 Getting Started

Backend Setup

  1. Install Dependencies:

    • Ensure you have Node.js installed on your machine.
  2. Setup Redis:

    • Sign up at Redis Labs and create a Redis instance.
    • Retrieve your Redis credentials (host, port, password).
  3. Configure Redis Client:

    • Navigate to backend/src/core/redis_client.js.
    • Update the config object with your Redis credentials:
    const config = {
      host: 'your_redis_host',
      port: 'your_redis_port',
      username: "default",
      password: 'your_redis_password',
    };
  4. Run the Backend:

    • Open your terminal and navigate to the backend directory.

    • Start the backend server with:

      node index.js

Frontend Setup

  1. Install Dependencies:

    • Ensure you have Flutter installed on your machine.
  2. Configure API Base URL:

    • Open the project in VS Code or Android Studio.

    • Modify lib/core/constants.dart to set the base URL. Replace HTTP://ipv4:3000 with your machine's IPv4 address. Find your IPv4 address by running ipconfig in the command prompt.

      const String baseUrl = 'http://your_ipv4:3000';
  3. Run the Flutter App:

    • Connect a device or start an emulator.

    • In the terminal, navigate to the project root directory.

    • Start the app with:

      flutter run apk

🖼️ Screenshots

Login Screen Home Page Contacts Chat Screen

🤝 Contributing

We welcome contributions! To contribute, please submit a pull request or open an issue for suggestions or bug reports.

📜 License

This project is licensed under the MIT License. See the LICENSE file for details.

📫 Contact

For questions or feedback, please contact shaharyarahmad393@gmail.com.

About

A Flutter chat app with a Node.js, Socket.IO, and Redis backend. Features real-time messaging, offline support, message replies, and reactions. Built using BLoC and clean architecture for scalable and maintainable code.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published