Author: 0xe5cf1bb88a59f9fc609689c681d1d14bfe7ce73a
Update Status: On Time
Project Health: On Track
Introduction
The LiveTeach project has been progressing well and on track. We have made very solid progress on the React dApp, and that has been helping design the smart contract which is also progressing well.
We have some examples with initial versions of some of the core teaching features.
The NPM code architecture for setting up classrooms is established.
We have got our continuous integration pipelines and infrastructure set up with links to the repos and test URLs in the last section of this update.
There is a google drive link with some screenshots and videos of various aspects of our progress.
Highlights
Infrastructure setup. We are working using the Atlassian Stack including Bitbucket, and we are pushing the repositories periodically to the liveteach Github repos listed in this update.
- Smart Contract
- We have a prototype monolithic contract which is quite complete but needs refactoring into separate small contracts
- It has a rich suite of unit tests.
- It implements OpenZeppelin’s AccessControl interface for Role based security
- It is integrated with the dApp with a development dApp build pointing to a verified contract that is published on Goerli
- Dapp
- We are currently using Cloudflare to host the dApp. We
- The UI framework has come on well
- We have adopted the Decentraland look and feel and have incorporated components that show users profile image.
- We have got a version Decentraland Map/Land picker component that shows a LAND preview.
- The smart contract is wired up and the Class Administrator is calling smart contract methods. Access to views is established by the AccessControl implementation on the smart contract.
- We got the main React views set up as expressed in the wireframes we have created.
- NPM Package
- Working example scene of seating management currently being brought into the NPM library.
- Working video and image viewers which sync using Peer to Peer comms
- Hand Raise functionality
- Establish code architecture of core functionality (e.g builders, factories, controllers etc)
- Work on end to end teacher flow. Will add a sequence diagram to Notion to illustrate
- Work on debug panel which various display verbosity levels (e.g. Student, Teacher, Developer)
- Documentation
- We have a cool documentation framework integrated into the dApp which lets us author all our documentation using Markdown.
Blockers
It’s not a blocker, but this is the closest thing we currently have to any blocker, and that is because we have reached a point on the smart contract where we need to split what is a prototype contract into multiple smaller contracts because we are now over the size limitation due to the maintenance functions required for each entity. And we also need to implement the OpenZeppelin unstructured proxy pattern so that we can update the logic of the contract while persisting data.
Next steps
- End-to-end experience involving Students and Teacher (see sequence diagram in Notion)
- Now we have a structure in the NPM library, we can start bringing features in from example scenes. This also leaves a unified approach to examples.
- Support instancing of classrooms (allow scenes to declare multiple classrooms which can be used in parallel)
- Work on 3D content viewer.
- Refactor the smart contract from monolithic contract into multiple small contracts
- Implement OpenZeppelin Proxy Pattern
- Start Design Work on Community Venue
- Community venue design to be started
- Write more documentation now we have documentation centre supporting markdown in the dApp including architectural diagrams to give overview of what is being provided.
- Publish locations of example scenes that are already developed into Genesis City, and allocate parcels so they future example scenes that are developed in October and November have somewhere to be deploy in GC.
- Create an example scene running in Worlds inc creation of a CI pipeline for that.
Additional notes and links
LiveTeach GitHub Repos
- GitHub - liveteach/liveteach-web3: LiveTeach dApp and Smart Contract Development
This is the repo with the most activity and the development build is being published via a CI pipeline to https://liveteach-develop.pages.dev - GitHub - liveteach/liveteach-examples: Example Liveteach Scenes
This contains prototypes and proof of concepts and is where features are refined before being represented in the NPM library - GitHub - liveteach/liveteach-package: The LiveTeach NPM Package.
This repo is the core package that gets published to NPM. Note that we are currently publishing from the internal Bitbucket server to NPM. We will move that flow from the open GitHub repo once the NPM library is a bit more established. - liveteach/liveteach-server · GitHub
This is a placeholder waiting for the hello world version of the reference server to be published. Currently it is using Terraform so we are working on how we will handle deployments infrastructure without Terraform. As such the Github repo doesn’t have code in it yet. - liveteach/liveteach-community-venue · GitHub
This has not yet been started but the repo is in place.
Link to NPM library
Link to Development build of dApp
Google Drive folder with screengrabs, videos etc that we´ll add as we go: