
Show HN: Learnawesome.org – Open-source learning map for humanity - mathnmusic
Hello HN,<p>Over the last 12 months, I have been building <a href="https:&#x2F;&#x2F;learnawesome.org" rel="nofollow">https:&#x2F;&#x2F;learnawesome.org</a><p>This idea came from Danny Hillis&#x27; 2012 talk at OSCON, which itself was inspired from Neal Stepehenson&#x27;s _The Diamond Age : A Young Lady&#x27;s Illustrated Primer_<p>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&#x27;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&#x2F;discord groups, podcasts, livestreams, newsletters, online conferences, apps &amp; games, interactive explorables and much more.<p>For now, I am building it as a social network for lifelong learners. It&#x27;s open-source, built with Rails + PostgreSQL, and complies with standards like Dublin Core&#x27;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.<p>I have made decent progress so far: Imported thousands of courses and book summaries, built a browser extension for quick lookup&#x2F;addition to the repository, a spaced-repetition based flashcard practice module. Users can even discover learning resources by recommendations ELSEWHERE (for eg: &quot;Show me books on History which are highly recommended by venture capitalists&quot;)<p>I originally started building this as something to help with my daughters&#x27; and my own learning. But it made sense to build this as a public good.<p>It would be great if you can give it a try, and share ideas on what would make it better.
======
mathnmusic
Clickable link: [https://learnawesome.org](https://learnawesome.org)

Code repositories for:

\- Web application: [https://github.com/learn-
awesome/learn](https://github.com/learn-awesome/learn) (license is AGPL 3.0)

\- Browser extension: [https://github.com/learn-
awesome/webextension](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...](https://medium.com/learn-awesome/practice-what-you-learn-using-
learnawesome-orgs-flashcards-3343d57a33b0)

\- Reusable flashcard practice widget: [https://github.com/learn-
awesome/flashcard](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](https://github.com/learn-awesome/mobile-app) which just makes it easy to
look up links or add them to the repository

~~~
mathnmusic
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...](https://learnawesome.org/items/5c731d15-6a53-432e-82e4-a4de9fecb2d1-the-
first-20-hours)

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.

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

~~~
mathnmusic
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](https://learnawesome.org/topics)

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

Feel free to suggest better approaches.

~~~
qznc
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/...](https://media.esportsedition.com/wp-
content/uploads/2017/04/Path-of-Exile-Skill-Tree.jpg)

~~~
mathnmusic
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...](https://learnawesome.org/items/1ef5ff78-7c37-4f5d-bbdd-1cd0ba40479c-the-
spiral-approach-to-thinking-and-learning)

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.

~~~
kerkeslager
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.

~~~
mathnmusic
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.

------
archibaldJ
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](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/](https://archy.sh/) with mutiple entries.

~~~
mathnmusic
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.

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

~~~
mathnmusic
Thanks! Created this issue for this fix: [https://github.com/learn-
awesome/learn/issues/184](https://github.com/learn-awesome/learn/issues/184)

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

~~~
mathnmusic
Fixed this as multiple users pointed it out. :)

------
laybak
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/](https://getrumin.com/)

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

------
jbotz
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?

~~~
mathnmusic
See the discussion on this related issue: [https://github.com/learn-
awesome/learn/issues/14](https://github.com/learn-awesome/learn/issues/14)

------
bdcravens
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)

~~~
mathnmusic
Thanks for pointing it out. Filed an issue for this:
[https://github.com/learn-awesome/learn/issues/185](https://github.com/learn-
awesome/learn/issues/185)

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

~~~
kobiguru
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.

------
marvindanig
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?

~~~
mathnmusic
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.

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

Uhhh... no.

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

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

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

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

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

