Skip to content

Latest commit

 

History

History
88 lines (58 loc) · 5.06 KB

README.md

File metadata and controls

88 lines (58 loc) · 5.06 KB
typescript nextdotjs tailwindcss

FileFusion

Filefusion is a decentralized, Web3 file-sharing and storage platform built on Apillon's infrastructure within the Polkadot ecosystem. It leverages blockchain technology to offer enhanced security, privacy, and user control over their data, while providing features similar to WeTransfer and Dropbox.

  1. ⚙️ Tech Stack
  2. 🔋 Features
  3. 🕸️ Snippets
Component Technology/Service
Authentication RainbowKit with SIWE and Iron Session
File Uploads Apillon SDK Storage
File Encryption / Decryption Apillon SDK Computing
Get Transferred / Uploaded Files Apillon SDK Storage
Decrypt encrypted file site Template forked from Apillon Phala Demo
Email Sending Functioality Nodemailer
  • Sign in with Wallet Connect (using Metamask, WalletConnect or Coinbase Wallet) Untitled design

Filefusion has three modes.

  • Storage Mode - The storage mode works like a basic version of dropbox. Users can upload files and get a shareable link to access their uploaded files
storage-mode Screenshot 2024-06-06 at 11 07 37 PM
  • Transfer Mode - Transfer mode functions as a web3 version of Wetransfer. Files are uploaded and transfered to recipient's email
transfer-mode
  • Private Mode - Files transferred using private mode are encrypted before they are uploaded and transferred to the recipient. User's get access to a decryption site in their email and only the wallet address with the designated NFT Key can access the file.
Screenshot 2024-06-10 at 4 18 07 PM
  • Access all of your files transferred and uploaded using FileFusion
Screenshot 2024-06-10 at 4 16 17 PM

Wallet Connect Project ID

Note: Every dApp that relies on WalletConnect now needs to obtain a projectId (NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID) from WalletConnect Cloud. This is absolutely free and only takes a few minutes. Once you get the Project ID from WalletConnect Cloud, you can set it as an environment variable in your project.

Iron Session Password

Iron Session will encrypt the session with the given secret key (NEXT_IRON_PASSWORD) You can generate a secret key using this code on your terminal openssl rand -hex 32 or go to https://generate-secret.now.sh/32

Environment Variables

  • NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID=
  • APILLON_COMPUTING_CONTRACT_UUID=
  • APILLON_BUCKET_UUID=
  • APILLON_API_KEY=
  • APILLON_API_SECRET=
  • EMAIL_USER=
  • EMAIL_PASS=
  • EMAIL_HOST=
  • NEXT_IRON_PASSWORD=

Clone the repository

git clone https://github.com/Ghost-xDD/FileFusion.git

Navigate to the project directory

cd FileFusion

Install dependencies

npm install

Start the application

npm run dev