Inspiration
Blockchain is an emerging technology that has the power to change the world in a positive way. When our team saw that Big Red Hacks was focused on innovating education, we knew that it would be a good opportunity to show the power behind Blockchain in this space.
What it does
This distributed education system allows for people all over the world, especially people in countries where easy access to education is not available, to access quality course content that is uploaded by instructors around the world. If this project were to take off there would be no central authority profiting off of the education, and through the use of Microsoft cognitive services, much of the grading could be autonomous. Through the use of other distributed technologies, such as IPFS (Interplanetary File System), the impact of being in a remote location and having poor access to centralized servers would be eliminated as larger course materials could be stored and distributed using IPFS hashes.
How we built it
The backend of the project is an Ethereum smart contract which was written in solidity. For larger course materials, IPFS hashes were stored in the contract instead, with the hashes linking the user to the content.
In this distributed education system, instructors have the extra permission to add and review students, and also add their own course content. The instructors are able to do this via a react.js app that lets them interact with the smart contract. For the proof of concept app that was created for this hackathon, we created two subjects that a student can learn through this app: Math equations which were solved using the python language, and English, specifically parts of speech practice that is automatically graded by Linguistic Analytics API that is part of Microsoft's Cognitive Services.
The frontend of this app was created using the Tkinter library for python. This frontend connects to an RPC client from the blockchain and pulls questions from the Ethereum smart contract. The user is able to unlock their account using their unique hash tied to the smart contract and facial recognition from Microsoft's cognitive services. They are then able to begin their problem set.
Challenges we ran into
The library that we wanted to use to pull data from the Blockchain through the RPC client only worked with python2. We realized this when we had already written almost all of our app using python3.
The majority of our team was new to using APIs. Getting the facial recognition API to work was a big challenge.
The team member who created out web app was completely new to react.js and encountered problems specifically with the usage of the 'this' reserved word. He was up all night trying to solve this problem.
Accomplishments that we're proud of
A team member that never used python before was able to grow from just beginning to use the language. To using the Microsoft Emotion API, to capturing frames using OpenCV and sending them to the Microsoft Facial Recognition API. This was incredible progress in just 24 hours.
As we mentioned before, one of the libraries that we wished to use only worked in Python 2, but it was essential to our project which was written all in Python 3. To solve this, we created two "listener" scripts with Python 2 and two caller scripts with Python 3, with data being put into csv files intermediately. This allowed us to use the Python 2 library that we needed to interact with the RPC and Ethereum smart contract.
What we learned
You tend to learn new skills very quickly when you are applying them to a project. We had people on our team that made incredible progress in such a short amount of time. As aforementioned, most of the members have never used an API before, and ended up implementing it into the final product!
What's next for D-EDU
If D-EDU were to continue we would need to somehow create an incentive for instructors to submit better content for people to study. This could be done through the use of some kind of ERC20 token in the contract that instructors could receive for submitting highly regarded content.
Also the user experience would have to improve. We would want to create a more seamless experience for our users through the front end.
Built With
- azure
- blockchain
- ethereum
- javascript
- python
- react
- solidity
- tkinter
- truffle

Log in or sign up for Devpost to join the conversation.