diff --git a/packages/component-manuscript/src/components/ReviewReportCard.js b/packages/component-manuscript/src/components/ReviewReportCard.js
new file mode 100644
index 0000000000000000000000000000000000000000..077c7da4c98ab3e5ca643e18c85e89cce4b7b887
--- /dev/null
+++ b/packages/component-manuscript/src/components/ReviewReportCard.js
@@ -0,0 +1,91 @@
+import React, { Fragment } from 'react'
+import moment from 'moment'
+import { th } from '@pubsweet/ui'
+import { compose } from 'recompose'
+import { withJournal } from 'xpub-journal'
+import styled, { css } from 'styled-components'
+import { FileItem } from 'pubsweet-components-faraday/src/components/Files'
+
+const ReviewReportCard = ({ report = {}, journal: { recommendations } }) => (
+  <Root>
+    <Row>
+      <Label>Recommendation</Label>
+      {report.submittedOn && (
+        <Text>
+          Submitted on: {moment(report.submittedOn).format('DD.MM.YYYY')}
+        </Text>
+      )}
+    </Row>
+    <Row>
+      <Text>
+        {recommendations.find(r => report.recommendation === r.value).label}
+      </Text>
+    </Row>
+    <Spacing />
+    <Row left>
+      <Label>Report Text</Label>
+    </Row>
+    <Row>
+      <Text>{report.comments[0].content}</Text>
+    </Row>
+    <Spacing />
+
+    {!!report.comments[0].files.length && (
+      <Fragment>
+        <Row left>
+          <Label>Files</Label>
+        </Row>
+        <Row left>
+          {report.comments[0].files.map(file => (
+            <FileItem compact id={file.id} key={file.id} {...file} />
+          ))}
+        </Row>
+      </Fragment>
+    )}
+  </Root>
+)
+
+export default compose(withJournal)(ReviewReportCard)
+
+// #region styled-components
+const defaultText = css`
+  color: ${th('colorPrimary')};
+  font-family: ${th('fontReading')};
+  font-size: ${th('fontSizeBaseSmall')};
+`
+const Root = styled.div`
+  display: flex;
+  flex-direction: column;
+  margin: auto;
+  [role='listbox'] {
+    min-width: 280px;
+  }
+`
+const Text = styled.div`
+  ${defaultText};
+`
+const Label = styled.div`
+  ${defaultText};
+  text-transform: uppercase;
+  i {
+    text-transform: none;
+    margin-left: ${th('gridUnit')};
+  }
+`
+
+const Spacing = styled.div`
+  margin-top: ${th('gridUnit')};
+  flex: 1;
+`
+
+const Row = styled.div`
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  flex: 1;
+  box-sizing: border-box;
+  flex-wrap: wrap;
+  justify-content: ${({ left }) => (left ? 'left' : 'space-between')};
+  ${defaultText};
+`
+// #endregion
diff --git a/packages/component-manuscript/src/components/ReviewsAndReports.js b/packages/component-manuscript/src/components/ReviewsAndReports.js
index 976793bc6823cbcbe9b4a1887d7ee75800c4d8b2..62feede02d3d178b3b2b6384932328acd35087bc 100644
--- a/packages/component-manuscript/src/components/ReviewsAndReports.js
+++ b/packages/component-manuscript/src/components/ReviewsAndReports.js
@@ -7,6 +7,7 @@ import { compose, withHandlers, lifecycle, withProps } from 'recompose'
 import { ReviewerBreakdown } from 'pubsweet-components-faraday/src/components/Invitations'
 import ReviewersDetailsList from 'pubsweet-components-faraday/src/components/Reviewers/ReviewersDetailsList'
 import ReviewerReportForm from 'pubsweet-component-manuscript/src/components/ReviewerReportForm'
