Links to mockups, prototypes, live sites and pitches: ---------------------------------------------EduVault------------------------------------------ EduVault demo: EduVault pitch deck: Intro video: Article about EduVault, with diagrams: EduVault Figma wireframes: ---------------------------------------------IPFC------------------------------------------ IPFC pitch deck: IPFC Github: IPFC webapp live site: IPFC Firefox Add-on: Article about why EdTech and IPFC needs a decentralized architecture: IPFC Figma wireframes: Description: Currently, most educational software products (EdTech apps) rely on company-siloed data approach. It can be incredibly difficult for users to take the data (like flashcards and vocabulary) generated in one app to use in another app. EduVault will be a user-owned cloud data store where users can retain control of their learning progress and educational achievements, keep flashcards and notes, and much more. Our MVP goal is to fully integrate our already existing open source flashcard app, Inter Planetary Flash Cards (IPFC), with a new authentication and storage solution: EduVault. The MVP will be a data wallet system for EdTech applications. It will allow users to have control over their own educational data, permissioning it to other apps as they see fit. The MVP will include a signup, login, and authentication frontend/backend, and will create APIs for EdTech apps to store and access data. Users will be able to bring their data with them between apps, and apps could provide high levels of data ownership and interoperability to their users. The MVP will leverage the ThreadDB protocol from, built on IPFS. The WHY: One of the biggest promises of the internet is it can bring knowledge to every corner of the world. Resources like Wikipedia have helped with that immensely. Unfortunately, many of the EdTech tools for gaining and retaining knowledge are not so open and interoperable. Take for example, the wonderful interactive classroom game for practicing vocabulary. If, as a teacher, you’d like to try it out in the classroom, the vocabulary words have to be manually entered, or imported from another learning app which may or may not let you export, and might have compatibility issues. Besides being a hassle for the user, this stifles innovation. There’s an artificial barrier to experimenting with new learning apps and methodologies. If users could own their own data, they could seamlessly switch between apps, democratizing app development and enabling a plethora of new functionality through greater interoperability. Some learning platforms, like Duolingo, are completely closed, not enabling any kind of export or import of user data. Some, like Quizlet, allow import and export, but don’t offer a public API, and their export format is overly simple, leading to data loss or corruption in importing. Anki is a wonderful and popular open source flashcard app but it stores users data in a private cloud without a public API. Giant companies like Google also offer many EdTech tools, and many of them allow a decent amount of export/import of data, but they make it much more convenient to stay in their own ecosystem and less so to leave. Their products are often free, but they make money harvesting and selling users’ data. We believe this leads to many other issues and perverse incentives. None of these offer users the same level of data ownership, or enable the same potential for interoperability as EduVault. Like many people developing apps for the “D-Web”, we take issue with the data of users being the source of value for the app provider. A democratized internet is a distributed internet, and we know that new technologies enable ownership, privacy and innovation in a way legacy apps simply cannot. We want to see less power concentrated in a few monopolistic companies, who are harvesting our data, and selling it to who knows who and who knows what for. We’d like to see a new internet created with healthier incentive structures that empower individuals and help humans thrive. But as strongly as we believe in these things and in having huge goals, we also believe in starting small, working step-by-step, and in winning by being better, not just by being ‘right’. Long term: We are starting very narrow with flashcard apps, but EduVault could expand to all sorts of user data generated in education. We've identified some user cases where greater interoperability of flash cards could provide great value to users. The next big step would be towards online learning platforms, and public/private school LMSs, both sorely ineed of greater interoperability. Right now it is very difficult for students and independent developers to add new features to these. If user data is user owned, new tools and features can be added to legacy systems even if they aren’t open source. Our even larger Big Hairy Audacious Goal is that if something like EduVault becomes widely adopted, it could speed up the development of applying AI to education. We could give learners personalized, AI-guided education without entrusting a dystopian amount of personal information to giant monopolies. In EduVault, users could opt in to send their data to be used to optimize AI algorithms. They could choose which parts to provide. They could anonymize their data, and could even be paid for it. Architecture: The core technology of EduVault is the authentication scheme and the data storage. On the user side, we need a smooth UX for signing up/logging in. On the app development side, we need to make it extremely convenient for developers to drop EduVault into their app as an authentication and local/cloud data storage solution. Market: There are many competitors in the 'user owned data' sphere, but none that we've found specifically focusing on education and none yet that leverage or IPFS and the unique features they enable which are necessary for our envisioned architecture. We believe that for success in the EdTech sector, the app should have a familiar web2.0 UX, and not an overt cryptocurrency/dweb branding. EduVault builds on top of work already done by our team on Inter Planetary Flash Cards, a web app and browser extension that save user’s flashcards and other data to the IPFS. Therefore, EduVault will already have a strong proven use case and two great apps to bootstrap the ecosystem. To gain users, we have a 2 step plan, focusing on groups likely to be early adopters. First, we will target programmers and those learning programming. Programmers also need to continuously learn on the job. They need better tools to do so. If they enjoy using the tools we enable, they will naturally start helping in the open source development. This will be a huge boon to the project. We can target programmers by creating tutorials that have the flashcards integrated and sharing them on popular programmer forums. We can make flashcards and highlights on some of the top used web references like w3schools, or on popular libraries’ official documentation. We can make cards and highlights on blog and tutorial writers pages, then contact them, encouraging them to tell their users about it and offer more value to their readers. Likewise, once we have YouTube and video highlight integration finished, we can contact programming YouTube stars. Talking about an interesting project like ours also offers some easy channel content and we could put together a PR packet. Once we have some traction, a more polished app, and website with a punchier and more succinct introduction to the project than this is, we can contact hacker news, and other media sources in the programming sphere with a similar PR packet. Functionality is king to organic growth, and the basic apps we have now already offer some great value to developers, for example quickly saving an answer you looked up on stack overflow. A great next step, although likely at least 2 months out, would be a VSCode extension, which would allow users to create cards from their IDE, and also test themselves about writing functions, etc. right from the IDE. This could evaluate correct answers based on looking at the code they wrote or from running it and evaluating the result. This would also let them practice in a more natural setting, with syntax highlighting and some autocorrect features that are more realistic to real programming. Next we will target students and teachers in school settings, because they are tapped into networks that can grow very quickly. As you'll see from the powerpoint presentation linked below, we've already identified some exciting use cases for user owned educational data for those learning programming and for teachers in classrooms to help them implement a flipped classroom approach. Finally we will create converters, plugins, and modules for other EdTech apps to facilitate crossover use. We will contact those app providers and help them integrate EduVault into their product so that users can benefit from hooking into the ecosystem. An example of the former is creating plugins for the most popular SRS flashcard app, Anki. An Anki plugin could sync flashcards to the EduVault, IPFC, and other apps in the ecosystem. An example of the latter would be contacting online learning platforms, especially those using open source LMSs like open EdX, and helping them integrate EduVault so that learners/instructors could create and share flashcards on the platform that would be syncable to programs outside it.

How it's made

EduVault leverages Textile's ThreadDB and Buckets to give users ownership of their data. Eduvault's server and UI are built with Javascript(TypeScript) with a node.js (Koa) backend, and a Vue.js front-end, connecting a MongoDB database. The MVP shows off a unique authentication system, whereby users can signup/login with password, social media, or crypto wallet. We solved complex technical problems about how to avoid exposing the private keys yet having them continuously available for refreshing the Textile ThreadDB connection. For example, with passwords we create a public/private key pair on signup and then encrypt it with the user's password. The DB only ever sees the hash of the user's password and stores a has of that hash. Because the keys are in application storage, they get erased on page refresh or in a new tab. To get around this we use a session token from the server to encrypt the keys and store them in localstorage. On refresh, the client gets the session token and uses that to rehydrate the keys. In this way the server never sees the keys. Future versions will leverage updates to Textile, such that EduVault can be a third party identity provider and neither our server nor the client app ever see the keys. IPFC is built with Vue.js and a Python Flask backend with a PostGRES DB. The IPFC browser extension is also built in Vue. We hope that EduVault can take over the need for the backend, and we won't need the Python Flask backend anymore.

Technologies used