diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index 157b270644b21f09e2dfaa4884b465597f04e7d4..306e670b31ee85c4ba18ad004c08d2c64ca62472 100644
Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ
diff --git a/app/build.gradle b/app/build.gradle
index bf75d57009bb5d25600da1162fa9c902c9267437..b98b24d13c36b47b98053dc5c77494f87eb271d2 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -20,6 +20,8 @@ android {
 }
 
 dependencies {
+    implementation 'com.ibm.watson.developer_cloud:java-sdk:3.7.2'
+    implementation 'com.github.kittinunf.fuel:fuel-android:1.9.0'
     implementation fileTree(dir: 'libs', include: ['*.jar'])
     implementation 'com.android.support:appcompat-v7:27.1.1'
     implementation 'com.android.support.constraint:constraint-layout:1.1.2'
@@ -31,4 +33,5 @@ dependencies {
     testImplementation 'junit:junit:4.12'
     androidTestImplementation 'com.android.support.test:runner:1.0.2'
     androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+    implementation 'com.android.support:design:27.1.1'
 }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6add63f224b1080306f307d671d3adcdf0a4c34d..b3de1390658a368df8689d0092cb387da7f2f57e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.example.admin.sleepbetter">
-
+    <uses-permission android:name="android.permission.INTERNET" />
     <application
         android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"
diff --git a/app/src/main/java/com/example/admin/sleepbetter/MainMenu.java b/app/src/main/java/com/example/admin/sleepbetter/MainMenu.java
index 6e6f260e91c24c62466d8814d127a6f251c1bfab..8cf8c02c7302a444c19988b359895e1d54000712 100644
--- a/app/src/main/java/com/example/admin/sleepbetter/MainMenu.java
+++ b/app/src/main/java/com/example/admin/sleepbetter/MainMenu.java
@@ -84,6 +84,7 @@ public class MainMenu extends AppCompatActivity
         FragmentManager fragmentManager = getFragmentManager();
 
 
+
         if (id == R.id.nav_factors) {
             fragmentManager.beginTransaction().replace(R.id.content_frame, new Factors()).commit();
         } else if (id == R.id.nav_goal_diary) {
@@ -94,6 +95,8 @@ public class MainMenu extends AppCompatActivity
             fragmentManager.beginTransaction().replace(R.id.content_frame, new Questionnaire()).commit();
         } else if (id == R.id.nav_help) {
             fragmentManager.beginTransaction().replace(R.id.content_frame, new Help()).commit();
+        } else if (id == R.id.nav_bot) {
+            fragmentManager.beginTransaction().replace(R.id.content_frame, new TestBot()).commit();
         }
 
         DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
diff --git a/app/src/main/java/com/example/admin/sleepbetter/TestBot.java b/app/src/main/java/com/example/admin/sleepbetter/TestBot.java
new file mode 100644
index 0000000000000000000000000000000000000000..581501bb30816663266c16c238f8a02e16954ad7
--- /dev/null
+++ b/app/src/main/java/com/example/admin/sleepbetter/TestBot.java
@@ -0,0 +1,115 @@
+package com.example.admin.sleepbetter;
+
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.text.Html;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.inputmethod.EditorInfo;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import com.github.kittinunf.fuel.Fuel;
+import com.github.kittinunf.fuel.core.FuelError;
+import com.github.kittinunf.fuel.core.Handler;
+import com.github.kittinunf.fuel.core.Request;
+import com.github.kittinunf.fuel.core.Response;
+import com.ibm.watson.developer_cloud.conversation.v1.ConversationService;
+import com.ibm.watson.developer_cloud.conversation.v1.model.MessageRequest;
+import com.ibm.watson.developer_cloud.conversation.v1.model.MessageResponse;
+import com.ibm.watson.developer_cloud.http.ServiceCallback;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class TestBot extends AppCompatActivity {
+
+    private static final String TAG = "TestBot";
+    private ConversationService myConversationService = null;
+    private TextView chatDisplayTV;
+    private EditText userStatementET;
+    private final String IBM_USERNAME = "528a69dc-8537-4a01-8598-bf08be28a75a";
+    private final String IBM_PASSWORD = "PqXreJu3IwoQ";
+    private final String IBM_WORKSPACE_ID = "724cbe7d-c790-4298-a591-79833ac9aff9";
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.testbot);
+        chatDisplayTV = findViewById(R.id.tv_chat_display);
+        userStatementET = findViewById(R.id.et_user_statement);
+
+        //instantiating IBM Watson Conversation Service
+        myConversationService =
+                new ConversationService(
+                        "2017-12-06",
+                        IBM_USERNAME,
+                        IBM_PASSWORD
+                );
+
+        userStatementET.setOnEditorActionListener(new TextView.OnEditorActionListener() {
+            @Override
+            public boolean onEditorAction(TextView tv, int action, KeyEvent keyEvent) {
+                if (action == EditorInfo.IME_ACTION_DONE) {
+                    //show the user statement
+                    final String userStatement = userStatementET.getText().toString();
+                    chatDisplayTV.append(
+                            Html.fromHtml("<p><b>YOU:</b> " + userStatement + "</p>")
+                    );
+                    userStatementET.setText("");
+
+                    MessageRequest request = new MessageRequest.Builder()
+                            .inputText(userStatement)
+                            .build();
+                    // initiate chat conversation
+                    myConversationService
+                            .message(IBM_WORKSPACE_ID, request)
+                            .enqueue(new ServiceCallback<MessageResponse>() {
+                                @Override
+                                public void onResponse(MessageResponse response) {
+                                    final String botStatement = response.getText().get(0);
+                                    runOnUiThread(new Runnable() {
+                                        @Override
+                                        public void run() {
+                                            chatDisplayTV.append(
+                                                    Html.fromHtml("<p><b>BOT:</b> " +
+                                                            botStatement + "</p>")
+                                            );
+                                        }
+                                    });
+
+                                    // if the intent is joke then we access the third party
+                                    // service to get a random joke and respond to user
+                                    if (response.getIntents().get(0).getIntent().endsWith("RequestQuote")) {
+                                        final Map<String, String> params = new HashMap<String, String>() {{
+                                            put("Accept", "text/plain");
+                                        }};
+                                        Fuel.get("https://icanhazdadjoke.com/").header(params)
+                                                .responseString(new Handler<String>() {
+                                                    @Override
+                                                    public void success(Request request, Response response, String body) {
+                                                        Log.d(TAG, "" + response + " ; " + body);
+                                                        chatDisplayTV.append(
+                                                                Html.fromHtml("<p><b>BOT:</b> " +
+                                                                        body + "</p>")
+                                                        );
+                                                    }
+
+                                                    @Override
+                                                    public void failure(Request request, Response response, FuelError fuelError) {
+                                                    }
+                                                });
+                                    }
+                                }
+
+                                @Override
+                                public void onFailure(Exception e) {
+                                    Log.d(TAG, e.getMessage());
+                                }
+                            });
+                }
+                return false;
+            }
+        });
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/testbot.xml b/app/src/main/res/layout/testbot.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d2a2eb950b8a009d57dbec53d250b001bc334433
--- /dev/null
+++ b/app/src/main/res/layout/testbot.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+xmlns:tools="http://schemas.android.com/tools"
+android:layout_width="match_parent"
+android:layout_height="match_parent"
+android:padding="16dp">
+<!--tools:context="MainActivity">-->
+
+    <ScrollView
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:layout_above="@+id/user_statement_container">
+
+     <TextView
+        android:id="@+id/tv_chat_display"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textSize="16sp" />
+     </ScrollView>
+
+    <android.support.design.widget.TextInputLayout
+        android:id="@+id/user_statement_container"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true">
+
+        <EditText
+            android:id="@+id/et_user_statement"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:hint="Your Message:"
+            android:imeOptions="actionDone"
+            android:inputType="textShortMessage" />
+    </android.support.design.widget.TextInputLayout>
+</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/menu/activity_menu_drawer.xml b/app/src/main/res/menu/activity_menu_drawer.xml
index 2b4c42cbb8f95e40254bdee7975a3881d3010b7c..5a43064cc72b3819613b041c06dfa81ea13259fe 100644
--- a/app/src/main/res/menu/activity_menu_drawer.xml
+++ b/app/src/main/res/menu/activity_menu_drawer.xml
@@ -20,6 +20,9 @@
         <item
             android:id="@+id/nav_help"
             android:title="Help" />
+        <item
+            android:id="@+id/nav_bot"
+            android:title="TestBot" />
     </group>
 
 </menu>