Coder Social home page Coder Social logo

architecture / 0x4447_product_front_porch Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rdpli/0x4447_product_front_porch

0.0 1.0 0.0 885 KB

๐Ÿ“ฆ This project was design to allow anyone to drop a digital packaged in front of your digital front porch.

Home Page: https://0x4447.com

License: MIT License

0x4447_product_front_porch's Introduction

๐Ÿ“ฆ Frontporch

This project was design to allow anyone to drop a digital package in front of your digital front porch. Ideal when someone has a an issue sending a big file that dosen't fit an email, or when less technical people don't know how to share a file using Dropbox or other similar services.

Just send your personal Frontporch URL, and that is it.

Frontporch Screen Shot

As security measure, not everyone will be able to drop a package. The site will query a special JSON file in S3 which have to contain a list of emails that can be used in the To filed. If no email is found the file upload won't work.

Lastly thanks to a SNS topic you will be notified every time there is a new file uploaded.

DISCLAIMER!

This stack is available to anyone at no cost, but on an as-is basis. 0x4447, LLC. is not responsible for damages or costs of any kind that may occur when you use the stack. You take full responsibility when you use it.

How to deploy

All you need to do to deploy this stack is click the button to the left and follow the instructions that CloudFormation provides in your AWS Dashboard. Alternatively you can download the CF file from here.

What will deploy?

Front Porch Diagram

This deployment will create the following resources:

  • 1x CloudFront
  • 1x CodeBuilds
  • 1x CodePipelines
  • 1x Cognito Identity Pool
  • 1x IAM Group
  • 3x S3 Buckets
  • 1x SNS

All project resources can be found here.

Manual Work

Email Database

After you deploy the stack, you will get a special bucket with a name that ends with -database. This bucket needs to contain a file called emails.json. The file should look something like this:

{
	"bob_example_com": "[email protected]",
	"sara_example_com": "[email protected]"
}

The key of the object is the simplified version of the email, and the value is he full email. The S3 query will take the email in the To field from the site, strip it all out of the unnecessary characters, and then perform a query to see if we get something back. If we get back a result, we know the email is know to the sender and we will allow the upload process.

To update the file, download it from S3, add the new email or edit an existing one, and re-upload it by overwriting the original file in S3.

SNS Subscription

Add your email to the created SNS subscription to receive notifications when a new file gets uploaded.

Pricing

All resources deployed via this stack will cost you money based on requests to the site and amount of file stored in S3.

How to work with this project

When you want to deploy the stack, the only file you should be interested in is the CloudFormation.json file. If you'd like to modify the stack, we recommend that you use the Grapes framework, which was designed to make it easier to work with the CloudFormation file. If you'd like to keep your sanity, never edit the main CF file ๐Ÿคช.

The End

If you enjoyed this project, please consider giving it a ๐ŸŒŸ. And check out our 0x4447 GitHub account, where you'll find additional resources you might find useful or interesting.

Sponsor ๐ŸŽŠ

This project is brought to you by 0x4447 LLC, a software company specializing in building custom solutions on top of AWS. Follow this link to learn more: https://0x4447.com. Alternatively, send an email to [email protected].

0x4447_product_front_porch's People

Contributors

davidgatti avatar dayofdoom avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.