+
Peer Progress
+
+ {{project.unit.code}} — {{project.unit.name}}
+
+
+
+
+
Progress Summary
+
+ Track your progress toward your selected target grade based on completed tasks.
+
+
+
+
+
+
+
+
diff --git a/src/app/projects/states/dashboard/directives/core-progress-indicator/core-progress-indicator.coffee b/src/app/projects/states/dashboard/directives/core-progress-indicator/core-progress-indicator.coffee
new file mode 100644
index 0000000000..4e5939ebaa
--- /dev/null
+++ b/src/app/projects/states/dashboard/directives/core-progress-indicator/core-progress-indicator.coffee
@@ -0,0 +1,28 @@
+angular.module('doubtfire.projects.states.dashboard.directives.core-progress-indicator', [])
+
+.directive 'coreProgressIndicator', ['$http', 'DoubtfireConstants', ($http, DoubtfireConstants) ->
+ restrict: 'E'
+ scope:
+ project: '='
+ templateUrl: 'projects/states/dashboard/directives/core-progress-indicator/core-progress-indicator.tpl.html'
+
+ link: (scope) ->
+ scope.progress = null
+ scope.error = null
+
+ scope.$watch 'project', (project) ->
+ return unless project?
+
+ unitId = project.unit_id || project.unit?.id
+ studentId = project.user_id || project.user?.id || project.student?.id
+
+
+ return unless unitId? && studentId?
+
+ $http.get("#{DoubtfireConstants.API_URL}/peer_progress/#{unitId}/#{studentId}")
+ .then (res) ->
+ scope.progress = res.data
+ scope.error = null
+ .catch ->
+ scope.error = 'Unable to load progress data.'
+]
diff --git a/src/app/projects/states/dashboard/directives/core-progress-indicator/core-progress-indicator.tpl.html b/src/app/projects/states/dashboard/directives/core-progress-indicator/core-progress-indicator.tpl.html
new file mode 100644
index 0000000000..8ef5555b83
--- /dev/null
+++ b/src/app/projects/states/dashboard/directives/core-progress-indicator/core-progress-indicator.tpl.html
@@ -0,0 +1,34 @@
+