Blockchain based File-Sharing System

This is a simple file-sharing system that uses blockchain technology to store files and their metadata. The system is built using the Ethereum blockchain and IPFS. The system allows users to upload files to the IPFS network and store the file's metadata on the Ethereum blockchain. The system also allows users to download files from the IPFS network using the file's metadata stored on the Ethereum blockchain.

The system is built using the following technologies:

Developer Setup

First, install the required dependencies:

npm install
# or
yarn install
# or
pnpm install
# or
bun install

Then, create a .env.local file in the root directory of the project and add the following environment variables:

GITHUB_ID=
GITHUB_SECRET=

GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

EMAIL_SERVER_USER=
EMAIL_SERVER_PASSWORD=
EMAIL_SERVER_HOST=
EMAIL_SERVER_PORT=
EMAIL_FROM=

DATABASE_URL=

NEXTAUTH_URL=
NEXTAUTH_SECRET=

PINATA_JWT=
NEXT_PUBLIC_GATEWAY_URL=
NEXT_PUBLIC_GATEWAY_TOKEN=

JWT_SECRET=

Then, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.