We deal with a lot of email validation with my company. i need a cool way to store the email addresses we have validated and let users check against them with their new csv files so we dont email people we shouldnt. I dont want to manage a db or any app infrastructure so i thought serverless with the interface being in slack would be the way to go. here is what we need
Serverless app that uses s3 to store email addresses as objects. ideally we can build this from slack so we dont need a or an app layer
object name should be the email address
the object should store the results of the spam rating like
bob@[login to view URL]
date:outcome1, outcome 2 (i call each of these "outcome sets")
date:outcome1, outcome 2
(we test emails from time to time which is why 1 email address can end up being in the system more than one time. we will maintain a single object but we will update it for each "test")
we need a couple of endpoints which will interface with slack
1- to upload a csv which has email with outcomes that need to be stored (this means updating existing objects or adding new ones if they are new). you can make sure not to duplicate entries by making sure the time/date isn't already on that object.
2- upload csv to scan it against the db 9s3 objects) we have. the outcome of this should be a csv that is given to the person that requested it in slack. when we write the objects we should prefix the path with the first letter of the email so we have some logical foldering. for example bob@[login to view URL] ends up in a folder of "b" this will also make querying faster since you will be able to jump to the letter prefix needed instead of scanning all of s3 for something. The output file for this is csv and is structured like
email address1, outcome set 1, outcome set 2, ....
email address, not found (this signifies that it is not in the s3 objects we have so far)
The csv file for uploading to add (service 1 above) will have the following structure
email, date, outcome 1, outcome 2,... outcome 5, ... if we have more columns you will just store them as more info on the json object. Note: a single upload will never have a dup email in it so you can assume just 1 "outcome set" per upload. when this is done, it would be nice if the bot told the user how many records were added as new or updated existing or failed.
what i need from you is a slack app that can handle taking the file from the user (type 1 or type 2) and handle sending it to aws gateway and lambdas to be processed. then sending the file or output back to the slack channel when done. We are totally fine if the output files are in s3 and you just link to them in slack
we should assume both types of uploads can have 100-200K rows in the csv.
would be great if you can test while developing on your aws account and then give us the needed info to update to our aws account.
would be great if you use [login to view URL] for this as your framework and you can use one of the following languages
GO - my top preference
python - second
nodejs - good but third
43 freelancere byder i gennemsnit $36/time for dette job
Hello. I can provide good service with any language as you want. so I can help you. I 'd like discuss with you via chatting. I will wait. Thank you! From Admetus!~