---
title: "Getting Started with teal.reporter"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Getting Started with teal.reporter}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

## Introduction
While engaging with data analysis within a `shiny` app, 
users often encounter insights that they wish to capture and share, be it through presentations, `markdown` articles, or other formats.
The `teal.reporter` package simplifies the process for both developers and end-users of `shiny` applications.
It allows for easy generation and dissemination of findings.
This eliminates the need for manual copy-pasting or writing in markdown.

`teal.reporter` provides a suite of modules and objects that integrate seamlessly to create reports directly from `shiny` apps with minimal effort for users and developers.

And it can be done as easy as adding one of the reporting tools to your module:

```{r}
library(teal.reporter)
library(shiny)

ui <- fluidPage(simple_reporter_ui("simple"))
server <- function(input, output, session) {
  # The bulk of your module logic here

  create_module_card <- function(card) {
    card$append_text("This is the content of the report from the `simple` module")
  }
  simple_reporter_srv("simple", Reporter$new(), create_module_card)
}

if (interactive()) shinyApp(ui, server)
```

## Where to next
### Basic usage
For the basic usage of `teal.reporter` and the quickest way to enhance your modules with reporting, explore
[the simple reporting setup vignette](./simpleReporter.html).

### Previewing a report
To enable application users to preview, customize, and reorder reports prior to finalization, delve into 
[the report previewer vignette](./previewerReporter.html).

### Integration with `teal`
Discover how teal.reporter complements the [`teal`](https://insightsengineering.github.io/teal/) framework by visiting the dedicated [on integrating reporting in `teal`.](https://insightsengineering.github.io/teal/latest-tag/articles/adding-support-for-reporting.html).

### More control
Developers who want more control over the reporting process and customization of the layout can benefit from learning about  topics such as `add_card_button`,`download_report_button` and `reset_report_button` offered by `teal.reporter`.