+import ReviewReportCard from 'pubsweet-component-manuscript/src/components/ReviewReportCard'
 import {
   selectReviewers,
   selectFetchingReviewers,
@@ -64,10 +65,7 @@ const ReviewsAndReports = ({
       <Root id="review-report">
         <Expandable label="Your Report" startExpanded>
           {report ? (
-            <div>
-              You have a submitted report with recommendation{' '}
-              {report.recommendation}
-            </div>
+            <ReviewReportCard report={report} />
           ) : (
             <ReviewerReportForm
               project={project}
diff --git a/packages/component-manuscript/src/components/SideBarActions.js b/packages/component-manuscript/src/components/SideBarActions.js
index 129ab2176adcbb181d0adddbbead1487fc4d5ee6..e31d92a43e2cb4ac057523a11b2afc4fbc9277e8 100644
--- a/packages/component-manuscript/src/components/SideBarActions.js
+++ b/packages/component-manuscript/src/components/SideBarActions.js
@@ -2,13 +2,17 @@ import React from 'react'
 import { th, Icon } from '@pubsweet/ui'
 import styled from 'styled-components'
 
-import ZipFiles from 'pubsweet-components-faraday/src/components/Dashboard/ZipFiles'
+import ZipFiles from 'pubsweet-components-faraday/src/components/Files/ZipFiles'
 import { MakeDecision } from './'
 
 const SideBarActions = ({ project, version, currentUserIs }) => (
   <Root>
     {currentUserIs('adminEiC') ? <MakeDecision /> : <div />}
-    <ZipFiles archiveName={`ID-${project.customId}`} fragmentId={version.id}>
+    <ZipFiles
+      archiveName={`ID-${project.customId}`}
+      collectionId={project.id}
+      fragmentId={version.id}
+    >
       <ClickableIcon>
         <Icon>download</Icon>
       </ClickableIcon>
diff --git a/packages/components-faraday/src/components/Dashboard/DashboardCard.js b/packages/components-faraday/src/components/Dashboard/DashboardCard.js
index 843736d4cec859d5ca50449aac9bb0f6bb106ad0..e2456344997492259fe08b99369f8d5f30f94ace 100644
--- a/packages/components-faraday/src/components/Dashboard/DashboardCard.js
+++ b/packages/components-faraday/src/components/Dashboard/DashboardCard.js
@@ -12,7 +12,7 @@ import {
 import AuthorsWithTooltip from 'pubsweet-component-manuscript/src/molecules/AuthorsWithTooltip'
 // import { AuthorsWithTooltip } from '@pubsweet/ui'
 
-import ZipFiles from './ZipFiles'
+import ZipFiles from '../Files/ZipFiles'
 import { InviteReviewers } from '../Reviewers/'
 import { selectInvitation } from '../../redux/reviewers'
 import { parseVersion, parseJournalIssue, mapStatusToLabel } from './../utils'
@@ -59,6 +59,7 @@ const DashboardCard = ({
           <RightDetails flex={2}>
             <ZipFiles
               archiveName={`ID-${project.customId}`}
+              collectionId={project.id}
               disabled={!hasFiles}
               fragmentId={version.id}
             >
diff --git a/packages/components-faraday/src/components/Dashboard/ZipFiles.js b/packages/components-faraday/src/components/Files/ZipFiles.js
similarity index 81%
rename from packages/components-faraday/src/components/Dashboard/ZipFiles.js
rename to packages/components-faraday/src/components/Files/ZipFiles.js
index 12f38e9a77e1e8a6c69e8ee3d469b859c494dcd6..44f894da70b3d99db34380c3a915679291d6eb87 100644
--- a/packages/components-faraday/src/components/Dashboard/ZipFiles.js
+++ b/packages/components-faraday/src/components/Files/ZipFiles.js
@@ -1,10 +1,12 @@
 import React from 'react'
+import qs from 'querystring'
 import PropTypes from 'prop-types'
 import { connect } from 'react-redux'
 import styled from 'styled-components'
 import { compose, withHandlers, withState } from 'recompose'
 
 import { Spinner } from '../UIComponents/index'
+import { currentUserIsReviewer } from '../../redux/reviewers'
 
 const createAnchorElement = (file, filename) => {
   const url = URL.createObjectURL(file)
@@ -25,13 +27,7 @@ const removeAnchorElement = (a, url) => {
   URL.revokeObjectURL(url)
 }
 
-const ZipFiles = ({
-  disabled,
-  fragmentId,
-  fetching,
-  children,
-  downloadFiles,
-}) => (
+const ZipFiles = ({ disabled, fetching, children, downloadFiles }) => (
   <Root onClick={!disabled ? downloadFiles : null}>
     {fetching ? <Spinner /> : children}
   </Root>
@@ -39,20 +35,28 @@ const ZipFiles = ({
 
 const cache = {}
 
+const reviewerFiles = ['manuscripts', 'supplementary']
+const defaultFiles = [...reviewerFiles, 'coverLetter']
+
 const Zip = compose(
-  connect(state => ({
+  connect((state, { collectionId }) => ({
     token: state.currentUser.user.token,
+    isReviewer: currentUserIsReviewer(state, collectionId),
   })),
   withState('fetching', 'setFetching', false),
   withHandlers({
     downloadFiles: ({
-      fragmentId,
-      collectionId,
+      isReviewer,
       token,
+      fragmentId,
       setFetching,
       archiveName,
     }) => () => {
-      const getUrl = `${window.location.origin}/api/files/${fragmentId}`
+      const getUrl = `${
+        window.location.origin
+      }/api/files/${fragmentId}?${qs.stringify({
+        fileTypes: isReviewer ? reviewerFiles : defaultFiles,
+      })}`
       if (cache[fragmentId]) {
         const fileName = archiveName || `${fragmentId}-archive.zip`