## 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.


© 2024 Elias Weston-Farber. All rights reserved.