Show HN: Learnawesome.org – Open-source learning map for humanity
Over the last 12 months, I have been building https://learnawesome.org
This idea came from Danny Hillis' 2012 talk at OSCON, which itself was inspired from Neal Stepehenson's _The Diamond Age : A Young Lady's Illustrated Primer_
The dream is to build a tool that matches the right learning material to the right student at the right time. Wikipedia is great, but it doesn't do a good job of leveraging the rich variety of learning resources that exist on the Web. Same applies to GoodReads - which is focused only on books, whereas these days we actually learn from videos, articles, MOOCs, tweetstorms, slack/discord groups, podcasts, livestreams, newsletters, online conferences, apps & games, interactive explorables and much more.
For now, I am building it as a social network for lifelong learners. It's open-source, built with Rails + PostgreSQL, and complies with standards like Dublin Core's LRMI extension of schema.org and ActivityPub for integration with Fediverse. A GraphQL API is also available if others want to build alternative clients.
I have made decent progress so far: Imported thousands of courses and book summaries, built a browser extension for quick lookup/addition to the repository, a spaced-repetition based flashcard practice module. Users can even discover learning resources by recommendations ELSEWHERE (for eg: "Show me books on History which are highly recommended by venture capitalists")
I originally started building this as something to help with my daughters' and my own learning. But it made sense to build this as a public good.
It would be great if you can give it a try, and share ideas on what would make it better.
39 comments
[ 5.2 ms ] story [ 95.8 ms ] threadCode repositories for:
- Web application: https://github.com/learn-awesome/learn (license is AGPL 3.0)
- Browser extension: https://github.com/learn-awesome/webextension It cleverly generates a question/answer pair from a simple text selection from your Web reading: https://medium.com/learn-awesome/practice-what-you-learn-usi...
- Reusable flashcard practice widget: https://github.com/learn-awesome/flashcard This is built with VueJS and lets anyone create articles with spaced-repetition built-in similar to Andy Matuschak's fantastic posts on Quantum computing.
- There's even an absolutely rudimentary mobile app on Android built with Flutter: https://github.com/learn-awesome/mobile-app which just makes it easy to look up links or add them to the repository
For this to work, I imported links to summaries from sources like sivers.org, blas.com, fourminutebooks.com, sipreads.com etc. Will need help from users in making this dataset even better.
This taxonomy design is being discussed here: https://github.com/learn-awesome/learn/issues/14
Feel free to suggest better approaches.
"juggling 3 balls" depends on "juggling 2 balls" depends on "throw 1 ball to your other hand without that hand moving much".
I'm thinking of a big skill tree like Path of Exile: https://media.esportsedition.com/wp-content/uploads/2017/04/...
[0] https://khanacademy.fandom.com/wiki/Knowledge_Map [1] https://github.com/beneater/kmap-editor
I'm not sure if a "tree" is the right data-structure. See this article called "The Spiral Approach to Thinking & Learning": https://learnawesome.org/items/1ef5ff78-7c37-4f5d-bbdd-1cd0b...
For this spiral approach, I think, for every skill we could have certain levels (beginner/intermediate/advanced/elite) and the dependencies could be to those levels.
In anything you've linked here, I feel overwhelmed as a student. I get that, in the spiral approach, the starting point isn't so important, but if I don't know where to start, it's much easier for the teacher to pick for me, then for the teacher to tell me, "it doesn't matter where you start, so pick whatever". If the choice really doesn't matter, then don't make students choose.
In this way I think the skill dependencies approach allows the student some visibility into why they might choose one starting point over another.
There's also a problem where students come in with some prior knowledge, so when you're trying to teach them a complex idea, you need to fill in the gaps in their skill prerequisites. It seems like with the spiral approach, you'll get there eventually, and in a class where you can't go through each student and pinpoint the missing prerequisites, the spiral approach seems to make sense--but the negative side effect here is that you're going to be reviewing stuff for a lot of students who already know it. With individual students, this is a complete waste of time, and it's better to test what they know and then fill in gaps. A skill dependency tree might do better at empowering students to test their OWN knowledge and fill in the gaps.
Please do join our Slack for these ideas, even if, you can't contribute code.
Drop me an email at team AT website, please ?
It would be nice if removing filters was easier and quicker, perhaps even a button to remove all filters but topic.
Uhhh... no.
(UI-wise it is not bad in general except when you want to select the topic it shows up a dropdown list of 2000 things. Also having fake comments auto-generated makes me feel like this is not a finished product but a POC.)
And not sure how but I ran into Error 500 quite a few times.
Overall I think the idea is great conceptually but as a product it is trying to do too many things at once. If OP intends to scale it up I think it would be nice to focus on fullfiling a particular niche first. Or in Paul Buchheit's words: it's better to make a few people really happy than to make a lot of people semi-happy i.e. at least from a product standpoint. Of course as a hobby project I think this is still pretty cool!
Haven't read the source so can't comment too much on the arch and code. I think it has the potential to be further developed into a very powerful CMS for domain-specific knowledge management, or a CRM, etc. B2C-wise as a content-discovery plaftorm I don't see how this is going to work, except becoming a haven for ads which is probably the last thing OP wants. Suppose it does become a social network as OP has intended, when it grows to a certain scale it will run into the same content moderation problem as hn, etc (https://news.ycombinator.com/item?id=23806426). On the other hand B2B-wise it may be able to become ramen profitable.
p.s. to OP: can you delete the duplicated entry for me? Thanks. Due to the crashes and the name not showing up properly I submitted my app https://archy.sh/ with mutiple entries.
Spam will have to be contained. One approach is to show users only those items which have been recommended by users they follow.
Building this as a CMS/CRM is a very interesting idea.
Life-long learner myself as well, and I built this tool for maintaining and connecting the dots from disparate learning resources online: https://getrumin.com/
Thanks for building this!
How do you plan to scale this collection while also ensuring quality and up-to-date content/minus the link-rot?