Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Learnawesome.org – Open-source learning map for humanity
216 points by mathnmusic 10 months ago | hide | past | favorite | 39 comments
Hello HN,

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.

Clickable link: https://learnawesome.org

Code 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

One of the features HN users might like: On a book's page, you will also find links to summaries others have written, or author's podcasts/TED Talks etc - all in one place. Example: https://learnawesome.org/items/5c731d15-6a53-432e-82e4-a4de9...

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.

If knowledge has dependencies on other knowledge, you could represent that (a la package managers). If something's general enough, you could have multiple virtual packages teaching it.

Yes, the topic/knowledge taxonomy is an important part of it. There are ideas from ConceptNets to Faceted classification. For now, I have taken a pragmatic call to have maximum two parent topics for every topic node here. This allows me to show the hierarchy here: https://learnawesome.org/topics

This taxonomy design is being discussed here: https://github.com/learn-awesome/learn/issues/14

Feel free to suggest better approaches.

Probably not directly applicable to your project but do you know about a project with much more granular skill dependencies? An example are this three skills:

"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/...

Check how underlay.org is trying to build a really granular graph of claims and assertions. Building something similar for skills is what LearnAwesome is interested in.

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.

Frankly, I would love to see either of these ideas (skill dependencies, or spiral approach) implemented in code, in a way where I can look at the materials and see how I'm going to travel through it.

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.

GitHub is down currently. But we're discussing the personalization aspect on one of our issues. We want to recommend learning paths which take into account users' background (what they already know), constraints (what formats are best for them) and goals (what do they want to achieve).

Please do join our Slack for these ideas, even if, you can't contribute code.

I'm also really interested in this. Khan Academy used to have a wonderful one, for pretty much all of math up to about undergrad level, but it's gone, for no reason I could find [0]. This seems to be the code that was used to lay it out [1].

[0] https://khanacademy.fandom.com/wiki/Knowledge_Map [1] https://github.com/beneater/kmap-editor

A skill-tree for life. That's the goal! :-)

I've been thinking a lot on knowledge classification systems lately. It's surprisingly challenging to find the right balance between flexibility/comprehensiveness and simplicity/rigidity. Have you documented your research on this topic anywhere beyond that GitHub issue? I'd love to learn more about the strategies you considered.

I haven't written about it, but happy to have a conversation on this. For eg: check how underlay.org is trying to build a really granular graph of claims and assertions.

Me and my girlfriend is building something similar, but targeting a different niche, a personal non-collaborative knowledge tree. Would love to connect and share ideas if you are up for it! https://ember.ly

Yes, it looks like we can learn from each other. Check this from our issue board: https://github.com/learn-awesome/learn/issues/79#issuecommen...

Drop me an email at team AT website, please ?

Awesome, sent you an email, cheers!

That sounds like you need to partner up with academia

See also https://metacademy.org, one of the most inspiring knowledge package managers I've seen prototyped.

Submitted contents are not editable and there is no way to change the title of the submitted content. And there is also no way to delete what you have submitted. From a UX point of view I think this is very none-intuitive.

(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.

Edit/Delete rights are given when user's profile score reaches a certain threshold.

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.

I used a suggested filter, but changed the topic to something else ("Tribology", randomly picked). There were no results, and I removed filter after filter, but still nothing until I had removed all other filters. In the end, there was just one Tweet.

It would be nice if removing filters was easier and quicker, perhaps even a button to remove all filters but topic.

Thanks! Created this issue for this fix: https://github.com/learn-awesome/learn/issues/184

why do i need to login to simply see the syllabus? I'm not opposed to eventually signing up, but forcing me to before i'm sold on the platform seems premature.

Fixed this as multiple users pointed it out. :)

Great to see more efforts to map out knowledge for humanity :)

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/

I'm curious as to how you're developing the matching algorithm or recommendation system between learning material and students? I'm trying to do the same but for socially isolated seniors and programs/resources/interventions. Seems that all the examples online are of cases like Amazon, Netflix, or Pandora.

Looks pretty good, but when you call it a map it makes me think that it would make the connections between topics, i.e. show the sequence you need to follow to learn things, what are the pre-requisistes for each topic, etc. I don't see that on learnawesome... or am I missing something?

See the discussion on this related issue: https://github.com/learn-awesome/learn/issues/14

UI bug: when you expand a card under topics, if you click a link that was previously hidden, it doesn't take you to what you click, it activates the click event to collapse the card. (example: Programming languages, "and 27 more", click Ruby)

Thanks for pointing it out. Filed an issue for this: https://github.com/learn-awesome/learn/issues/185

I liked the Digital Garden Setup guide (needs login): https://learnawesome.org/digitalgardensetup

Thank You for pointing it out and thank you OP for building the tool. I have been playing around with it for last 10 mins and I love it. Looking forward to using it.

Learnawesome has become my goto resource to find useful links.

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?

The plan is to leverage the social graph for this. Users can follow each other, and they'd see items which are highly recommended within their network.

> To see this syllabus, please log-in and revisit this page.

Uhhh... no.

Yeah, this feedback has come a couple of times. Fixed this now. :-)

Great job with knowledge graphs. Specially love the programs part. Any plans on adding more programs to it? Can we build our own programs?

Yes, this is where the user community will play a big role.

so, i changed the default theme on settings, and now i keep getting an Error 500

Oh, I had just removed the old Bootstrap-based code, but forgot to remove this option. :facepalm: I have reverted the theme for you.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact