We wanted to build a project that helps grow the ecosystem. We conducted research and discovered that many blockchain protocols have educational projects that onboard developers into their ecosystem. We learnt that the effective developer education are highly scalable and often reward developers.

Hackathon participants had questions about how to get started and the Aelf-team had to support us. This shows a need for a platform where new developers using Aelf blockchain for the first time can learn how to build dapps on Aelf.

We also learnt the need for the platform to have a supportive community of developers helping one another.

Hence we designed an autonomous peer-to-peer learning platform to help easily onboard developers into the Aelf ecosystem. We focused on making it highly scalable and autonomous (self-sustainability).

We bring gamification of learning by rewarding learners to build projects based on what they learn in courses and also rewarding them to help others in the decentralized learning community.

What it does

Aelf Academy is a decentralized peer-2-peer Learn & Earn dApp with focus on growing the Aelf ecosystem through developer education.

Developers grow from zero to hero in their development journey on Aelf blockchain by taking curated courses, and they build Aelf dApps by completing quests at the end of each course.

The quests are moderated/evaluated by advanced learners. Learners earn from Quests and get rewards for evaluating and helping others in the community.


dApp Features

The dApp contains self-paced courses that teach development on Aelf blockchain in various levels, beginner, intermediate and advanced.

  • Each course has a fun Quest so that learners can build practical projects from what they learned in the course.
  • Learners can join Aelf Academy and enrol in courses and complete the quests.
  • A submitted quest is evaluated by Advanced level Aelf-Academy learners, and moderators. Moderators are experienced Aelf-developers. Moderation involves reviewing a quest and giving feedback and guidance to the developer in solving issues they may face.
  • A moderator can approve a quest submission, or reject the submission. The learner can submit another solution if the previous one was rejected.
  • Evaluation (aka moderation) is rewarded with Elf tokens, and learners are rewarded for successful quest completion.
  • An  approved quest moves the learner to the next level. A learner keeps advancing to the next level and subsequently becomes a moderator.

Aelf Academy smart-contract methods and what they do

  • Action methods that modify the contract state
    • Initialize: initializes the contract and sets the owner. It takes 2 parameters, admin and moderator objects. An admin can add courses to the academy and moderator is a user that can evaluate/moderate quests submitted by learners.
    • FundAcademy: used to make donations and add fund to the academy by transfering tokens from the transaction signer’s account. This is used to pay out rewards to the users.
    • AddCourse: adds a course to the academy
    • AddLearner: registers the caller as a learner.
    • AddAdmin: adds an admin to the academy, can only be called by owner or admin.
    • AddChiefModerator: adds chief moderator to the academy, can only be called by owner or admin.
    • SubmitChallenge: submits a learner’s entry to course quest, can only be called by learners.
    • ModerateChallenge: used to approve or reject a learner’s quest entry, can only be called by moderator and learners two levels above the course-level. This results in the moderation reward being transfered to the moderator (i.e. transaction signer*).* If the entry was approved, it also transfers reward to the learner and moves learner to the next level.
  • View methods that get data from the contract

    • GetAcademyInfo: returns an object of the academy info, including the balance of funds and list of admin users and chief-moderators.
    • GetLearners: returns list of registered learners.
    • GetUserInfo: returns a user information.
    • GetHighestLevel: returns an integer of the highest level a user can reach in the academy
    • GetCourse: returns details of a particular course by courseId including the course submission reward, moderation reward, level, course title and the url that points to the IPFS content identifier containing the course content data.
    • GetCourses: returns a list of all courses offered by the academy.
    • GetCourseSubmission: returns all the entries submitted by all learners to a course quest
    • GetLearnerSubmission: returns all the the entries submitted by a particular learner to all quests the learner has attempted.
    • GetFundingHistory: returns a list of the donation - amount and address of the donors.

    With all the above features, developers are incentivized to join Aelf ecosystem, build projects, and collaboration is encouraged in the community. The ecosystem grows exponentially and developer onboarding is simplified.

How we built it

  • We conducted research and defined the problem the project aims to solve
  • We designed the UI with Figma
  • We developed the smartcontract
  • We developed the frontend with React

Challenges we ran into

  • Building on Aelf the firstime required us to setup the development environment. It was challenging at first but the Aelf team was helpful.
  • We had issues deploying the smartcontract, we were helped by hackathon participants and the Aelf team.

Accomplishments that we're proud of

  • Deploying a fully functional well-written smartcontract on Aelf
  • Our project is unique and innovative
  • We have a well-designed user interface and the dApp has a great user experience
  • We also developed the smartcontract in a way that it can be used to create any decentralized learning platform. It is open-sourced.
  • The academy will accelerate developer journey on Aelf and provide the necessary foundation for Aelf dApp developers.

What we learned

  • Skills required to build smartcontracts on the Aelf blockchain
  • The developer learnt React during the hackathon, she usually uses Angular for the front end, because of some compatibility issues she faced when trying to use the Nightly-Aelf browser extension with the Angular project. It was a great experience overall.

What's next for AElf Academy. Learn+Build+Earn

  • Writing the courses content and the Aelf-team helping to review it
  • Launching for use by learners so that we can get feedback.
  • Adding discussion Forum to the dApp.
  • Adding more features like article writing by advanced Aelf-Academy users
  • Continuous improvement.

Built With

Share this project: