···11-# HanziApp
11+<h1>
22+ HanziApp
33+ <a href="https://bpev.me/apps">
44+ <img src="https://static.bpev.me/icons/made-by-ben.svg" />
55+ </a>
66+</h1>
2733-The goal of HanziApp is to be a hanzi-learning supplement for learning Chinese. Right now, it will aim for a useful baseline of Hanzi for conversational Chinese (focusing on [HSK-3.0](https://en.wikipedia.org/wiki/Hanyu_Shuiping_Kaoshi) bands 1-6). This app takes a lot of influence from Tofugu's [WaniKani](https://wanikani.com) website for learning Japanese Kanji.
88+The goal of HanziApp is to be a hanzi-learning supplement for learning Chinese.
4955-[See screenshots](./screenshots)
1010+We support both Traditional and Simplified Chinese, and Pinyin, Jyutping, and Zhuyin / Bopomofo. We are starting to add some Japanese, also, but that isn't really supported as of yet.
61177-The core srs curriculum is focused on learning hanzi, and not words. We only add vocabulary in order to help solidify the hanzi.
1212+
81399-We will also have side-games that focus on application of hanzi, and are NOT srs based (ala, not for memorization, but more for practice of usage). These are intended to be used when a user wants to practice more, but doesn't have any reviews scheduled. These include tasks such as pronouncing time, math, and introducing vocabulary that we skipped over. These mini-games should unlock when users learn the prerequisite hanzi.
1414+The core srs curriculum is focused on learning hanzi, and not words. We only add vocabulary in order to help solidify the hanzi. Right now, we aim for a useful baseline of Hanzi for conversational Chinese (focusing on [HSK-3.0](https://en.wikipedia.org/wiki/Hanyu_Shuiping_Kaoshi) bands 1-6). This app takes a lot of influence from Tofugu's [WaniKani](https://wanikani.com) website for learning Japanese Kanji.
10151111-## Spec
1616+We also have side-games that focus on application of hanzi, which are NOT srs based (ala, not for memorization, but more for practice of usage). These are intended to be used when a user wants to practice more, but doesn't have any reviews scheduled. These include tasks such as pronouncing time, math, and introducing vocabulary that we skipped over. These mini-games should unlock when users learn the prerequisite hanzi.
12171313-### Subject Lifecycle
1818+## Contributing
14191515-| Name | Description |
1616-| -------- | ------------------------------------------------------------------------------------------------------------- |
1717-| Locked | A subject is unavailable to learn |
1818-| Unlocked | A subject is available to learn, but hasn't been learned yet |
1919-| Started | A subject has been "learned", and now has an SRS level |
2020-| Passed | A subject has been answered correctly enough times that dependencies are now unlocked |
2121-| Mastered | The subject has been answered correctly enough times that it will no longer be added to any study assignments |
2222-2323-#### Determining Unlocked State
2424-2525-A subject is unlocked when both:
2020+If you want to contribute definitions, hints, or translations, refer to the [ data readme](./data/README.md).
26212727-- The subject components have "passed" (reached SRS stage 5 one time)
2828-- User level is equal to or greater than the level of the assignment’s subject
2222+If you want to contribute code, I will try and update the [ spec](./SPEC.md) to add more app implementation details.
29233024## License
3125···3428Some code I have taken from elsewhere and modified. For that code, I have added a `@license` tag in the modified source. If you search the repository for those files, you will find them. For those, their individual licenses apply.
35293630For all other code and data, the LICENSE applies.
3737-3838-# Development
3939-4040-## Components
4141-4242-All use light DOM (createRenderRoot() { return this }) so Civility's CSS applies normally:
4343-4444-┌──────────────────────────┬────────┬───────────────────────────────────────────────────────────────────────────────────┐
4545-│ Component │ Prefix │ Notes │
4646-├──────────────────────────┼────────┼───────────────────────────────────────────────────────────────────────────────────┤
4747-│ h-answer-input │ h- │ Attrs: color, card-state. Methods: clear(), setDisplayed(). Fires submit │
4848-│ │ │ CustomEvent. │
4949-├──────────────────────────┼────────┼───────────────────────────────────────────────────────────────────────────────────┤
5050-│ h-text-reading │ h- │ Props: .audios, .readings. Attrs: locale, transliteration. Uses <ui-icon │
5151-│ │ │ name="volume-2">. │
5252-├──────────────────────────┼────────┼───────────────────────────────────────────────────────────────────────────────────┤
5353-│ h-study-title │ h- │ Attrs: color, card-type, subject-type, num-total, num-completed, characters, │
5454-│ │ │ user-level, locale. Computes subheader text internally. │
5555-├──────────────────────────┼────────┼───────────────────────────────────────────────────────────────────────────────────┤
5656-│ h-card-details │ h- │ Attrs: subject-id, mode, card-type, locale, transliteration. Looks up subject │
5757-│ │ │ internally, renders h-text-reading. │
5858-├──────────────────────────┼────────┼───────────────────────────────────────────────────────────────────────────────────┤
5959-│ h-details-editor │ h- │ Attr: subject-id. Fires done event after save. │
6060-├──────────────────────────┼────────┼───────────────────────────────────────────────────────────────────────────────────┤
6161-│ h-locale-select │ h- │ Attr: locale. Updates app directly. │
6262-├──────────────────────────┼────────┼───────────────────────────────────────────────────────────────────────────────────┤
6363-│ h-transliteration-select │ h- │ Attrs: locale, transliteration. Updates app directly. │
6464-└──────────────────────────┴────────┴───────────────────────────────────────────────────────────────────────────────────┘
+18
SPEC.md
···11+## Spec
22+33+### Subject Lifecycle
44+55+| Name | Description |
66+| -------- | ------------------------------------------------------------------------------------------------------------- |
77+| Locked | A subject is unavailable to learn |
88+| Unlocked | A subject is available to learn, but hasn't been learned yet |
99+| Started | A subject has been "learned", and now has an SRS level |
1010+| Passed | A subject has been answered correctly enough times that dependencies are now unlocked |
1111+| Mastered | The subject has been answered correctly enough times that it will no longer be added to any study assignments |
1212+1313+#### Determining Unlocked State
1414+1515+A subject is unlocked when both:
1616+1717+- The subject components have "passed" (reached SRS stage 5 one time)
1818+- User level is equal to or greater than the level of the assignment’s subject