OpenEdStore Decentralised Educational Storage Platform
A decentralised application (dApp) that enables secure, scalable, and cost-effective storage of educational content, such as research papers, course materials, and administrative records—leveraging Filecoin's decentralised storage network, IPFS for content addressing, and FVM-based smart contracts for automated storage deal management.
- Overview
- Features
- Architecture
- Getting Started
- Usage
- Smart Contracts
- UI/UX Design
- Contributing
- License
Educational institutions often face challenges with traditional storage systems, including scalability issues, high costs, and data security concerns. OpenEdStore addresses these challenges by:
- Utilising IPFS for decentralised file storage and content addressing.
- Employing Filecoin's network for incentivised, verifiable storage.
- Implementing FVM-based smart contracts to automate storage deal management, verification, and renewals.
- Providing a user-friendly interface for educators, students, and administrators to manage educational content seamlessly.
- Decentralized Storage: Store educational content across a distributed network, ensuring high availability and resilience.
- Automated Deal Management: Smart contracts handle storage deal initiation, verification, and renewal without manual intervention.
- Storage Renewal Notifications: Users receive timely notifications before their storage deals expire, allowing them to renew or sign a new deal.
- Access Control: Role-based permissions ensure that only authorized users can access or modify content.
- User-Friendly Interface: Intuitive dashboards for uploading, managing, and retrieving educational materials.
- Cost Efficiency: Leverage Filecoin's marketplace to optimize storage costs.
- Frontend: Built with React.js, providing responsive dashboards for different user roles.
- Backend: Node.js server handling API requests, user authentication, and off-chain metadata storage.
- Smart Contracts: Solidity contracts deployed on FVM to manage storage deals, access control, and verification processes.
- Storage: Files are uploaded to IPFS, with storage deals made on the Filecoin network to ensure persistence and reliability.
- Node.js (v14 or later)
- Yarn or npm
- Hardhat (for smart contract development)
- Metamask or any Web3-compatible wallet
-
Clone the repository:
git clone https://github.com/yourusername/educational-storage-platform.git cd educational-storage-platform -
Install dependencies:
yarn install # or npm install -
Configure environment variables:
Create a
.envfile in the root directory and add the necessary configurations:REACT_APP_IPFS_API_URL=your_ipfs_api_url REACT_APP_FILECOIN_API_URL=your_filecoin_api_url REACT_APP_CONTRACT_ADDRESS=your_smart_contract_address
-
Start the development server:
yarn start # or npm start
-
Upload Files: Users can upload educational materials through the dashboard. Files are added to IPFS, and a CID is generated.
-
Initiate Storage Deal: The platform automatically initiates a storage deal on the Filecoin network using the generated CID.
-
Access Control: Set permissions for each file to control who can view or edit the content.
-
Monitor Storage Deals: View the status of storage deals, including verification results and renewal schedules.
LMS SDK
OpenEdStore provides a Software Development Kit (SDK) to integrate decentralized storage functionality into Learning Management Systems (LMS).
SDK Features:
Easy file upload to IPFS and Filecoin from within an LMS
CID retrieval and access control integration
Notifications for storage deal expiration
Lightweight and easy-to-implement modules
Coming Soon:
SDK documentation and implementation examples
Plugins for Moodle, Canvas, and other popular LMS platforms
Upload Files: Users upload educational materials via the dashboard. Files are added to IPFS, generating a CID.
Initiate Storage Deal: The platform automatically initiates a storage deal on Filecoin using the CID.
Access Control: Set role-based file permissions.
Monitor Storage Deals: View deal status, verification results, and receive renewal alerts.
Extend/Sign New Deal: Upon notification, users can extend or initiate a new storage deal.
OpenEdStore utilizes several smart contracts deployed on the Filecoin Virtual Machine (FVM):
- StorageDealManager.sol: Handles initiation, verification, and renewal of storage deals.
- AccessControl.sol: Manages user roles and permissions for accessing content.
- Verification.sol: Integrates with Filecoin's proof mechanisms to verify data integrity.
Contracts are written in Solidity and can be found in the contracts/ directory. Deployment scripts and configurations are located in the scripts/ and hardhat.config.js files, respectively.
The user interface is designed with accessibility and ease of use in mind:
- Dashboard: Provides an overview of storage usage, active deals, and recent activity.
- File Manager: Allows users to upload, download, and manage files.
- Access Settings: Enable users to set permissions and share content securely.
- Notifications: Alerts users about storage deal statuses, upcoming renewals, and verification results.
Contributions are welcome! Please follow these steps:
-
Fork the repository.
-
Create a new branch:
git checkout -b feature/your-feature-name
-
Make your changes and commit them:
git commit -m "Add your message here" -
Push to your fork:
git push origin feature/your-feature-name
-
Open a pull request detailing your changes.
This project is licensed under the MIT License.
Authors & Acknowledgements @Beutife – Project Lead
Contributors – @Abidoyesimze @oluwatomilola , @oluwasina97
Special thanks to Filecoin, IPFS, FVM, and the open-source community
For more information on building with Filecoin, IPFS, and FVM, consider exploring resources like the FIL-Frame starter repository and the [Filecoin Virtual Machine documentation](https://docs.filecoin.io/smart-contracts/fundamentals

