An up to date video would be awesome!
To start, there’s the “What is SourceCred?” question. To answer this there could be a 5min overview/intro, but the focus here should be on the code. Then we can then have separate videos and presentations talking about SourceCred from a high level.
Then the first thing we want to figure out how to install SourceCred, how to deploy SourceCred, and how to hack on SourceCred. This will involve walking through verifying the dependencies and installing a fresh build of SourceCred. Hopefully this is quick and for further details people should refer to the README. Ideally this would allow someone to follow along with the video on their computer if they wanted.
Then we need to actually dive into the code. At the moment I see a few main parts:
- Foundational mechanisms that should “just work” such as the Markov chain and PageRank algorithms.
- SourceCred data structure components such as how the nodes and edges are created, referenced, and updated.
- Plugins to connect data into SourceCred.
- UI to see and interact with the underlying data.
These could be explored for 10 minutes each. Even though people won’t be using the foundational mechanisms it’s important (or at least interesting) to know what they are and how the other components interact with them. Then most of the time can be spent showing devs how data is structured, how state is created, and how to create plugins to modify/create that state. Then we can explore how to visualize and interact with that data, and how one might improve that aspect of the codebase too.
Overall it would be great if the video was 45-60 minutes:
- 5 min SourceCred intro
- 5 min dev env setup
- 10 min foundational mechanisms
- 10 min data structures
- 10 min plugins overview
- 10 min UI overview
- 5 min wrap up
In an ideal world we could do one of these every month so that there’s always an up to date fresh version that devs can watch to understand the codebase as well as how to contribute to the things that need work (plugins, UI, etc). Even just doing this every once in a while, however, would be great. That way someone can easily understand the system, how the pieces connect, and how they might contribute.
These are just a few ideas, but it would be great to get input from more developers too!
Also, @decentralion, do you happen to have a template/overview of your dev environment as well?