diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000000000000000000000000000000000000..96cc43efa6a0885098044e976cd780bb42c68a70
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <resourceExtensions />
+    <wildcardResourcePatterns>
+      <entry name="!?*.java" />
+      <entry name="!?*.form" />
+      <entry name="!?*.class" />
+      <entry name="!?*.groovy" />
+      <entry name="!?*.scala" />
+      <entry name="!?*.flex" />
+      <entry name="!?*.kt" />
+      <entry name="!?*.clj" />
+      <entry name="!?*.aj" />
+    </wildcardResourcePatterns>
+    <annotationProcessing>
+      <profile default="true" name="Default" enabled="false">
+        <processorPath useClasspath="true" />
+      </profile>
+    </annotationProcessing>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e7bedf3377d40335424fd605124d4761390218bb
--- /dev/null
+++ b/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,3 @@
+<component name="CopyrightManager">
+  <settings default="" />
+</component>
\ No newline at end of file
diff --git a/.idea/dictionaries/Afifun.xml b/.idea/dictionaries/Afifun.xml
new file mode 100644
index 0000000000000000000000000000000000000000..65486e551888445095660a70944da85ca269ac7b
--- /dev/null
+++ b/.idea/dictionaries/Afifun.xml
@@ -0,0 +1,7 @@
+<component name="ProjectDictionaryState">
+  <dictionary name="Afifun">
+    <words>
+      <w>sukses</w>
+    </words>
+  </dictionary>
+</component>
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7ac24c777f8adde6bd57c01c1bfa1cf0143f3d77
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="GradleSettings">
+    <option name="linkedExternalProjectsSettings">
+      <GradleProjectSettings>
+        <option name="distributionType" value="DEFAULT_WRAPPED" />
+        <option name="externalProjectPath" value="$PROJECT_DIR$" />
+        <option name="modules">
+          <set>
+            <option value="$PROJECT_DIR$" />
+            <option value="$PROJECT_DIR$/app" />
+          </set>
+        </option>
+        <option name="resolveModulePerSourceSet" value="false" />
+      </GradleProjectSettings>
+    </option>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b0a270f57538ff000609da788e82b8bc7dba468e
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="EntryPointsManager">
+    <entry_points version="2.0" />
+  </component>
+  <component name="NullableNotNullManager">
+    <option name="myDefaultNullable" value="android.support.annotation.Nullable" />
+    <option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
+    <option name="myNullables">
+      <value>
+        <list size="4">
+          <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
+          <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
+          <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
+          <item index="3" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
+        </list>
+      </value>
+    </option>
+    <option name="myNotNulls">
+      <value>
+        <list size="4">
+          <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
+          <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
+          <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
+          <item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
+        </list>
+      </value>
+    </option>
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/build/classes" />
+  </component>
+  <component name="ProjectType">
+    <option name="id" value="Android" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ca793b4e2c6e57a63551463fa65aa53d97db0fa2
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/MyUI.iml" filepath="$PROJECT_DIR$/MyUI.iml" />
+      <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7f68460d8b38ac04e3a3224d7c79ef719b1991a9
--- /dev/null
+++ b/.idea/runConfigurations.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RunConfigurationProducerService">
+    <option name="ignoredProducers">
+      <set>
+        <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
+        <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
+        <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
+      </set>
+    </option>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..94a25f7f4cb416c083d265558da75d457237d671
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index affe87655f7825df6826523196f35f14a8643e1c..47021c873a0d93f32147a1932459f1c9e7f3010d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -18,9 +18,9 @@
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.BROWSABLE" />
                 <data
-                    android:host="localhost"
+                    android:host="myui-dev.cs.ui.ac.id"
                     android:scheme="akuncs"
-                    android:path="/"/>
+                    android:path="/backend/token/"/>
             </intent-filter>
         </activity>
         <activity android:name=".activity.HomeActivity"/>
diff --git a/app/src/main/java/id/ac/ui/cs/myui/ServiceGenerator.java b/app/src/main/java/id/ac/ui/cs/myui/ServiceGenerator.java
index cf6c26956859d111518d023adfb9c2dacea7c459..492187539b8e41ab440ddd27af7773ed5ad9d2c4 100644
--- a/app/src/main/java/id/ac/ui/cs/myui/ServiceGenerator.java
+++ b/app/src/main/java/id/ac/ui/cs/myui/ServiceGenerator.java
@@ -36,13 +36,15 @@ public class ServiceGenerator extends AsyncTask<Object, Object, AccessToken> {
         this.code = code;
     }
 
