Photo upload summary report

Published

21 April 2026 at 15:09

Raw Entries

All individual entries loaded from the source CSV file.

Code
entries <- read_csv("combined_data.csv")
last_modified<-"21 April 2026 at 6:30AM"

entries |>
  reactable(
    searchable  = TRUE,
    filterable  = TRUE,
    striped     = TRUE,
    highlight   = TRUE,
    bordered    = TRUE,
    resizable   = TRUE,
    defaultPageSize = 10,
    showPageSizeOptions = TRUE,
    pageSizeOptions     = c(5, 10, 20),
    theme = reactableTheme(
      headerStyle = list(background = "#2c3e50", color = "#ffffff",
                         fontWeight = "600"),
      stripedColor = "#f4f7fb"
    )
  )

Summary by File Source, State, District & Date

Entries grouped and counted by File Source, State, District, and Date.

Code
summary_tbl <- entries |>
  group_by(file_source, state, district, date) |>
  summarise(n_entries = n(), .groups = "drop") |>
  arrange(date, state, district)

summary_tbl |>
  reactable(
    searchable  = TRUE,
    filterable  = TRUE,
    striped     = TRUE,
    highlight   = TRUE,
    bordered    = TRUE,
    resizable   = TRUE,
    defaultPageSize = 10,
    showPageSizeOptions = TRUE,
    pageSizeOptions     = c(5, 10, 20),
    defaultSorted = list(date = "asc"),
    columns = list(
      file_source = colDef(name = "File Source"),
      state       = colDef(name = "State"),
      district    = colDef(name = "District"),
      date        = colDef(name = "Date", format = colFormat(date = TRUE)),
      n_entries   = colDef(
        name     = "# Entries",
        align    = "center",
        style    = function(value) {
          if (value >= 3) list(fontWeight = "bold", color = "#1a6e3c")
          else            list(color = "#555")
        },
        cell = function(value) {
          bg <- if (value >= 3) "#d4edda" else "#e9ecef"
          span <- htmltools::tags$span(
            style = paste0(
              "display:inline-block; padding:2px 10px;",
              "border-radius:12px; background:", bg, ";"
            ),
            value
          )
          as.character(span)
        },
        html = TRUE
      )
    ),
    theme = reactableTheme(
      headerStyle = list(background = "#2c3e50", color = "#ffffff",
                         fontWeight = "600"),
      stripedColor = "#f4f7fb"
    )
  )