-
Notifications
You must be signed in to change notification settings - Fork 1
Improving Taxonomy
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.
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:
- Improve tagging (HELP WANTED)
- Improve tags: deduplicate, rename, document (HELP WANTED)
- Add navigation based on topics similar to the above example
- Agda Kata that require rank adjustment
- List of Possible Duplicate Kata
- List of kata that are candidates to retirement
- List of Kata with font Tag in Description (possibly broken)
- Potentially Plagiarized Kata
- Tags and topics to assign to kata
- List of Agda Kata to Update
- List of C Kata to Update
- List of C++ Kata to Update
- List of COBOL Kata to Update
- List of Coq Kata to Update
- List of Crystal Kata to Update
- List of C# Kata to Update
- List of Dart Kata to Update
- List of Elixir Kata to Update
- List of Go Kata to Update
- List of Haskell Kata to Update
- List of Java Kata to Update
- List of JavaScript Kata to Update
- List of Kotlin Kata to Update
- List of Lean Kata to Update
- List of Nim Kata to Update
- List of PHP Kata to Update
- List of Python Kata to Update
- List of Racket Kata to Update
- List of Ruby Kata to Update
- List of Rust Kata to Update
- List of Scala Kata to Update
- List of Solidity Kata to Update
- List of Swift Kata to Update
- List of TypeScript Kata to Update