-    public static final String API_BASE_URL = "https://akun.cs.ui.ac.id/";
-    public static final String BACKEND_BASE_URL = "http://10.0.2.2/";
+    public static final String API_BASE_URL = "https://api.cs.ui.ac.id/";
+    public static final String AUTH_BASE_URL = "https://akun.cs.ui.ac.id/";
+    public static final String BACKEND_BASE_URL = "https://myui-dev.cs.ui.ac.id/backend/";
+
 
     @Override
     protected AccessToken doInBackground(Object... objects) {
         OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
-        AccessToken data = null;
+        AccessToken accessToken = null;
         Retrofit.Builder builder =
                 new Retrofit.Builder()
                         .baseUrl(BACKEND_BASE_URL)
@@ -61,11 +63,11 @@ public class ServiceGenerator extends AsyncTask<Object, Object, AccessToken> {
         }
         try{
             body = call.execute();
+            accessToken = body.body();
             String isSuccess = Integer.toString(body.code());
             Log.i("SUCCESS", isSuccess);
             Log.i("REASON", body.message());
-            JSONObject jsonResult = new JSONObject(new Gson().toJson(body.body()));
-            //JSONObject access_token = jsonResult.getJSONObject("access_token");
+            JSONObject jsonResult = new JSONObject(new Gson().toJson(accessToken));
             Log.i("TOKEN", jsonResult.toString());
         }
         catch (IOException e){
@@ -75,15 +77,17 @@ public class ServiceGenerator extends AsyncTask<Object, Object, AccessToken> {
             e.printStackTrace();
         }
 
-        return data;
+        return accessToken;
 
     }
 
     @Override
     protected void onPostExecute(AccessToken accessToken) {
         if(!(accessToken == null)){
-            Intent i = new Intent(context, HomeActivity.class);
-            context.startActivity(i);
+            Intent i = new Intent(this.context, HomeActivity.class);
+            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            i.putExtra("access_token", accessToken.toString());
+            this.context.startActivity(i);
         }
     }
 
diff --git a/app/src/main/java/id/ac/ui/cs/myui/activity/HomeActivity.java b/app/src/main/java/id/ac/ui/cs/myui/activity/HomeActivity.java
index 0b39cfad4fe562960bd06970a818afd40110df94..4eb40925a27d4510ccde018ae6adefd63cc661f2 100644
--- a/app/src/main/java/id/ac/ui/cs/myui/activity/HomeActivity.java
+++ b/app/src/main/java/id/ac/ui/cs/myui/activity/HomeActivity.java
@@ -1,9 +1,11 @@
 package id.ac.ui.cs.myui.activity;
 
+import android.content.Intent;
 import android.support.annotation.IdRes;
 import android.support.v4.app.FragmentTransaction;
 import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
+import android.widget.TextView;
 
 import com.roughike.bottombar.BottomBar;
 import com.roughike.bottombar.OnTabSelectListener;
@@ -43,6 +45,10 @@ public class HomeActivity extends AppCompatActivity {
                     transaction.addToBackStack(null);
                     transaction.commit();
                     setTitle("MyUI");
+
+                    Intent i = getIntent();
+                    String accessToken = i.getStringExtra("acess_token");
+
                 }else if(tabId == R.id.tab_jadwal) {
                     //Use JadwalFragment
                     JadwalFragment jadwalFragment = new JadwalFragment();
diff --git a/app/src/main/java/id/ac/ui/cs/myui/activity/LoginActivity.java b/app/src/main/java/id/ac/ui/cs/myui/activity/LoginActivity.java
index 8738352a0e43282d0bacaf0b7c52bc605ef9211a..3f9730a2eeb4dec1bbbe43f1a2709c0c6da9cfb4 100644
--- a/app/src/main/java/id/ac/ui/cs/myui/activity/LoginActivity.java
+++ b/app/src/main/java/id/ac/ui/cs/myui/activity/LoginActivity.java
@@ -12,6 +12,12 @@ import android.util.Log;
 import android.view.View;
 import android.widget.Button;
 import android.content.Intent;
+import android.widget.Toast;
+
+import com.google.gson.Gson;
+
+import org.json.JSONException;
+import org.json.JSONObject;
 
 import java.io.IOException;
 
@@ -19,7 +25,12 @@ import id.ac.ui.cs.myui.AccessToken;
 import id.ac.ui.cs.myui.LoginService;
 import id.ac.ui.cs.myui.R;
 import id.ac.ui.cs.myui.ServiceGenerator;
+import okhttp3.OkHttpClient;
 import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+import retrofit2.Retrofit;
+import retrofit2.converter.gson.GsonConverterFactory;
 import retrofit2.http.Field;
 
 /**
@@ -29,7 +40,8 @@ import retrofit2.http.Field;
 public class LoginActivity extends AppCompatActivity {
 
     private final String clientId = "2bfJDNTlHhR9TJO6kQ5OsINqeMpNqFrudWOC8Vg9";
-    private final String redirectUri = "akuncs://localhost/";
+    private final String redirectUri = "akuncs://myui-dev.cs.ui.ac.id/";
+    private final String BACKEND_BASE_URL = "https://myui-dev.cs.ui.ac.id/backend/";
 
     @Override
     protected void  onCreate(Bundle savedInstanceState) {
@@ -45,7 +57,7 @@ public class LoginActivity extends AppCompatActivity {
             public void onClick(View v){
                 Intent intent = new Intent(
                         Intent.ACTION_VIEW,
-                        Uri.parse(ServiceGenerator.API_BASE_URL + "" + "oauth/authorize/?response_type=code&client_id=" + clientId + "&state=random_state_string"));
+                        Uri.parse(ServiceGenerator.AUTH_BASE_URL + "" + "oauth/authorize/?response_type=code&client_id=" + clientId + "&state=random_state_string"));
                 startActivity(intent);
             }
         });
@@ -64,6 +76,8 @@ public class LoginActivity extends AppCompatActivity {
             if (code != null) {
                 // get access token
                 try{
+
+//                    Do in background
                     ServiceGenerator serviceGenerator = new ServiceGenerator(getApplicationContext(),code);
                     serviceGenerator.execute();
                 }
diff --git a/app/src/main/java/id/ac/ui/cs/myui/fragment/MainFragment.java b/app/src/main/java/id/ac/ui/cs/myui/fragment/MainFragment.java
index cd52e9b7d2384782907382a83215eac7b3a709ec..669a9d718a2a1f871b636ce2625948a7d336ccf4 100644
--- a/app/src/main/java/id/ac/ui/cs/myui/fragment/MainFragment.java
+++ b/app/src/main/java/id/ac/ui/cs/myui/fragment/MainFragment.java
@@ -7,6 +7,7 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.LinearLayout;
+import android.widget.TextView;
 import android.widget.Toast;
 
 import id.ac.ui.cs.myui.R;