In today's digital age, education is changing rapidly. Blockchain technology is playing a big role in this transformation by making education more innovative and transparent. Our project, a Decentralized Application (Dapp), is leading the way in this educational revolution. It offers a new way for course creators to share their knowledge, for learners to find and use courses, and for reviewers to get rewards for their feedback.
- Introduction
- Installation
- The problem it solves
- Challenges we ran into
- TRACK
- Smart Contract
- Project Gallery
- Technologies we used
- Future Improvement
- Video Demo
- Contributing
In today's world, where everything is going digital, education is also changing dramatically. People are constantly seeking new knowledge, and this has sparked a major transformation in the way we learn. One big reason for this change is blockchain technology, which has opened up exciting possibilities for creating transparent and innovative platforms. These platforms are reshaping how courses are not only developed and bought but also how we assign value to them.
Imagine our project as a pioneer in this educational revolution. We've built a special kind of app called a Decentralized Application or Dapp, and it's right at the forefront of this exciting transformation.
Our vision is to create a global ecosystem that democratizes education, making it accessible, affordable, and reliable for everyone. We believe that every individual has the potential to be both a learner and a teacher, and our Dapp is designed to empower them to do so. By harnessing the power of blockchain technology, we aim to remove intermediaries, reduce costs, and enhance trust in the educational marketplace.
| Deployed On | URL |
|---|---|
| Vercel | https://edudev-learn-and-earn-platform-dappathon-season-2.vercel.app/ |
To run the Edu.dev locally, follow these steps:
- Clone the repository:
git clone https://github.com/DiveDev21/Edudev-Learn-and-earn-platform-Dappathon-Season-2- Navigate to the project directory:
cd Edudev-Learn-and-earn-platform-Dappathon-Season-2/Frontend- Node Re-versioning
export NODE_OPTIONS=--openssl-legacy-provider- Install the dependencies:
npm install --legacy-peer-deps- Start the development server:
npm run dev- Access the dApp: Open your web browser and visit http://localhost:3000 to interact with the EduDev application.
A single API Route is responsible for creating a token for file uploads. Make sure to rename .env.example to .env and get your token as mentioned in the Spheron Browser Upload Docs.
API routes can be accessed on http://localhost:3000/api/hello. This endpoint can be edited in pages/api/upload.ts.
The Dapp addresses several critical issues in the realm of education and online course marketplaces, offering innovative solutions to these challenges:
Centralized Intermediaries: Traditional online course platforms often rely on centralized intermediaries, leading to higher fees and potential data privacy concerns. Our Dapp eliminates the need for these intermediaries by leveraging blockchain technology, resulting in lower costs for both creators and learners.
Limited Access to Quality Content: Many learners struggle to find high-quality courses that suit their needs and preferences. Our decentralized marketplace democratizes course creation, allowing a diverse range of creators to offer content, thereby expanding access to a wealth of knowledge.
Trust and Transparency: Trust is paramount in education, but it's often lacking in online platforms. Blockchain technology ensures transparency and data integrity, as all course-related information and transactions are recorded in an immutable ledger, mitigating concerns about fraudulent or misleading content.
Incentivizing Reviews: Encouraging users to provide valuable feedback and reviews can be a challenge. By rewarding reviewers with NFTs, our Dapp incentivizes the community to actively participate in the review process, enhancing the overall quality of the educational offerings.
Ownership and Control: Many content creators on centralized platforms have limited control over their content and pricing. Our Dapp empowers creators by allowing them to maintain ownership of their courses and set their own prices, fostering a creator-friendly environment.
Data Security and Privacy: Data breaches and privacy concerns are growing issues in the digital age. The Dapp addresses these concerns by securely storing all course-related data on the Spheron SDK, ensuring that user information and transaction history are protected.
Exclusive NFT Rewards: Providing NFT rewards for reviewers adds a unique and engaging element to the platform. Users can collect NFTs representing their achievements and contributions, creating a sense of community and value beyond just course content.
Smart contract:
-
Building scalable smart contracts is a challenging task that requires hard work and dedication. Despite the difficulties, we were able to make it happen. Our main challenge was to make the contract dynamic and responsive to all users. For instance, if a user adds a course, it should only be visible on their dashboard, not to everyone who logs in to the DApp.
-
Additionally, we faced significant difficulties in enabling users to resell courses. We wanted to allow users to buy and sell courses at different prices, and we had to ensure that the marketplace displayed the new price, but only to the user. Making it dynamic and connecting it to the marketplace was a challenge.
-
Verifying our smart contract on the Polygon testnet was another particular challenge. We had to use BUNZZ decipher for documentation, so we spent several hours figuring it out. We eventually found a solution. We bundled our smart contract on Remix, which allowed us to deploy it on the Polygon testnet without providing ABI info and library information.
Frontend:
-
The biggest challenge that I faced was to make the website compatiable with the browser and the device. This is the first thing which is to be kept in mind as a front-end developer to ensure that the website looks good and performs well on all existing browsers and devices with different screen sizes.
-
Next thing was to deal with the performance of the website. Since, if the website gives good performance and does the task in a speedy manner then it can reach to many problems and solve their issues. So, optimising the code is the next big task.
-
Debugging is another big challenge. Finding and fixing errors in code can be a tedious task at times. Developers can use browser dev tools, error console, and testing to debug their code effectively.
It is a decentralized application platform (dApp) that allows developers to build, deploy, and scale their web applications on a global network of servers. Spheron aims to make it easier and more affordable for developers to launch their dApps, by providing them with access to a reliable and scalable infrastructure.
Spheron offers a number of features that make it a popular choice for dApp developers, including:
- Easy deployment: Spheron makes it easy to deploy dApps with a few simple clicks. Developers can simply push their code to Spheron and their dApp will be up and running in minutes.
- Global reach: Spheron has a global network of servers, which means that dApps deployed on Spheron can be accessed by users from all over the world.
- Scalability: Spheron is designed to be scalable, so that dApps can handle even the highest traffic loads.
- Affordability: Spheron is very affordable, with pricing that is significantly lower than traditional cloud hosting providers.
For detaailed description of storage sdk please refer this blog storage SDK Please refer to the official page for a comprehensive explanation of the deployment process. Spheron deployment
**In this project we are using Spheron SDK for storing the metadata and Spheron deployment for deploying our site **
Browser Upload SDK
The Spheron Browser Upload SDK is a JavaScript library that enables seamless uploading of files from the browser to IPFS, Filecoin, or Arweave. This simplifies the process of building decentralized applications (dApps) that can securely and reliably store and share data. To use the SDK, developers first generate an upload token by creating a server endpoint that utilizes the Spheron Storage SDK. Once the upload token has been created, developers can conveniently upload files from their web application. The SDK offers various features to simplify the file-uploading process, including progress tracking, automatic error handling, and the ability to cancel uploads at any time.
The below image is the Dapp fontend view where we are using SDK
**The below image is the metadata store where all files are uploaded **
Here's the Full metadata stored in the browser SDK
A single API Route is responsible for creating a token for file uploads. Make sure to rename .env.example to .env and get your token as mentioned in the Spheron Browser Upload Docs.
API routes can be accessed on http://localhost:3000/api/hello. This endpoint can be edited in pages/api/upload.ts.
Deployment in spheron
There are two types of deployment available in Spheron.
-
Static site deployment
-
Build your website or web application into a static site. This can be done using a variety of tools and frameworks, such as Hugo, Gatsby, and Next.js.
-
Connect your Git repository to Spheron.
-
Create a new project on Spheron and select the "Static Site" deployment type.
-
Select the Git repository that contains your static site.
-
Configure the deployment settings. This includes the protocol that you want to use to deploy your static site (IPFS, Filecoin, or Arweave), the domain name that you want to use for your static site, and the HTTPS settings. Deploy your static site.
For a detailed explanation you can follow this blog written by me static deployment
-
-
Dynamic deployment using Spheron compute
- We are using API endpoint for storage browser SDK so that's why we have to move into the dynamic deployment.
For dynamic deployment please follow this blog Spheron dynamic deploymen
-
Dynamic deployment in the context of the Spheron blog post you linked to refers to the deployment of Next.js applications that use the Spheron Storage SDK to store and retrieve data. This allows developers to build Next.js
applications that can dynamically load and display data from decentralized storage networks, such as IPFS, Filecoin, and Arweave. -
Dynamic deployment on Spheron offers a number of benefits, including:
- Decentralization: Dynamically deployed Next.js applications are decentralized, meaning that they are not hosted on any single server. This makes them more resistant to censorship and attack.
- Scalability: Dynamically deployed Next.js applications are scalable, meaning that they can be easily scaled to handle high-traffic loads.
- Cost-effectiveness: Dynamically deployed Next.js applications are cost-effective, as they are hosted on decentralized storage networks that are typically more cost effective than traditional hosting providers.
We are using BUNZZ decipher for smart contract documentation and it's very handy and useful.
Buzz is a comprehensive platform that offers a smart ecosystem for managing and deploying smart contracts. With Bunzz, users can easily find, deploy, and manage reviewed contracts, making the process efficient and hassle-free. Key Features:
- Wide Range of Supported Chains: Bunzz supports over 100 chains, including popular ones like Ethereum, Polygon, Avalanche, BSC, and more. This allows users to deploy their contracts on their preferred EVM-compatible chain.
- AI-Generated Documentation: Bunzz's innovative feature, Bunzz DeCipher, provides AI-generated documentation for contracts. This ensures that users have clear and comprehensive documentation for their contracts, making them easier to understand and work with.
- Reviewed Contracts from Industry Experts: By using Bunzz, users gain access to a vast library of reviewed contracts created by industry experts. This ensures the reliability and security of the contracts, giving users peace of mind.
- Simplified Deployment: Bunzz simplifies the deployment process by providing an intuitive user interface. Users can easily deploy their contracts on any EVM chain without the need for extensive technical knowledge.
- Popular Contract Templates: Bunzz offers a collection of popular contract templates for various use cases, including NFTs, DeFi platforms, ERC20 tokens, and DAOs. These templates serve as a starting point for users, saving them time and effort in contract development.
For a detailed explanation, you can read this official blog: Bunzz Decipher
Here's the contract address link deployed on Polygon: https://mumbai.polygonscan.com/address/0xF2B8a621d0F517e9F756fDC2E69d2d70eB968174
Here's is the Bunzz decipher AI generated docs for smart contract
We are not using this in our project due to less time but if someone want to know about Router then can read this.
The Router chain is a layer 1 blockchain that leverages tendermint’s Byzantine Fault Tolerant (BFT) consensus engine. As a Proof of Stake (PoS) blockchain, the Router chain is primarily run by a network of validators with economic incentives to act honestly. The Router chain is built using the Cosmos SDK and encapsulates all the features of Cosmos, including fast block times, robust security mechanisms, and, most importantly, CosmWasm - a security-first smart contract platform. By leveraging the CosmWasm toolkit, developers can start building secure blockchain applications on the Router chain from scratch or port their existing applications to the Router chain with minimal overhead.
In simple term let's suppose you have deployed ur nft or any dapp in polygon network then if any user don't have any matic in their wallet rather they have eth testnet then with the helps of router chain network he/she can min or use the dapp with the eth testnet as well.
Here's is the full information about how can you build your first dapp using router https://devnet-docs.routerprotocol.com/develop/message-transfer-via-crosstalk/evm-guides/your-first-crosschain-nft-contract
We are making an Education Dapp marketplace I used Decipher for the documentation, Below if the full description
The Education Marketplace Smart Contract is a blockchain-based solution designed to create, buy, and sell educational courses on the Ethereum blockchain. This document provides a comprehensive overview of the smart contract, its functionality, and key components.
- Understanding Educational Courses
- Purpose of the Education Marketplace Contract
- Key Components of the Education Marketplace Contract
Educational courses in the context of the Education Marketplace are unique digital assets representing various learning materials and programs. Unlike cryptocurrencies like Bitcoin or Ethereum, educational courses are non-fungible, meaning each course is distinct and cannot be exchanged on a one-to-one basis. These courses can cover a wide range of subjects, including online tutorials, skill development programs, academic courses, and more.
The Education Marketplace Contract serves as a decentralized platform for educational content creators and students. Its primary functions are as follows:
-
Creating Courses: Educators can mint new educational courses, assign them a unique course ID, and list them for sale in the marketplace.
-
Listing Courses for Sale: Educators can list their courses for sale, setting a price in Ether (ETH), the native cryptocurrency of the Ethereum blockchain.
-
Enrolling in Courses: Students can enroll in listed courses by sending the specified amount of Ether to the contract. Upon enrollment, they gain access to the course materials, and the course creator is compensated.
The Education Marketplace Contract consists of several key components:
-
State Variables: These variables store the contract's current state, including the listing price, contract owner, and mappings linking course IDs to market items.
-
Structs: Custom data structures, such as the
MarketItemstruct, group together information about each educational course, including its course ID, creator, owner, price, and whether it has been sold. -
Events: Ethereum events are used to log important activities on the blockchain, such as when a new course is listed for sale.
-
Functions: These functions allow users to interact with the contract, including creating courses, listing courses for sale, enrolling in courses, and managing course listings.
| Technology | Description | URL |
|---|---|---|
| Next Js | JavaScript framework for building server-rendered or statically-generated applications | https://nextjs.org/ |
| Tailwind CSS | Utility-first CSS framework for rapidly building custom designs | https://tailwindcss.com/ |
| Hardhat | Ethereum development environment | https://hardhat.org/ |
| Etherjs | Ethereum JavaScript API | https://docs.ethers.org/v5/ |
| Polygon | Polygon (formerly known as Matic Network) is a Layer 2 scaling solution for Ethereum that enables faster and cheaper transactions on the blockchain. It leverages Ethereum as its main backbone while adding its own network of sidechains, allowing for efficient scaling and interoperability with other Ethereum-based systems. | https://polygon.technology/ |
| Spheron | It is a decentralized application platform (dApp) that allows developers to build, deploy, and scale their web applications on a global network of servers. | https://spheron.network/ |
| Bunzz | Buzz is a comprehensive platform that offers a smart ecosystem for managing and deploying smart contracts. | https://www.bunzz.dev/ |
| Router | Decentralized blockchain platform for building Cross Chain decentralized applications | https://devnet-docs.routerprotocol.com/ |
Our Dapp has already introduced an exciting and innovative way for users to create, purchase, and review courses, complete with NFT rewards. As we continue to evolve and enhance our platform, we have some exciting plans for the future:
-
Dynamic Course Review Section: We recognize the importance of fostering a dynamic and engaging learning community. In the near future, we aim to implement a dynamic course review section. While it's still in the planning phase due to time constraints, this feature will enable users to share their thoughts, insights, and questions about a course in real-time. This will further enhance the collaborative and interactive learning experience within our platform.
-
Course Overview: To provide users with a comprehensive understanding of what a course offers, we will introduce a "Course Overview" feature. Alongside the "Buy" button, there will be an additional "Course Overview" button. By clicking on it, potential buyers can access detailed information about the course, including its objectives, curriculum, and instructor credentials. This will help learners make more informed decisions about their course purchases.
-
Full Content Blog Integration: To enrich the educational experience, we are exploring the possibility of integrating a full-content blog section into our Dapp. This blog will serve as a valuable resource, offering additional insights, articles, and supplementary materials related to the courses available on our platform. This content will be seamlessly integrated into our smart contracts, providing users with a wealth of educational resources in one place.
These future improvements align with our commitment to creating an educational ecosystem that is not only decentralized and secure but also dynamic and user-centric. We are dedicated to continuously enhancing the learning experience for our users and expanding the opportunities for both creators and learners within our platform. Stay tuned for these exciting updates as we strive to make education more accessible and engaging for all.
Contributions to Algo-Media are always welcome! If you'd like to contribute, please follow these guidelines: Fork the repository.
Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name
Commit your changes:
git commit -m 'Add some feature'
Push the branch:
git push origin feature/your-feature-name
Open a pull request.
We appreciate your contributions and thank you for helping us improve Algo-Media!
![]() |
Show some ❤️ by giving 











