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.
- 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.
-
Install Dependencies:
- Ensure you have Node.js installed on your machine.
-
Setup Redis:
- Sign up at Redis Labs and create a Redis instance.
- Retrieve your Redis credentials (host, port, password).
-
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', };
- Navigate to
-
Run the Backend:
-
Open your terminal and navigate to the
backend
directory. -
Start the backend server with:
node index.js
-
-
Install Dependencies:
- Ensure you have Flutter installed on your machine.
-
Configure API Base URL:
-
Open the project in VS Code or Android Studio.
-
Modify
lib/core/constants.dart
to set the base URL. ReplaceHTTP://ipv4:3000
with your machine's IPv4 address. Find your IPv4 address by runningipconfig
in the command prompt.const String baseUrl = 'http://your_ipv4:3000';
-
-
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
-
We welcome contributions! To contribute, please submit a pull request or open an issue for suggestions or bug reports.
This project is licensed under the MIT License. See the LICENSE file for details.
For questions or feedback, please contact shaharyarahmad393@gmail.com.