RChat is a Group Chat Application made using Flutter, Docker and RethinkDB.
Services Provided are: User Service Message Service, Receipt Service, Typing Notification Service.
These instructions will get you a copy of the project set-up and running on your local machine for development purposes.
To clone this repository copy and paste the following command in your terminal.
git clone https://github.com/restless226/rchat.git
These are the prerequisites that you will need to run this app for your own.
- This app uses Docker and NodeJS so you will have to create one container and npm server for yourself.
- Android Studio - To build the app for Android devices.
- XCode - To build the app for IOS devices.
- A cross-platform group chat application using AES end to end message encryption.
- Used Bloc Providers and Cubits for state management and performed widget tests for services.
- Flutter, Docker, RehinkDB, NodeJS, Sqflite, Android, Dart.
- Flutter - The framework
- Docker - The framework
- RethinkDB - The open-source database
- Dart - The programming language
- BlocProvider - For State Management and dependancy injections.
- Cubit - For State Management.
- testUI - For Widget Testing.
- RethinkDB - For RethinkDB database usage.
- sqflite - For creating Chats and Messages tables.
- Encrypter - For two-way AES implementation.
- npm - For storing Profile Images on node server.
- Shared Preferences - For caching some data.
- Google Fonts - For the fonts.
| Without Profile Pic | With Profile Pic Light | With Profile Pic Dark |
|---|---|---|
![]() |
![]() |
![]() |
| Group Creation Selecting Members | Group Creation Screen | Group Created |
|---|---|---|
![]() |
![]() |
![]() |
| Group Chat Unread Message |
|---|
![]() |
| Group Chat Typing Notification |
|---|
![]() |
| Active Chats | Active Chats Dark Theme | Unread Message is Prioritized over Groups |
|---|---|---|
![]() |
![]() |
![]() |
| Online Status |
|---|
![]() |
| Chats Both Sides |
|---|
![]() |
| Message Threads Screen Seup | Message Sent Working |
|---|---|
![]() |
![]() |
| Message Sent |
|---|
![]() |
| Message Read |
|---|
![]() |
| Message Typing Notification |
|---|
![]() |
| Multiple Messages Scroll Till End |
|---|
![]() |
| Unread Message |
|---|
![]() |
| Unread Message |
|---|
![]() |
| Unread Chat goes to top |
|---|
![]() |




















