Davidportlouis /
doc_storage
Decentralized Application to store documents and files
Loading repository data…
XyonX / repository
Decentralized file storage & sharing app using IPFS and smart contracts — built with Next.js, Express, and Web3.
SliceVault is a decentralized file storage and sharing application built on Web3 technologies. It leverages IPFS for file storage and Ethereum smart contracts to securely store file metadata on the blockchain, ensuring transparency, immutability, and user control over their data.
Header section of SliceVault, featuring wallet connection and navigation
SliceVault allows users to:
The application consists of a React-based frontend and a Node.js backend, hosted in separate repositories:
Try it live at SliceVault.
File upload section of SliceVault, showcasing the intuitive UI
File Upload:
File Retrieval:
Smart Contract:
FileUploaded event for each upload, which includes details like file ID, CID, and uploader address.
Full view of the SliceVault application interface
Clone the Repositories:
git clone https://github.com/XyonX/slice.git
cd slice
git clone https://github.com/XyonX/slice-backend.git
cd slice-backend
Install Dependencies:
cd slice
npm install
cd slice-backend
npm install
Set Up Environment Variables:
.env file in the slice directory:
NEXT_PUBLIC_BACKEND_URL=http://localhost:5000
.env file in the slice-backend directory:
PRIVATE_KEY=your_ethereum_private_key
Deploy Smart Contract:
npm install -g truffle).truffle directory:
cd slice-backend/truffle
truffle migrate --network holesky
CONTRACT_ADDRESS in the backend code (e.g., controllers/uploadFile.js) with the deployed contract address.Run IPFS:
ipfs daemon
slice-backend/lib/ipfsClient.js.Start the Backend:
cd slice-backend
npm run server
Start the Frontend:
cd slice
npm run dev
Access the App:
Open http://localhost:3000 in a browser with MetaMask installed.
Connect Wallet:
Upload a File:
View Files:
Track Transactions:
The FileStorage.sol contract includes:
FileUploaded event.Deployed on the Holesky testnet at CONTRACT_ADDRESS.
slice)slice/
├── components/ # React components (e.g., FileUploader)
├── pages/ # Next.js pages
├── styles/ # Tailwind CSS
├── .env # Environment variables
└── package.json # Frontend dependencies
slice-backend)slice-backend/
├── controllers/ # API logic (e.g., uploadFile, getAllFiles)
├── lib/ # IPFS client
├── Uploads/ # Temporary file storage
├── truffle/ # Smart contract code and deployment
│ ├── contracts/ # Solidity contracts (FileStorage.sol)
│ ├── migrations/ # Truffle migrations
│ └── build/ # Compiled contract artifacts
├── .env # Environment variables
└── package.json # Backend dependencies
Contributions are welcome! Please:
git checkout -b feature/your-feature).git commit -m 'Add your feature').git push origin feature/your-feature).This project is licensed under the MIT License.
For questions or feedback, reach out via LinkedIn or open an issue on GitHub or GitHub (Backend).
Selected from shared topics, language and repository description—not editorial ratings.
Davidportlouis /
Decentralized Application to store documents and files