diff --git a/README.md b/README.md
index 52c50fd209f4654a8ce6bd045285177bbb417fd3..fa9b426af98d6bf3396e8c67116c7d67090574bb 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@ works great with typescript ecosystem.
 
 ## Development server
 
-Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
+Run `ng serve --proxy-config proxy.json` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
 
 ## Code scaffolding
 
diff --git a/src/app/core/data.service.ts b/src/app/core/data.service.ts
index 78d8f0f21c509fb0a57a2ad4197ffff0fc4dbd90..d3cb826cf993c74035ce52f5d5dbb63949cd3487 100644
--- a/src/app/core/data.service.ts
+++ b/src/app/core/data.service.ts
@@ -45,6 +45,11 @@ export class DataService {
 			.pipe(catchError(this.errorHandler));
 	}
 
+    getSubjectsMap(): Observable<Object> {
+        return this.http.get(this.searchApiUrl + '/subjectsMap/0000', httpOptions)
+            .pipe(catchError(this.errorHandler));
+    }
+
 	getFavoriteCourses(): Observable<FavoriteCourse[]> {
 		return this.http.get<FavoriteCourse[]>(this.plannerApiUrl + '/favorites')
 			.pipe(catchError(this.errorHandler));
diff --git a/src/app/degree-planner/degree-planner.component.html b/src/app/degree-planner/degree-planner.component.html
index 3fbf31de27c68c805033059672ee3d99e1678619..b2d765232aae423a5e1d70944f0c223b6fb9b9ee 100644
--- a/src/app/degree-planner/degree-planner.component.html
+++ b/src/app/degree-planner/degree-planner.component.html
@@ -1,7 +1,7 @@
 <mat-sidenav-container id="plans-container">
 	<!-- Menu side nav -->
 	<mat-sidenav #rightSideNav position="end" mode="side" [opened]="true" disableClose>
-		<cse-sidenav-menu-item [favoriteDropZone]="getTermDropZone()"></cse-sidenav-menu-item>
+		<cse-sidenav-menu-item [favoriteDropZone]="getTermDropZone()" [subjectsMap]="subjectsMap"></cse-sidenav-menu-item>
 	</mat-sidenav>
 
 	<!-- Add course sidenav -->
@@ -48,6 +48,7 @@
 									[courses]="termsByAcademicYear[year.key].terms[term.key]['courses']" 
 									[termCodes]="getTermDropZone()"
 									[termsByAcademicYear]="termsByAcademicYear"
+									[subjectsMap]="subjectsMap"
 									fxFlex="33%"
 								></cse-term-container>
 							</div>
diff --git a/src/app/degree-planner/degree-planner.component.ts b/src/app/degree-planner/degree-planner.component.ts
index 846f4c0481d184c2676c3026c5f2be4728bf5d07..b05de228d4032e62a4439f41c4e3a5442b851a59 100644
--- a/src/app/degree-planner/degree-planner.component.ts
+++ b/src/app/degree-planner/degree-planner.component.ts
@@ -17,6 +17,8 @@ export class DegreePlannerComponent {
 	selectedDegreePlan: number;
 	terms: Term[];
 	termsByAcademicYear: Object;
+	subjectsMap: Object;
+
 
 	constructor(private dataService: DataService) {
 		this.dataService.getDegreePlans()
@@ -51,6 +53,11 @@ export class DegreePlannerComponent {
 			}
 		});
 
+		this.dataService.getSubjectsMap()
+		.subscribe( subjectsMap => {
+			this.subjectsMap = subjectsMap;
+		});
+
 		this.dataService.getTerms()
 		.subscribe(terms => {});
 	}
diff --git a/src/app/degree-planner/favorites-container/favorites-container.component.html b/src/app/degree-planner/favorites-container/favorites-container.component.html
index 9c9ef4d2734769207a56fcfdb96fb0531bd1a57f..728914fdfc38b5e986f21dfc5df785fce00ca517 100644
--- a/src/app/degree-planner/favorites-container/favorites-container.component.html
+++ b/src/app/degree-planner/favorites-container/favorites-container.component.html
@@ -8,7 +8,12 @@
 		(cdkDropListDropped)="drop($event)">
 		<div class="course-wrapper" [cdkDragData]="course" *ngFor="let course of favoriteCourses" cdkDrag>
 			<div class="course-wrapper-inner">
-				<cse-course-item [course]="course" [status]="'favorite'" class="course-favorite"></cse-course-item>
+				<cse-course-item
+						[course]="course"
+						[status]="'favorite'"
+						[subject]="subjectsMap[course.subjectCode]"
+						class="course-favorite"
+				></cse-course-item>
 			</div>
 		</div>
 		<p *ngIf="!favoriteCourses || favoriteCourses.length === 0" class="no-courses text-center semi-bold">No Favorite Courses</p>
