## Technologies and Tools
From the repository, the following technologies and tools were utilized:
- Programming Language: R
- Libraries:
- `httr` — for handling HTTP requests.
- `jsonlite` — for parsing and generating JSON data.
- `readr` — for reading and writing data.
- `dplyr` — for data manipulation.
- `purrr` — for functional programming tools.
- `tidyr` — for data tidying.
- `stringr` — for string operations.
- `magrittr` — for providing the forward-pipe operator.
- API: Smartsheet API
- Other Tools:
- GitHub — for version control and hosting.
- Roxygen2 — for documentation.
- RStudio project configuration.
## Functionality
The repository houses an R package named `rsmartsheet`, which serves as an SDK for interacting with the Smartsheet API. The primary functionalities of this package include:
- Managing Smartsheet sessions, such as setting API keys and working folders.
- Creating, modifying, and deleting sheets and their contents.
- Managing attachments, including uploading new ones and downloading existing ones.
- Retrieving various types of data from Smartsheet, such as sheets, workspaces, and reports.
- Specialized functions for handling data types within Smartsheet, like converting all columns to text numbers or colorizing rows based on specified HEX codes.
## Relevant Skills
- API Integration: Using the `httr` library to perform API calls to Smartsheet, handling authentication, and managing API responses.
- Error Handling: Robust error checking and validation, particularly in checking API keys and handling potential errors from API responses.
- Functional Programming: Utilizing `purrr` for operations on lists and applying functions over data structures seamlessly.
- Data Manipulation: Effective use of `dplyr` and `tidyr` for transforming and managing data sets.
- Documentation: Using Roxygen2 comments for documentation, which is a best practice in R package development.
## Example Code
```R
# Using httr to handle API request and response
set_smartsheet_api_key <- function(key) {
r <- httr::GET("https://api.smartsheet.com/2.0/sheets?&includeAll=false",
httr::add_headers('Authorization' = paste('Bearer',key, sep = ' ')))
if(grepl("errorCode",httr::content(r, "text"))){
stop("rsmartsheet Error: Your API key was invalid.")
}
pkg.globals$api_key <- key
}
```
## Notable Achievements
- Package Development: Creation of a comprehensive R package interfacing with a complex API, simplifying many tasks into user-friendly functions.
- Innovative Solutions: Implementation of a colorizing feature for Smartsheet rows based on HEX codes, showing a creative approach to enhancing user experience and data visualization.
- Community Contribution: By making this package open-source and available on GitHub, the developer contributes to the community, enabling others to interact with Smartsheet more effectively in R.
- The repository showcases a well-rounded skill set in R programming, API interaction, and package development, making it an excellent portfolio piece for roles involving data manipulation, backend development, or API integrations.