diff --git a/app/GroupMember.php b/app/GroupMember.php
index 74baec8490fa7bd7b84f76b303a1441e497c1439..84e39cecda5d432a0390b6db1edc2b8c601ea29e 100644
--- a/app/GroupMember.php
+++ b/app/GroupMember.php
@@ -19,6 +19,9 @@ class GroupMember extends Model
     protected $table = 'group_member';
     public $incrementing = false;
     protected $primaryKey = ['group_id', 'user_id'];
+    protected $fillable = [
+        'group_id', 'user_id'
+    ];
     /**
      * Set the keys for a save update query.
      *
diff --git a/app/Http/Controllers/GroupController.php b/app/Http/Controllers/GroupController.php
index 58505f4365919673268c461d3d4aaf370abf457d..138eae4a3df44d900f92d115438e91d4afbdb714 100644
--- a/app/Http/Controllers/GroupController.php
+++ b/app/Http/Controllers/GroupController.php
@@ -4,38 +4,40 @@ namespace App\Http\Controllers;
 
 use Illuminate\Http\Request;
 use App\Group;
+use App\GroupMember;
+use Illuminate\Support\Facades\DB;
 
 class GroupController extends Controller
 {
     public function store(Request $request) {
-        $validator = $this->validate($request);
+        $request->validate([
+            'group_name' => 'required',
+            'description' => 'required',
+            'user_id' => 'required',
+        ]);
+        $input = $request->all();
 
-        if ($validator->fails()) {
-            return response(json_encode([
-                'statusMessage' => 'Bad Request'
-            ]), 400);
-        } else {
-            $input = $request->all();
-            $isGroupExist = Group::find($input['group_id']);
+        
+        DB::beginTransaction();
 
-            if (is_null($isGroupExist)) {
-                $group = Group::create([
-                    'group_id' => $input['group_id'],
-                    'group_name' => $input['group_name'],
-                    'description' => $input['description']
-                ]);
-                $group->save();
-                
-                return response(json_encode([
-                    'statusMessage' => 'Success',
-                    'data' => $group->toArray()
-                ]), 200);
-            } else {
-                return response(json_encode([
-                    'statusMessage' => 'Bad Request'
-                ]), 400);
-            }
-        }
+        $group = Group::create([
+            'group_name' => $input['group_name'],
+            'description' => $input['description'],
+        ]);
+        GroupMember::create([
+            'group_id' => $group['id'],
+            'user_id' => $input['user_id'],
+            // 'role' => $input['role'],
+            'high_score' => 0
+        ]);
+
+        DB::commit();
+
+        
+        return response(json_encode([
+            'statusMessage' => 'success',
+            'data' => NULL
+        ]), 200);
     }
 
     public function show(Request $request, $groupId) {
@@ -56,7 +58,7 @@ class GroupController extends Controller
     }
 
     public function update(Request $request) {
-        $validator = $this->validate($request);
+        $validator = $this->validate2($request);
 
         if ($validator->fails()) {
             return response(json_encode([
@@ -101,7 +103,7 @@ class GroupController extends Controller
         }
     }
 
-    private function validate(Request $request) {
+    public function validate2(Request $request) {
         $input = $request->all();
         return Validator::make($input, [
             'group_name' => 'required'
diff --git a/app/Http/Controllers/GroupMemberController.php b/app/Http/Controllers/GroupMemberController.php
index 48c8cfd56bc0b03331bccfaef7c42f804651c81b..f1748b4274d33f635a8b05260ada829f05504eb3 100644
--- a/app/Http/Controllers/GroupMemberController.php
+++ b/app/Http/Controllers/GroupMemberController.php
@@ -5,12 +5,17 @@ namespace App\Http\Controllers;
 use Illuminate\Http\Request;
 use App\Group;
 use App\GroupMember;
+use App\User;
 use Validator;
+use Illuminate\Support\Facades\DB;
 
 class GroupMemberController extends Controller
 {
     public function store(Request $request) {
-        $validator = $this->validate($request);
+        $validator = Validator::make($request->all(), [
+            'group_id' => 'required',
+            'email' => 'required'
+        ]);;
 
         if ($validator->fails()) {
             return response(json_encode([
@@ -18,50 +23,61 @@ class GroupMemberController extends Controller
             ]), 400);
         } else {
             $input = $request->all();
-            $isGroupMemberExist = GroupMember::find($input['group_id'])::find($input['user_id']);
-            $groupMember = GroupMember::create([
-                'group_id' => $input['group_id'],
-                'user_id' => $input['user_id'],
-                'role' => $input['role'],
-                'high_score' => $input['high_score']
-            ]);
+            $user = User::where('email', $input['email'])->first();
+            if (is_null($user)) {
+                return response(json_encode([
+                    'statusMessage' => 'error',
+                    'data' => NULL
+                ]), 404);
+            } 
+            $groupMember = GroupMember::where([
+                'user_id' => $user->id,
+                'group_id' => $input['group_id']
+            ])->first();
+
 
-            $group = Group::find($groupId);
+            $group = Group::find($input['group_id']);
 
             if (is_null($group)) {
                 return response(json_encode([
                     'statusMessage' => 'Bad Request'
                 ]), 400);
             } else {
-                $groupMember->save();
-
+                if (is_null($groupMember)) {
+                    $groupMember = GroupMember::create([
+                        'group_id' => $input['group_id'],
+                        'user_id' => $user->id,
+                        // 'role' => $input['role'],
+                        'high_score' => 0
+                    ]);
+                }
                 return response(json_encode([
-                    'statusMessage' => ['Success'],
+                    'statusMessage' => 'success',
                     'data' => $groupMember->toArray()
                 ]), 200);
             }
         }
     }
 
-    public function show(Request $request, $groupId) {
-        $isGroupMemberExist = GroupMember::find($groupId);
-
-        if (is_null($groupMember)) {
-            return response(json_decode([
-                'statusMessage' => 'Not Found'
-            ]), 404);
-        } else {
-            $member = $group->toArray();
+    public function show($groupId) {
+        $group = Group::find($groupId);
 
+        if (!is_null($group)) {
+            $users = DB::table('group_member')->select('user_id','high_score','groups.created_at','groups.updated_at','group_id', 'group_name','description')->join('groups','group_member.group_id','=','groups.id')->where('group_id',$groupId)->get();
             return response(json_encode([
-                'statusMessage' => 'Success',
-                'data' => $member
+                'statusMessage' => 'success',
+                'data' => $users->toArray()
             ]), 200);
+        } else {
+            return response(json_encode([
+                'statusMessage' => 'error',
+                'data' => null
+            ]), 404);
         }
     }
 
     public function update(Request $request, $groupId, $userId) {
-        $validator = $this->validate($request);
+        $validator = $this->validate2($request);
 
         if ($validator->fails()) {
             return response(json_encode([
@@ -107,7 +123,7 @@ class GroupMemberController extends Controller
         }
     }
 
-    private function validate(Request $request) {
+    private function validate2(Request $request) {
         $input = $request->all();
         return Validator::make($input, [
             'role' => 'required',
diff --git a/app/Http/Controllers/TaskController.php b/app/Http/Controllers/TaskController.php
index 6f7c923cdfb88032214d4737a511c0db54465eec..6657927ba48d70f2a65a8b76d900a8404ff15b9f 100644
--- a/app/Http/Controllers/TaskController.php
+++ b/app/Http/Controllers/TaskController.php
@@ -22,14 +22,15 @@ class TaskController extends Controller
         $result = $request->has([
             'group_id',
             'taskname',
-            'description'
+            'description',
+            'status_kanban'
         ]);
         if ($result) {
             $form = [
                 'group_id' => $request->group_id,
                 'taskname' => $request->taskname,
                 'description' => $request->description,
-                'status_kanban' => Config::get('constants.STATUS_KANBAN.PRODUCT_BACKLOG')
+                'status_kanban' => $request->status_kanban
             ];
             $task = Task::create($form);
             return response(json_encode([
diff --git a/app/Http/Controllers/TasksMemberController.php b/app/Http/Controllers/TasksMemberController.php
index e8346e262d0e944db8caa855ecff7eb4238f6fc4..3bed309c378e1a4bffd06781ec634500c9bd9725 100644
--- a/app/Http/Controllers/TasksMemberController.php
+++ b/app/Http/Controllers/TasksMemberController.php
@@ -7,16 +7,21 @@ use App\TasksMember;
 class TasksMemberController extends Controller
 {
     public function addMember(Request $request) {
-        $user = $request->user();
         $result = $request->has([
             'task_id',
             'user_id'
         ]);
         if ($result) {
-            $memberTask = TasksMember::create([
+            $memberTask = TasksMember::where([
                 'task_id' => $request->task_id,
                 'user_id' => $request->user_id
-            ]);
+            ])->first();
+            if (is_null($memberTask)) {
+                $memberTask = TasksMember::create([
+                    'task_id' => $request->task_id,
+                    'user_id' => $request->user_id
+                ]);
+            }
             return response(json_encode([
                 'data' => $memberTask->toArray(),
                 'statusMessage'=> 'success',
@@ -31,7 +36,6 @@ class TasksMemberController extends Controller
 
 
     public function removeMember(Request $request) {
-        $user = $request->user();
         $result = $request->has([
             'task_id',
             'user_id'
@@ -41,7 +45,9 @@ class TasksMemberController extends Controller
                 'task_id' => $request->task_id,
                 'user_id' => $request->user_id
             ])->first();
-            $memberTask->delete();
+            if (!is_null($memberTask)) {
+                $memberTask->delete();
+            }
             return response(json_encode([
                 'data' => NULL,
                 'statusMessage'=> 'success',
diff --git a/app/Task.php b/app/Task.php
index e6f7d321f0ff31549885523992a203da7bdb017f..6bf23290e9289fd80828d63ee59e2121edc8fe27 100644
--- a/app/Task.php
+++ b/app/Task.php
@@ -6,6 +6,10 @@ use Illuminate\Database\Eloquent\Model;
 
 class Task extends Model
 {
+    protected $fillable = [
+        'group_id', 'taskname',
+        'description', 'status_kanban'
+    ];
     //
     public function members() {
         return $this->hasMany('App\TasksMember', 'task_id');
diff --git a/app/TasksMember.php b/app/TasksMember.php
index 4b985580ceb07fe9a22a6c736243a3f0477c7700..b910fbf0494f248ff9e86e9435d2bd7b3dabf04e 100644
--- a/app/TasksMember.php
+++ b/app/TasksMember.php
@@ -10,6 +10,9 @@ class TasksMember extends Model
     protected $table = 'tasks_member';
     public $incrementing = false;
     protected $primaryKey = ['task_id', 'user_id'];
+    protected $fillable = [
+        'task_id', 'user_id',
+    ];
     /**
      * Set the keys for a save update query.
      *
diff --git a/app/User.php b/app/User.php
index 70c22cb34f359599ffc0451cae09dee84cd1da79..0f83c51d5e62e7026d8a381270ce2fa9a55b544c 100644
--- a/app/User.php
+++ b/app/User.php
@@ -43,7 +43,7 @@ class User extends Authenticatable
     ];
 
     public static function getGroups($userId) {
-        $groups = DB::table('group_member')->select('user_id','high_score','groups.created_at','groups.updated_at','id', 'group_name','description')->join('groups','group_member.group_id','=','groups.id')->where('user_id',$userId)->get();
+        $groups = DB::table('group_member')->select('user_id','high_score','groups.created_at','groups.updated_at','group_id', 'group_name','description')->join('groups','group_member.group_id','=','groups.id')->where('user_id',$userId)->get();
         return $groups;
     }
 }
diff --git a/routes/api.php b/routes/api.php
index 2cd2d088d9fabaa138b83df9ab7705da65d05de0..962ae44378fd0da033718b99f6ec4cbff25b919f 100644
--- a/routes/api.php
+++ b/routes/api.php
@@ -23,31 +23,31 @@ Route::post('/logout', 'UserController@logOut');
 
 
 //User
-Route::get('/user/{userId}/groups', 'UserController@getGroups');
+Route::get('/user/{userId}/groups', 'UserController@getGroups'); //Bisa //Ambil Group yang dipunyai user
 
 
 //Task
-Route::post('/tasks', 'TaskController@store');
+Route::post('/tasks', 'TaskController@store'); //Bisa Menambah task
 Route::get('/tasks/{taskId}', 'TaskController@show');
 Route::put('/tasks/{taskId}', 'TaskController@update');
-Route::delete('/tasks/{taskId}', 'TaskController@delete');
+Route::delete('/tasks/{taskId}', 'TaskController@destroy'); //Bisa //Hapus Task
 
 //Task Member
-Route::delete('/task_member', 'TasksMemberController@removeMember');
-Route::post('/task_member', 'TasksMemberController@addMember');
+Route::delete('/task_member', 'TasksMemberController@removeMember'); //Bisa //delete member di task
+Route::post('/task_member', 'TasksMemberController@addMember'); //Bisa //Tambah member task
 
 //Get Group Task
-Route::get('/group/{groupId}/tasks', 'TaskController@getTasksFromGroupId');
+Route::get('/group/{groupId}/tasks', 'TaskController@getTasksFromGroupId'); //Bisa , ambil tasks dari suatu group
 
 //Group
-Route::post('/group', 'GroupController@store');
-Route::get('/group/{groupId}', 'GroupController@show');
+Route::post('/group', 'GroupController@store'); //Bisa //Bikin Group 
+Route::get('/group/{groupId}', 'GroupController@show'); // Bisa , ambil detail group
 Route::put('/group', 'GroupController@update');
 Route::delete('/group', 'GroupController@delete');
 
 //GroupMember
-Route::post('/group_member', 'GroupMemberController@store');
-Route::get('/group_member/{groupId}', 'GroupMemberController@show');
+Route::post('/group_member', 'GroupMemberController@store'); //Bisa //Nambah Group Member
+Route::get('/group_member/group/{groupId}', 'GroupMemberController@show'); //Bisa //Ambil member dari suatu group
 Route::put('/group_member/{groupId}/{userId}', 'GroupMemberController@update');
 Route::delete('/group_member/{groupId}/{userId}', 'GroupMemberController@delete');