Giter Club home page Giter Club logo

delp's Introduction

DeLP - Decentralized Learning Platform

Table of Contents


Introduction

DeLP, short for Decentralized Learning Platform, is a blockchain-based platform designed to revolutionize the world of education. By utilizing blockchain technology, DeLP aims to enhance the security, transparency, and accessibility of educational services. These smart contracts serve as the foundation of the DeLP ecosystem, providing essential functionalities for managing courses, issuing certificates, and facilitating quadratic funding for educational projects.



Contracts Overview

1. DeLT Token Contract

  • The DeLT token is the native cryptocurrency of the DeLP platform.
  • DeLT.sol is an ERC20 token compliant with the Ethereum standard.
  • The contract is responsible for creating and managing DeLT tokens, including initial token distribution and burning excess tokens.
  • Total Supply: 1 billion (1e9) DeLT tokens with 18 decimal places.

2. Quadratic Funding Contract

Introduction to Quadratic Funding

Quadratic funding is a mechanism used to distribute matching funds among various projects based on the contributions received from donors. It aims to provide a fair and efficient way to support public goods or projects within a community. In this project, we utilize a specific variant of quadratic funding to allocate matching funds among participating projects.

QuadraticFunding.sol

  • This contract enables users to participate in quadratic funding for educational projects.
  • It calculates matching funds for projects based on contributions from users, promoting community-driven support for education.
  • Key functionalities include adding projects, contributing to projects, and enabling withdrawal of matching funds.

The Matching Funds Calculation

In this implementation of quadratic funding, the portion of funds allocated to each project is calculated using the following formula:

Portion = (ContributionsCount * sqrt(ContributionsAmount))^2

Where:

  • ContributionsCount is the count of contributions (donations) made to the project.
  • ContributionsAmount is a constant value associated with the project.

The formula computes the portion of matching funds by taking the square of the sum of the square roots of each contribution. This approach encourages a more equitable distribution of funds among projects that have received various levels of support.

Key Functions
  • calculatePortions()

The function calculates the portions (shares) for each project. It iterates through the list of projects, computes the portion for each project based on their contributions, and accumulates the total denominator value. The result is an array of portions representing each project's share of matching funds.

  • updateMatchingFunds()

The function is responsible for updating the matching funds for each project. It retrieves the total fund available for matching and the portions calculated using calculatePortions(). Then, it assigns matching funds to each project based on their computed portions. Projects with non-zero portions receive matching funds, and the number of projects with pending withdrawals is updated.


3. Soulbound Certificate Contract

Introduction to Soulbound Tokens

SoulBound Tokens are a unique type of digital asset that cannot be transferred or traded, ensuring their authenticity and exclusivity in various applications on the blockchain.

SoulBoundCertificate.sol

  • Soulbound Certificates can represent academic achievements and are issued using this ERC721-compliant contract.
  • This contract serves as a certificate issuance system using the Ethereum ERC721 standard. It introduces the concept of "Soul Bound Certificates," which have unique characteristics.
  • These certificates are secured on the blockchain and cannot be transferred or approved for transfer, ensuring their authenticity.
Key Components
  • ERC721 Overrides The contract overrides certain functions from the ERC721 standard, including transferFrom, safeTransferFrom, approve, and setApprovalForAll. These overrides essentially disallow the transfer and approval processes to ensure the non-transferable nature of the certificates.

  • SoulBoundTokenLimitations Error This is a custom error that is raised if anyone attempts to transfer or approve to transfer a Soul Bound Certificate. This error enforces the non-transferable nature of these certificates.


4. Course Management Contract

  • CourseManagement.sol facilitates the creation and management of courses, student enrollment, and the issuance of certificates. It inherits the QuadraticFunding and SoulBoundCertificate contracts to access its needed functionalities.
  • Quadratic funding is used to incentivize course creation and education-related projects. Each created course is added to the projects that can get funds from matching pool using quadratic funding mechanism.


Getting Started

For detailed deployment and configuration instructions, please refer to the Deployment Guide in this repository.


Use Cases

  • Educational Institutions: DeLP offers a transparent and secure platform for academic institutions to issue certificates and diplomas securely on the blockchain.

  • Course Creators: Educators can create and manage courses on the DeLP platform, attracting support through quadratic funding and issuing blockchain-secured certificates.

  • Students: Students can enroll in courses, contribute to educational projects, and earn certificates that are verifiable and tamper-proof.


Future Development

The DeLP project is actively developing additional features, such as improved user interfaces, identity verification systems, and integration with other blockchain networks to enhance the educational experience further.


Contributing

I welcome contributions from the community to help improve the DeLP platform. If you have ideas, bug fixes, or want to get involved, please feel free to submit pull requests or reach out to my social accounts.


License

This project is licensed under the MIT License.

delp's People

Contributors

mahdieh-amiri1 avatar

Stargazers

 avatar Azmuth | Σ🧠Ξ avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.