Improving Taxonomy - codewars/content-issues GitHub Wiki
Background
The kata library is difficult to browse because it's huge (9.3K+ kata!) and lacks structure. We'd like to improve the browsing experience by providing convenient ways to access interesting topics, and allowing users to drill down from broader concepts based on their interest.
The current tag system allows users to find kata based on keywords, but it's difficult to use because the list is large and unstructured. We also need to improve tagging in general.
Things to keep in mind:
- We need to have a good balance between breadth and depth in the taxonomy for good user experience. Too many initial items like the current tags will overwhelm users. Reducing it too much and nesting too deep will be annoying to use.
- We also don't want this metadata to be a spoiler, especially for more difficult kata. Figuring out what can be applied is often the most important.
Implementation
The initial implementation will use the existing tag system, and introduce (internal) "tag types" to categorize them to utilize the subsets separately. This allows incremental adaption with minimal change to how search works.
Example tag types:
keyword
: General keywords related to the kata ("normal" tag, default)topic
: Tags with wider scope thankeyword
tags (e.g.,data-structures
,math
).style
: Tags describing kata style (e.g.,debugging
,refactoring
,restricted
,puzzles
)domain
: Similar totopic
, but specifically for career paths/domain (e.g.,backend
,frontend
,data-science
)package
: Tags for libraries, frameworks, packages, etc. (e.g.,numpy
,flask
,react
)
These tag types allow using subsets of tags to provide more focused navigation.
Example of making some topic
s more accessible:
TODO
- Improve tagging (HELP WANTED)
- Improve tags: deduplicate, rename, document (HELP WANTED)
- Add navigation based on topics similar to the above example