---
title: "Development plan"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Development plan}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
```

# Immediate

## December 2021

As of 3rd Dec 2021, the package seems to be doing much of the below except anything to do with native apps. The next step should be to submit it as it is t CRAN. The rationale for this is that although we cannot generate a single file TGVE yet, the R package can be used to drive visualization using up to date API variables of the front-end.

Current [functions](https://tgve.github.io/tgver/reference/index.html) are enough to be called an MVP and get the package on CRAN and publish a JOSS entry. 

## November 2021
[Done]The current plan is to do use a different approach of using the TGVE npm package in this R package compared to how it is used in `geoplumber`. This is done mainly by bundling latest releases of the npm package within this package. This means not relying on npm/yarn tools for JavaScript (JS) building and bundling. As the `tgve` npm package has (see the docs) API settings to explore geospatial data, we can use R to do this without relying on the underlying JS toolchains.

[Done - mvp] We can then look at the required functions to enable workflows. For instance, a typical case would be for the package to look at a data directory and understand the data format and serve it to the front end to consume without JS builds.

[Done - mvp]Another use case would be to enable embedding `tgve` within Rmarkdowns and indeed Jupyter notebooks (both with challenges). At the moment this looks like it needs changes to be made to the npm package so that not only API and environement variables are accepted but also URL (query) variables are also accepted. If this can be achieved, then we can theoretically embed the HTML bunlded in this package within Rmarkdowns and any other browser based data science workflows.

The third use case would be to see how bundled/downloaded native apps (see the docs) generated using Rust based Tauri apps can also be driven from R or the platform (operating system) as this is not possible from browsers (of course this is possible within NodeJS).

# Long term

Subject to the REG discussions going on these avenues are open for discussion:

* Spatial/VIS AI integration/functions
* Automate updating the bundled instance in some way.
* Advanced visualization algorithms or at least vignettes to showcase the spatial R power
* DBMS/SQL/NoSQL connections?
