diff --git a/scripts/CardListController.js b/scripts/CardListController.js
index 7a71727..ee1646f 100644
--- a/scripts/CardListController.js
+++ b/scripts/CardListController.js
@@ -43,5 +43,33 @@ angular.module('flashy.CardListController', ['ui.router']).
             $(document).off('keydown');
         });
 
+        // checkbox filter
+        $scope.filter = {
+          'week1': true,
+          'week2': true,
+          'week3': true,
+          'week4': true,
+          'week5': true,
+          'week6': true,
+          'week7': true,
+          'week8': true,
+          'week9': true,
+          'week10': true,
+        };
+
+        $scope.filterByDate = function(item) {
+          var date = new Date(item.pushed);
+          return ((date >= new Date('Mar 29, 2015')) && (date <= new Date('Apr 4, 2015')) && $scope.filter['week1']) ||
+                 ((date >= new Date('Apr 4, 2015')) && (date <= new Date('Apr 11, 2015')) && $scope.filter['week2']) ||
+                 ((date >= new Date('Apr 12, 2015')) && (date <= new Date('Apr 18, 2015')) && $scope.filter['week3']) ||
+                 ((date >= new Date('Apr 19, 2015')) && (date <= new Date('Apr 25, 2015')) && $scope.filter['week4']) ||
+                 ((date >= new Date('Apr 26, 2015')) && (date <= new Date('May 2, 2015')) && $scope.filter['week5']) ||
+                 ((date >= new Date('May 3, 2015')) && (date <= new Date('May 9, 2015')) && $scope.filter['week6']) ||
+                 ((date >= new Date('May 10, 2015')) && (date <= new Date('May 16, 2015')) && $scope.filter['week7']) ||
+                 ((date >= new Date('May 17, 2015')) && (date <= new Date('May 23, 2015')) && $scope.filter['week8']) ||
+                 ((date >= new Date('May 24, 2015')) && (date <= new Date('May 30, 2015')) && $scope.filter['week9']) ||
+                 ((date >= new Date('May 31, 2015')) && (date <= new Date('Jun 6, 2015')) && $scope.filter['week10']);
+        };
+
     }
 );
diff --git a/templates/cardlist.html b/templates/cardlist.html
index 2f8227c..e04e4dd 100644
--- a/templates/cardlist.html
+++ b/templates/cardlist.html
@@ -1,10 +1,66 @@
 <div class="row">
   <a class="btn" id="showHidden" ng-click="show = !show" style="margin-top: 15px">Show Hidden</a>
+  <form class="col s6">
+    <div class="input-field col s6">
+      <i class="mdi-action-search prefix"></i>
+      <input id="search" type="text" class="validate" ng-model="searchText">
+      <label for="search">Search</label>
+    </div>
+  </form>
+</div>
+
+<div class="row">
+  <form>
+    <div class="row">
+      <div class="col s2">
+        <input type="checkbox" class="filled-in" id="weekOneCheck" ng-model="filter['week1']"/>
+        <label for="weekOneCheck">Week One</label>
+      </div>
+      <div class="col s2">
+        <input type="checkbox" class="filled-in" id="weekTwoCheck" ng-model="filter['week2']"/>
+        <label for="weekTwoCheck">Week Two</label>
+      </div>
+      <div class="col s2">
+        <input type="checkbox" class="filled-in" id="weekThreeCheck" ng-model="filter['week3']"/>
+        <label for="weekThreeCheck">Week Three</label>
+      </div>
+      <div class="col s2">
+        <input type="checkbox" class="filled-in" id="weekFourCheck" ng-model="filter['week4']"/>
+        <label for="weekFourCheck">Week Four</label>
+      </div>
+      <div class="col s2">
+        <input type="checkbox" class="filled-in" id="weekFiveCheck" ng-model="filter['week5']"/>
+        <label for="weekFiveCheck">Week Five</label>
+      </div>
+    </div>
+    <div class="row">
+      <div class="col s2">
+        <input type="checkbox" class="filled-in" id="weekSixCheck" ng-model="filter['week6']"/>
+        <label for="weekSixCheck">Week Six</label>
+      </div>
+      <div class="col s2">
+        <input type="checkbox" class="filled-in" id="weekSevenCheck" ng-model="filter['week7']"/>
+        <label for="weekSevenCheck">Week Seven</label>
+      </div>
+      <div class="col s2">
+        <input type="checkbox" class="filled-in" id="weekEightCheck" ng-model="filter['week8']"/>
+        <label for="weekEightCheck">Week Eight</label>
+      </div>
+      <div class="col s2">
+        <input type="checkbox" class="filled-in" id="weekNineCheck" ng-model="filter['week9']"/>
+        <label for="weekNineCheck">Week Nine</label>
+      </div>
+      <div class="col s2">
+        <input type="checkbox" class="filled-in" id="weekTenCheck" ng-model="filter['week10']"/>
+        <label for="weekTenCheck">Week Ten</label>
+      </div>
+    </div>
+  </form>
 </div>
 
 <div class="list" style="padding: 0px 15px">
   <ul class="collection">
-    <li class="collection-item" ng-repeat="card in cards" ng-show="show || !card.is_hidden">
+    <li class="collection-item" ng-repeat="card in cards | filter:searchText | filter:filterByDate" ng-show="show || !card.is_hidden">
       <div>{{card.text}}<a href="unhide(card)" class="secondary-content" ng-show="card.is_hidden">Unhide</a></div>
     </li>
   </ul>