diff --git a/R/shiny-ui-base.R b/R/shiny-ui-base.R
index 088781eb7908945510d8b6b9a75f9fa3d9b1d7ef..993910e2c173eb2652f93518eb846075bf9d2d33 100644
--- a/R/shiny-ui-base.R
+++ b/R/shiny-ui-base.R
@@ -1414,6 +1414,7 @@ mk_shinyscreen_server <- function(projects,init) {
             create_plots(rvs$m)
         })
 
+
         observeEvent(input$make_report_b, {
             shinymsg("Started creating report. Please wait.")
             req(NROW(rvs$m$out$tab$flt_summ)>0)
@@ -1857,6 +1858,30 @@ mk_shinyscreen_server <- function(projects,init) {
             
         })
 
+        output$dwn_proj_b <- shiny::downloadHandler(
+                                        filename=function() {
+                                            format(Sys.time(), "project_%Y%m%d_%H_%M_%S.tar.gz")
+                                        },
+                                        content=function(file) {
+                                            pdir <- rvs$m$conf$project
+                                            shiny::req(!is.null(pdir) &&
+                                                       !is.na(pdir) &&
+                                                       (nchar(pdir) > 0))
+                                            ddir <- tempfile("projectdata",tmpdir=".")
+                                            if (dir.exists(ddir)) unlink(ddir,recursive=T)
+                                            dir.create(ddir)
+                                            srcfig <- file.path(pdir,'figures')
+                                            file.copy(from=srcfig,to=ddir,recursive=T,copy.date=T)
+                                            csvfns <- list.files(path=pdir,pattern=r"(.*\.csv$)",full.names=T)
+                                            ymlfns <- list.files(path=pdir,pattern=r"(.*\.y.ml$)",full.names=T)
+                                            pdffns <- list.files(path=pdir,pattern=r"(.*\.pdf$)",full.names=T)
+                                            fns <- c(csvfns,ymlfns,pdffns)
+                                            for (fn in fns) {file.copy(from=fn,to=ddir,copy.date=T)} 
+                                            tar(file,files=ddir,compression="gzip")
+                                            unlink(ddir,recursive=T)
+                                        })
+
+
         
 
 
diff --git a/inst/rmd/app.Rmd b/inst/rmd/app.Rmd
index a3feed576ea8979581e76924c7d8b2c4350bdc3d..89798f0be896ea0075d387eb6b1a7e5ffff98937 100644
--- a/inst/rmd/app.Rmd
+++ b/inst/rmd/app.Rmd
@@ -120,10 +120,9 @@ actionButton(inputId = "create_proj_b",
 <summary>Load an existing project</summary>
 
 All the existing projects are shown in the `Avaliable projects`
-list. Load the project by pressing `Select project` button.
-
-
+list. Load the project by pressing `Select project` button. 
 </details>
+
 ```{r, echo=F}
 selectInput('proj_list',
             label = "Select project",
@@ -133,12 +132,35 @@ actionButton(inputId = "load_proj_b",
 
 ```
 
+
 ##### Save project
 ```{r, echo=F}
 actionButton(inputId = "save_proj_b",
              label= "Save project")
 ```
 
+##### Download project
+
+<details> 
+<summary>Download results</summary>
+
+Button `Download project` only makes sense to be used if Shinyscreen is
+served over network. If this is the case, clicking this button will
+download plots and csvs generated in the project directory.
+</details>
+
+```{r, echo=F}
+downloadButtonRmd <- function (outputId, label = "Download", class = NULL, ...)  {
+     tags$a(id = outputId, class = paste("btn btn-default shiny-download-link", 
+        class), href = "", target = "_blank", download = NA, 
+        icon("download"), label, ...)
+ }
+
+downloadButtonRmd("dwn_proj_b",
+                  "Download project directory")
+```
+
+
 ##### Select input directory
 <details>
 <summary>More on input directories</summary>