Giter Site home page Giter Site logo

roandevs / blueprnt Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 956 KB

A serverless image host built with NextJS and AWS technologies.

Home Page: https://blueprnt.net

License: GNU General Public License v3.0

Shell 0.20% CSS 4.29% JavaScript 85.67% HTML 9.85%
encryption image image-hosting javascript nodejs s3 serverless aws-ses rds-database vercel

blueprnt's Introduction

BluePrnt

Information

  • This is an image host built with NextJS which utilizes Vercel and many other technologies with the aim to be ran completely serverless and for free.

  • Technologies involve using: AWS S3 buckets for storage, AWS RDS for hosting a relational database and AWS SES for sending out emails for I.e. account recovery.

  • This project can be ran for free under Vercel and using AWS' free tier for services such as RDS, S3 etc. They obviously come with limitations such as 5GB max storage on S3 buckets for example.

  • You can also test or use the production version of this code: https://blueprnt.net.

Features

  • Lets you drag and drop as many images as you want and automatically uploads them to an S3 bucket that is configured with the project.

  • After uploading, it will automatically redirect you to the link containing your images displayed in order.

  • Includes a registration, login system and panel system where you can manage your account.

  • You can also view a gallery of your past uploaded images on the account panel.

  • Account system lets you generate an API key so you can configure ShareX or a screenshot client to upload images to your account specifically.

  • Client side encryption which lets you securely encrypt and decrypt your files. Since all the encryption & decryption functionality and passwords set are all done on the client-side/browser, this means that no one except you and whoever you share the password with can view the files. The password should only be known to you or the person intended to view the file.

  • Select a number of times an upload can viewed before being auto-deleted

  • Select how long an upload can viewed in seconds/minutes before being auto-removed from the DOM

  • Leave a note attached to the upload (max 3000 characters). Notes are also encrypted & decrypted on the client-side/browser which means that no one except you and whoever you share the password with can view the note.

Encryption-based upload in detail

  • No file read-able data or encryption passwords are sent to the server and all encryption & decryption processes take place on the client/browser only.

  • The encryption method utilizes NodeJS's crypto module and takes a buffer and a password and returns an encrypted version of the buffer, which is then sent as a file to the server. The server administrator receiving this (Vercel, AWS S3 or the site owner) would not be able to view or do anything with this buffer, as it was encrypted already before being sent to the server.

  • The decryption process will take the encrypted buffer of the file sent from the server and will take a password given by the user. It is technically impossible to view this file without the correct password. The password is then used in the decryption process, which then returns a buffer that is converted to a base64 string and then the string is used to attempt to render an image, audio or video on the page based on the file-type. If the file fails to load, then the decrypted buffer was not a valid file. It could only mean that the wrong password was given. Upon file loading failure, a function is auto-called to prompt the user to enter the correct password.

  • This means that anything you upload with the encryption feature enabled, cannot be viewed by any third party which includes the server Administrator running the project, Vercel, AWS etc.

Plans

  • Create a desktop-based screenshot client for Windows, MacOS and Linux with electron that utilizes the web-based features such as timers and encryption whilst auto uploading images based on screenshot events and storing the generated link in your clipboard.

  • Create a mobile app that auto uploads and generates a link from screenshot events.

blueprnt's People

Contributors

roandevs avatar

Stargazers

 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.