Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Technical debt] Key terms using stable UUIDs #86

Open
CharlieMcVicker opened this issue May 15, 2023 · 2 comments
Open

[Technical debt] Key terms using stable UUIDs #86

CharlieMcVicker opened this issue May 15, 2023 · 2 comments
Assignees

Comments

@CharlieMcVicker
Copy link
Member

CharlieMcVicker commented May 15, 2023

Problem statement

Currently, terms are "keyed" using a standardized form of their Cherokee phonetics. (look up keyForCard and cherokeeToKey). These keys are used by the leitnerBoxes, lesson objects, vocabSets, and many other things. We have serious problems when we need to update the Cherokee phonetics for a term, eg. due to a typo, because we have stored these phonetics in a billion places. And we have to update phonetics regularly.

Solution

All terms get a UUID that is used as a key.

Things to watch out for

  1. This will require changes outside of just the CherokeeLanguage/online-exercises repo, but also CherokeeLanguage/online-exercises-audio-pipeline and maybe CherokeeLanguage/cherokee-audio-data, too
  2. We need to figure out where in the data pipeline to assign these UUIDs (as early as possible, in ground-truth tables)
  3. We need to identify all the places where a key is generated or used from a card, and move to using UUIDs. Eg. find all lookups, records that use "term" as a key, etc.
  4. We need to figure out how we will handle mixed data between the database and the code...
    • Eg. Loading old lessons that were keyed with phonetics (maybe use a new field for UUID keyed stuff or add a "version" field to some records)

Acceptance requirements

  1. Test that shows old data will be rekeyed properly
  2. Test that makes sure all terms load with new key structure
  3. We know exactly which python packages are needed to run our code
@CalebLItalien
Copy link

I will handle this ticket.

@CharlieMcVicker
Copy link
Member Author

CharlieMcVicker commented May 15, 2023

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants