---
title: "Introduction"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Introduction}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```
# algo
The `algo` package allows you to implement the [Algolia Places](https://community.algolia.com/places/) Address Search Auto Completion Menu on shiny Text Inputs.
## Setup
In order to use the Algolia Places JavaScript library, you'll need create a free [Places](https://community.algolia.com/places/pricing.html) application in which you can get an **ID** and an __API KEY__. The library is free up to 1,000 requests / day which is quite cool for most users.
After that, set your credentials within the __.Renviron__ file which can be opened with:
```{r, eval=FALSE}
# install.packages("usethis")
usethis::edit_r_environ()
```
Then, store the value of your credentials as follows:
```{r, eval = FALSE}
# These credentials are fakes and used to give you an idea
ALGOLIA_ID= LSKDFNSFSD
ALGOLIA_KEY= 29453SKVNEV43T3G3KVEEV
```
Finally, save your .Renviron file, close it and restart your R session.
## Installation
You can install the development version of `algo` from Github with:
```{r, eval=FALSE}
# install.packages("remotes")
remotes::install_github("feddelegrand7/algo")
```
## How to use the algo package
The `algo` package has two functions:
+ `use_algolia()`: you must put the `use_algolia()` function at the beginning of your shiny UI. It doesn't take any argument. It only allows you to activate the Algolia Places JavaScript library.
+ `algo()`: you'll implement an address search auto completion menu on any shiny text input using this function.
## Example
Run the following shiny app to get an idea about the package's features:
```{r, eval = FALSE}
library(shiny)
library(algo)
ui <- fluidPage(
use_algolia(),
textInput(inputId = "inp1", label = "Please introduce your address", width = "800px"),
algo(element = "#inp1", type = "address") # Don't forget to add the # to your ID
)
server <- function(input, output) {
}
shinyApp(ui, server)
```
## Code of Conduct
Please note that the algo project is released with a [Contributor Code of Conduct](https://contributor-covenant.org/version/2/0/CODE_OF_CONDUCT.html). By contributing to this project, you agree to abide by its terms.