## 🎯 Project Overview
STORIUM represents the next generation of cloud storage, combining the security of
blockchain technology with the permanence of distributed storage. Unlike
traditional cloud storage services, STORIUM gives users complete control over their
data while ensuring permanent availability through IPFS.
### Key Value Propositions
- **True Ownership**: Files are owned by users, not platforms
- **Permanent Storage**: Files stored on IPFS cannot be deleted by third parties
- **Transparent Access Control**: All permissions managed through smart contracts
- **Censorship Resistant**: No central authority can remove or block files
- **Global Accessibility**: Access files from anywhere in the world
## 🌟 Features
- **Universal File Support:** Upload any file type - images, documents, videos,
audio, and more
- **Decentralized Storage:** Files stored on IPFS for permanent, censorship-
resistant storage
- **Smart Contract Access Control:** Blockchain-based permissions and ownership
management
- **Modern Interface:** Sleek yellow/black themed design with glassmorphism effects
- **File Management:** Search, filter, and organize your files with ease
- **Secure Sharing:** Grant or revoke access to specific users through smart
contracts
- **Real-time Updates:** Live file previews and status updates
- **Custom Cursor Effects:** Interactive mouse tracking with wave animations
- **Responsive Design:** Works seamlessly on desktop and mobile device
## Architecture Overview
### Frontend Architecture
```
src/
├── components/
│ ├── LandingPage.jsx # Entry point with branding
│ ├── ConnectWallet.jsx # Wallet connection interface
│ ├── Header.jsx # Navigation and user info
│ ├── FileUpload.jsx # File upload with metadata
│ ├── FileManager.jsx # Personal file management
│ ├── PublicExplorer.jsx # Browse public files
│ └── ShareManager.jsx # Access control management
├── App.jsx # Main application logic
└── main.jsx # React entry point
```
### Smart Contract Architecture
```
contracts/
└── GlobalStorage.sol # Core storage contract
```
### Technology Stack
- **Frontend**: React 18 with Vite build system
- **Blockchain**: Ethereum (Sepolia testnet)
- **Storage**: IPFS via Pinata gateway
- **Web3**: Ethers.js v5 for blockchain interactions
- **Styling**: Custom CSS with glassmorphism design
## Technologies Used
- **Solidity:** Smart contract for file ownership and access control
- **React:** Modern front-end interface with hooks and components
- **IPFS:** Decentralized file storage via Pinata gateway
- **Ethereum:** Sepolia testnet for smart contract deployment
- **Ethers.js:** Web3 library for blockchain interactions
- **Vite:** Fast development build tool
## 🔧 Smart Contract Deep Dive
### Core Data Structures
# 🌟 Features
- **Universal File Support:** Upload any file type - images, documents, videos,
audio, and more
- **Decentralized Storage:** Files stored on IPFS for permanent, censorship-
resistant storage
- **Smart Contract Access Control:** Blockchain-based permissions and ownership
management
- **Modern Interface:** Sleek yellow/black themed design with glassmorphism effects
- **File Management:** Search, filter, and organize your files with ease
- **Secure Sharing:** Grant or revoke access to specific users through smart
contracts
- **Real-time Updates:** Live file previews and status updates
- **Custom Cursor Effects:** Interactive mouse tracking with wave animations
- **Responsive Design:** Works seamlessly on desktop and mobile devicelStorage.sol
# Core storage contract
```
### Technology Stack
- **Frontend**: React 18 with Vite build system
- **Blockchain**: Ethereum (Sepolia testnet)
- **Storage**: IPFS via Pinata gateway
- **Web3**: Ethers.js v5 for blockchain interactions
- **Styling**: Custom CSS with glassmorphism design
## Technologies Used
- **Solidity:** Smart contract for file ownership and access control
- **React:** Modern front-end interface with hooks and components
- **IPFS:** Decentralized file storage via Pinata gateway
- **Ethereum:** Sepolia testnet for smart contract deployment
- **Ethers.js:** Web3 library for blockchain interactions
- **Vite:** Fast development build tool
## 🔧 Smart Contract Deep Dive
### Core Data Structures
#### FileInfo Struct
```solidity
struct FileInfo {
string fileName; // Original filename
string fileType; // Categorized type (image/document/video/audio/other)
string ipfsHash; // IPFS content identifier
#### FileInfo Struct
```solidity
struct FileInfo {
string fileName; // Original filename
string fileType; // Categorized type (image/document/video/audio/other)
string ipfsHash; // IPFS content identifier
uint256 fileSize; // File size in bytes
uint256 uploadTime; // Block timestamp
address owner; // File owner's wallet address
bool isPublic; // Public visibility flag
string description; // Optional metadata
string[] tags; // Searchable tags
}