v_chat_sdk 0.0.2 copy "v_chat_sdk: ^0.0.2" to clipboard
v_chat_sdk: ^0.0.2 copied to clipboard

discontinued
outdated

official sdk for vchat to impement chat system into new or exist flutter app

vchat_package #

this package which written in pure dart help you to add chat functionality
make sure to star and watch all activity on github to get notify about updates. to any existing flutter mobile project with any state management and any back-end service. NOTE this package depend on firebase on notifications only Data saved on your vps server which run node js on it. this package provide public api such createSingleChat login register etc.
to make it easy to integrate. HOW this package works. vchat connected with node js which will be uploaded to your host this will create mongodb to store the chats ont it. all data saved one your host not firebase. Full customizable you can change any text or theme this package support dark mode this because it Embedded as files on the project to make it easy to customize i have create test node js server and uploaded it to test only in this test the notifications doesn't work since it need to add your firebase. cloud key in the node js but when run your own server it will works.

flutter app requirements:

you need to have login system on your project and support null safety.

backend requirements:

create new vps at digital ocean or any provider and install node js v v14.17.1 and any mongodb v above 3.6.

HOW TO TEST with not backend serve just with (there another example to integrate with laravel api). first we need to add sum configurations for android. 1 - create new flutter project project.

in android/app/src/main/AndroidManifest.xml add this permissions.

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

and in application
under android:label="app-name" add this 

android:requestLegacyExternalStorage="true"
android:usesCleartextTraffic="true"

(optional recommended) and under
<meta-data
        android:name="flutterEmbedding"
        android:value="2" />

add this for high notifications priority
 <meta-data
       android:name="com.google.firebase.messaging.default_notification_channel_id"
       android:value="high_importance_channel" />
 finished with AndroidManifest      
 
 open android/build.gradle
 
 update ext.kotlin_version to =>>> '1.4.32'
 
 under 
    repositories { 
    add this 
    maven {
        url 'https://google.bintray.com/exoplayer/'
    }
    maven { url 'https://plugins.gradle.org/m2/' }
    
 under dependencies {
 update all to  
    classpath 'com.android.tools.build:gradle:4.1.3'
    classpath 'com.google.gms:google-services:4.3.5'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    
 then open android/app/build.gradle  
 under 
  defaultConfig {
  add 
    minSdkVersion 18
    targetSdkVersion 30
    multiDexEnabled true 

------------- android configuration finished -----------

add dependency to pubspec.yaml.

#V_CHAT_PACKAGES DON'T UPDATE ANY VERSION IT IS ON YOUR OWN I WILL UPDATE IT AND PUSH TO GITHUB
http: ^0.13.3
textless: ^6.6.6
get: 4.1.4
get_storage: ^2.0.2
dio: 4.0.0
firebase_core: ^1.3.0
firebase_messaging: ^10.0.2
image_picker: ^0.8.1+4
sqflite: ^2.0.0+3
path_provider: ^2.0.2
socket_io_client: ^1.0.1
intl: ^0.17.0
clipboard: ^0.1.3
file_picker: ^3.0.3
flutter_native_image: ^0.0.6+1
permission_handler: ^8.1.2
flutter_video_info: ^1.2.0
video_thumbnail: ^0.3.3
video_player: ^2.1.10
record: ^3.0.0
stop_watch_timer: ^1.3.1
audioplayers: ^0.19.0
open_file: ^3.2.1
photo_view: ^0.11.1
chewie: ^1.2.2
cached_network_image: ^3.0.0
timeago: ^3.1.0
auto_direction: ^0.0.5
flutter_local_notifications: ^6.0.0
bot_toast: ^4.0.1
readmore: ^2.1.0
google_fonts: ^2.1.0

Use VChatRoomsView widget to view user rooms Use public api

 call this with your register system you have to register 2 times one on your system another on my vchat system
 VChatController.instance.register(VchatRegisterDto())
 if your system not fource the user to add image then pass image parapater null and it will add the defualt user image to it
 this api throw exception if data is missing all required except image can be null you have tp pass null if no image and throw if email exist  should try and catch 

 if you aready have account then login you need to login two times in your system and vchat system 
 this api throw exception if your not exist on db or wrong password 
 VChatController.instance.login(VChatLoginDto())

 if you want to start chat from any where just call this api 
 VChatController.instance.createSingleChat(VChatLoginDto()) and pass the user email which is uniqe on your system and vchat system 
 this api throw exception if you start chat your self you should try and catch 
 if first time to chat with this user dialog will appear and ask for first message else will open chat page