purdueelectricracing / fullsend Goto Github PK
View Code? Open in Web Editor NEWAutomated email service for the Purdue Electric Racing team.
Home Page: https://full-send.herokuapp.com
Automated email service for the Purdue Electric Racing team.
Home Page: https://full-send.herokuapp.com
Next page should show the example email with the parts filled in. Also, show any errors (like mismatched fields). If approved, FULL SEND!
Send email notification to authenticated user with a report of who it was sent to
Base requirement to use with Outlook. However, it may be necessary to use Outlook APIs directly if a feature if required that isn't available on Graph endpoints.
Once we authenticate for the API, we don't want to lose that authentication. Perform checks every 5 minutes (notify through Sentry if it's found to be down), and every xx minutes (45 minutes) use refresh_token
to get the next token.
In case you don\u2019t know who we are
, supposed to be In case you don't know who we are
When I had two {{COMPANY}}
elements, only the first one was replaced.
Add a textbox that contains the email body and options to send individually or as BCC. Ideally, contains a list of parameters grabbed from the CSV and a list of parameters parsed in the email, make sure they line up.
https://stackoverflow.com/a/31136060/5615790
The user will authenticate with a key instead of a CSRF token, so ignore for the /api
routes.
When I do newline on content form, it's ignored in the email HTML.
Google form will have a form submit hook that immediately sends them a response email, can use the quick email to format
Use in place of database so data is still viewable to people without using the website. Eventually can move to a server-hosted database, but for now this will be quicker. Authenticate as [email protected] with all the server settings in heroku config.
Broken down from #3 , need a CSV parser to list out all items parsed.
Start using environment variables according to https://devcenter.heroku.com/articles/config-vars
Running app locally: https://devcenter.heroku.com/articles/heroku-local
Recommend button for callout if the subject or contents has callout
or call out
in the contents/title.
Change app permissions to create and send mail along with read.
Users shouldn't be able to auth if they don't have a @purdue.edu
email.
During one-on-one meeting, the lead should fill out a form that contains information about the person (name, email) - information that could be grabbed from interest form (use #21 to get all up-to-date info). Additionally, provide talking points and questions to ask the person.
The following must be collected: subteam recommendation, training recommendation. If the lead feels the student is capable enough where they don't require additional training (via the project), then don't include the part about training in the email.
Send to one individual with text boxes for each parameter instead of uploading the CSV.
Configuration in server doesn't allow for redirection back to https://full-send.herokuapp.com
Change permissions in Azure to allow for redirection
Grabbed from Sentry: https://sentry.io/share/issue/546d505def0e4686ad03ddea18f27422/
fuztyzcqipudmu is the name of the user when getting the ServerAuthentication
object from the database.
I think this issue is due to the fact that the scheduler has multiple jobs running at the same time, when only one is supposed to be running concurrently.
scheduler.add_job(refreshtoken, 'cron', minute='50', jitter=240)
Does not have max_instances
set, therefore it is calling to update the token multiple times (at the same time).
See update log -- notice how upwards of 6 "update" events are sent in an hour (expected 1-2):
https://sentry.io/share/issue/695f8d83db8f405cba5484a87610a66e/
Have templates folder in bizzop folder that allows us to use templates
Thought about having templates with the tool but determined it would be better to just use HTML on google drive in case people don't want to use the tool.
https://stackoverflow.com/questions/15170637/effects-of-changing-djangos-secret-key
https://stackoverflow.com/questions/4664724/distributing-django-projects-with-unique-secret-keys
Shouldn't change it once in production, but it's OK for now.
Based on #20, the exposed API needs to know what mail to send. There should be a type
in the api format that determines which title/body to use. This information should be uploaded to Google Drive (body as HTML), then queried.
Example:
API Query: type: formresponse
Google Drive (inside predefined folder): formresponse.html
contains the body of the email to be sent
Any email template currently requires a subject in content map:
(api/googleservice.py)
subject_map = {
'welcome': 'Thanks for filling out our interest form!',
'acceptance': 'Welcome to Purdue Electric Racing!',
}
content_map = {
'welcome': 'welcome.html',
'acceptance': 'acceptance.html',
}
Both of these can be done in the gist itself.
A 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.