diff --git a/src/app/degree-planner/favorites-container/favorites-container.component.ts b/src/app/degree-planner/favorites-container/favorites-container.component.ts
index 756020a666883974eb5ff1fd850a4bbd4118b0e1..6c611678d6fc58de90992b5a156b77f7127e6b11 100644
--- a/src/app/degree-planner/favorites-container/favorites-container.component.ts
+++ b/src/app/degree-planner/favorites-container/favorites-container.component.ts
@@ -12,6 +12,7 @@ import { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/dr
 export class FavoritesContainerComponent implements OnInit {
 	favoriteCourses: FavoriteCourse[];
 	favoriteCourse: FavoriteCourse;
+	@Input() subjectsMap: Object;
 	@Input() favoriteDropZone: [];
 
 	constructor(private dataService: DataService) {
diff --git a/src/app/degree-planner/shared/course-item/course-item.component.html b/src/app/degree-planner/shared/course-item/course-item.component.html
index b3ceb5801664e188b35e3a306d6625b5473eefe3..3730f586c312b530fb5e89ee63c45972e4959d4e 100644
--- a/src/app/degree-planner/shared/course-item/course-item.component.html
+++ b/src/app/degree-planner/shared/course-item/course-item.component.html
@@ -2,7 +2,7 @@
   <div class="course-row course-info">
     <div class="icon-number-wrapper">
         <p class="course-number">
-            {{course.subjectCode}} {{course.catalogNumber}}
+            {{subject}} {{course.catalogNumber}}
         </p>
         <div [ngSwitch]="status">
             <i *ngSwitchCase="'complete'" class="material-icons complete-icon">check_circle</i>
diff --git a/src/app/degree-planner/shared/course-item/course-item.component.ts b/src/app/degree-planner/shared/course-item/course-item.component.ts
index 0e1cc14893661838579501105f04b9afb93f7202..3b783ab20d722c27f72469a3101abec74d079bf6 100644
--- a/src/app/degree-planner/shared/course-item/course-item.component.ts
+++ b/src/app/degree-planner/shared/course-item/course-item.component.ts
@@ -9,6 +9,7 @@ import { Course } from '../../../core/models/course';
 export class CourseItemComponent {
 	@Input() course: Course;
 	@Input() status: string;
+	@Input() subject: string;
 
 	constructor() {}
 
diff --git a/src/app/degree-planner/sidenav-menu-item/sidenav-menu-item.component.html b/src/app/degree-planner/sidenav-menu-item/sidenav-menu-item.component.html
index 384cca7f934f2a04b388796059a4ee0fd7599bcb..f7ffa7af3226bf51ff7b03e34e772b5cf8a02af9 100644
--- a/src/app/degree-planner/sidenav-menu-item/sidenav-menu-item.component.html
+++ b/src/app/degree-planner/sidenav-menu-item/sidenav-menu-item.component.html
@@ -20,7 +20,7 @@
 				<h3>Favorites</h3>
 			</mat-panel-title>
 		</mat-expansion-panel-header>
-		<cse-favorites-container [favoriteDropZone]='favoriteDropZone'></cse-favorites-container>
+		<cse-favorites-container [favoriteDropZone]='favoriteDropZone' [subjectsMap]="subjectsMap"></cse-favorites-container>
 	</mat-expansion-panel>
 
 	<mat-expansion-panel id="menu-items-container" expanded="true">
diff --git a/src/app/degree-planner/sidenav-menu-item/sidenav-menu-item.component.ts b/src/app/degree-planner/sidenav-menu-item/sidenav-menu-item.component.ts
index 185f8212c2ec8f646ba463411e48371d91c67fc3..9c32d9240b93329ea8499a19ba23703b3db2b392 100644
--- a/src/app/degree-planner/sidenav-menu-item/sidenav-menu-item.component.ts
+++ b/src/app/degree-planner/sidenav-menu-item/sidenav-menu-item.component.ts
@@ -9,6 +9,7 @@ export class SidenavMenuItemComponent implements OnInit {
 	events: string[] = [];
 	opened: boolean;
 	@Input() favoriteDropZone: [];
+	@Input() subjectsMap: Object;
 
 	constructor() { }
 
diff --git a/src/app/degree-planner/term-container/term-container.component.html b/src/app/degree-planner/term-container/term-container.component.html
index 8cfd400026610183d7c3883bd829fdf71b9600a2..211d4d33ceb5109523839b5d93aedb1e8e236acd 100644
--- a/src/app/degree-planner/term-container/term-container.component.html
+++ b/src/app/degree-planner/term-container/term-container.component.html
@@ -11,7 +11,12 @@
         (cdkDropListDropped)="drop($event)">
         <div class="course-wrapper" [cdkDragData]="course" *ngFor="let course of courses" cdkDrag>
             <div class="course-wrapper-inner">
-                <cse-course-item [course]="course" [status]="'in-progress'" (click)="openCourseDetailsDialog(course)"></cse-course-item>
+                <cse-course-item
+                        [course]="course"
+                        [status]="'in-progress'"
+                        [subject]="subjectsMap[course.subjectCode]"
+                        (click)="openCourseDetailsDialog(course)"
+                ></cse-course-item>
             </div>
         </div>
         <p *ngIf="!courses || courses.length === 0" class="no-courses text-center semi-bold">No Courses Taken</p>
diff --git a/src/app/degree-planner/term-container/term-container.component.ts b/src/app/degree-planner/term-container/term-container.component.ts
index a20077f40ff58a5ef1f254ac6a3736ac594ffa59..66a96025b7dc7528cf91a693af26ae38e7e6e27d 100644
--- a/src/app/degree-planner/term-container/term-container.component.ts
+++ b/src/app/degree-planner/term-container/term-container.component.ts
@@ -19,6 +19,7 @@ export class TermContainerComponent {
 	@Input() termCodes: String[];
 	@Input() termsByAcademicYear: Object;
 	@Input() course: CourseDetails;
+	@Input() subjectsMap: Object;
 
 	terms: any[];