nceas / awards-bot Goto Github PK
View Code? Open in Web Editor NEWAward management bot for Arctic Data Center management
Award management bot for Arctic Data Center management
2021-06-25T09:40:01-0700
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
Attaching package: 'lubridate'
The following objects are masked from 'package:base':
date, intersect, setdiff, union
Debating whether or not to replace Sys.Date() calls within the code to a system variable called FROM_DATE
that is set to Sys.Date() initially
Currently the "database" is just a csv file. This could be expanded to a relational database with a general database of NSF awards, extensions of awards numbers, annual report correspondences, AON correspondences, etc.
This should probably be done as it would simplify some of the existing code, but the bot will run just fine for now.
Part of Awards-Bot functionality is dependent on the "Incoming Webhooks" app Slack used to maintain. It's since been deprecated, and so awards-bot needs to be switched over to a Slack App instead
Help create a basic portal that:
Reduces the activation energy required to get users to create a portal. Allows NSF program officers one location to access all the datasets related to the same award.
How far back in time should we go for the initial round of NSF award correspondences? For instance we can look for all awards < 2 years old and send initial correspondence emails. Or we could look for all non-expired awards and set up some email conditions, for instance:
Once the bot is up and running it will take care of new awards by itself, but we need to decide how to handle contacting existing NSF awards so as not to inundate them with emails at once.
This will allow us to be more flexible with our email strategy but also allowing the bot to automate some of the simpler tasks
Bot actions:
Data team user actions:
create_ticket_and_send_initial_correspondence
To reduce the dependencies that might be involved, see if it is possible to remove the use of dplyr and lubridate in the code and use base R instead
@jeanetteclark scanned through the code and only saw dplyr::bind_rows
so that there is a record in the database even if the main function stops unexpectedly
This particular code likely won't be added to this repository, but I'm creating this issue so I don't forget. Set up a bot similar to the submissions bot that notifies the members of #awardsbot on correspondences.
Matt also reported that a second initial email was also sent out after the initial emails sent using the 1.0.4 release so I'm not sure where the bug may be.
Bryce is re-writing a bunch of the NCEAS/rt
functions.
A couple PIs requested the option to unsubscribe from automatic notifications. We could build in a feature that reads replies and looks for specific text like "unsubscribe". An additional column would need to be added to the database csv file, subscribed
, that defaults to TRUE
and updates to FALSE
if they'd like to unsubscribe.
It could also be handled case by case, but that would require manually editing the database each time.
If we will be sending more than x initial emails, should we consider stopping the code, alerting the team in #awardsbot and ask the user to verify and run the code manually? Ie. have an argument in the main
function that overrides this.
Looking at previous history I wouldn't expect any more than 10 initial emails a day or 20 reminder emails.
This will hopefully allow for some human intervention and sanity checking prior to a large update.
NSF API does not return active awards flag. Can check that expired awards are still active by scraping the website
Hey @mbjones @aebudden @csjx @mpsaloha when you get a chance can you review the email templates that we're going to automatically email to NSF award recipients? They're located in this folder https://github.com/NCEAS/awards-bot/tree/master/inst/emails. Jesse, Kathryn and Marie already made edits, so hopefully there isn't much left to do.
The most time efficient method might be to just comment any proposed changes in this issue, although using a fork / PR works too. @mbjones could also grant push access to the repo - but that might be overkill for this issue.
Thanks!
add similar functionality as arcticbot where the bot checks RT for correspondence and sends a message to the channel to alert users to new email updates.
@csjx do you have the permissions in this repo to update that? (I don't have the permissions to access the settings needed to make the change)
Objective - to make PIs with arctic awards aware of the Arctic Data Center earlier in the process and put a face to the names
ℹ Rendering reprex...
pandoc: Unknown writer: gfm
Error: pandoc document conversion failed with error 9
Execution halted
Not sure why the bot is set up this way where if there is an error it automatically goes to render a reprex as I can't find any mention of it in the code base
A reminder for when Erin updates the website to check if these links are still valid and up to date:
Since we re-install awardsBot
to the server with every new release, it might be useful to have something like renv in place so the versions of packages used locally to test are consistent with what will be installed on awards bot - https://rstudio.github.io/renv/articles/renv.html.
slackr
that are being worked on regularly might have breaking changes that we might not have been keeping up with all the time - https://github.com/mrkaye97/slackr/releases/tag/v3.0.0A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.