Commit graph

28 commits

Author SHA1 Message Date
ggurdin
c18939dff3
fix: update activity analytics stream on reinit analytics (#5532) 2026-01-30 10:22:47 -05:00
ggurdin
ed6c2ff5ad
fix: save activities to analytics room for corresponding language (#5514) 2026-01-29 12:54:58 -05:00
ggurdin
43d190b682
feat: filter 'other' constructs from existing analytics data (#5473) 2026-01-27 16:42:49 -05:00
ggurdin
1f7ca4c1fc
fix: distinguish constuct level up animations by construct ID instead of count (#5468) 2026-01-27 15:33:24 -05:00
ggurdin
8cbf9c2700
feat: filter out new constructs with category 'other' (#5454) 2026-01-27 14:57:18 -05:00
ggurdin
b945b8f61a
chore: update constant in level equation to make 6000 xp ~level 10 2026-01-27 09:35:17 -05:00
Ava Shilling
c3d6a9996e fix: use event stream for construct level animation 2026-01-23 13:50:12 -05:00
Ava Shilling
68a8733976 cleanup 2026-01-22 16:54:58 -05:00
Ava Shilling
4dd64de133 simplify growth animation
remove stream, calculate manually with the analytics feedback for XP, new vocab and new morphs
2026-01-22 16:43:34 -05:00
Ava Shilling
096ba06367 feat: rise and fade animation for construct levels 2026-01-21 13:47:15 -05:00
Ava Shilling
16fbc4a52e feat: expose construct level up stream 2026-01-21 09:58:01 -05:00
ggurdin
91701b1834
chore: use cached derived data in level bar when available 2026-01-20 12:01:09 -05:00
ggurdin
8fb41cdc7a
grammar error practice UI elements 2026-01-20 11:39:48 -05:00
ggurdin
232f5342e2
fix: add bulk updating of uses list 2026-01-16 15:47:08 -05:00
ggurdin
9504b639fb
chore: force update server analytics on complete practice, add timer to update server analytics every five minutes (#5206) 2026-01-15 15:51:16 -05:00
ggurdin
a96e767595
fix: send local analytics to correct analytics room on language update (#5194) 2026-01-14 13:44:11 -05:00
ggurdin
ebe22129bc
fix: expose stream of newly collected constructs and use it to update new tokens cache on analytics update (#5169) 2026-01-12 10:24:55 -05:00
ggurdin
5e132dd7fe
feat: make construct aggregated case-insensitive (#5137) 2026-01-08 15:05:41 -05:00
ggurdin
1d27ca429a
fix: coerce existing aggregate analytics database entries into correct format before merging to avoid data loss (#5136) 2026-01-08 14:56:20 -05:00
ggurdin
af395d0aeb
4825 vocabulary practice (#4826)
* chore: move logic for lastUsedByActivityType into ConstructIdentifier

* feat: vocab practice

* add vocab activity progress bar

* fix: shuffle audio practice choices

* update UI of vocab practice

Added buttons, increased text size and change position, cards flip over and turn red/green on click and respond to hover input

* add xp sparkle, shimmering choice card placeholder

* spacing changes

fix padding, make choice cards spacing/sizing responsive to screen size, replace shimmer cards with stationary circle indicator

* don't include duplicate lemma choices

* use constructID and show lemma/emoji on choice cards

add method to clear cache in case the results was an error, and add a retry button on error

* gain xp immediately and take out continue session

also refactor the choice cards to have separate widgets for each type and a parent widget to give each an id for xp sparkle

* add practice finished page with analytics

* Color tweaks on completed page and time card placeholder

* add timer

* give XP for bonuses and change timer to use stopwatch

* simplify card logic, lock practice when few vocab words

* merge analytics changes and fix bugs

* reload on language change

- derive XP data from new analytics
- Don't allow any clicks after correct answer selected

* small fixes, added tooltip, added copy to l10

* small tweaks and comments

* formatting and import sorting

---------

Co-authored-by: avashilling <165050625+avashilling@users.noreply.github.com>
2026-01-07 10:13:34 -05:00
ggurdin
532e376895
fix: add new blocks to merge table before fetching previous constructs when calculating points added by construct update (#5098) 2026-01-06 16:26:38 -05:00
ggurdin
2c176c052d
5053 can get points from lemma with max score (#5078)
* make uses a private field for ConstructUses

* expose capped list of uses in ConstructUses

* filter capped construct uses in getUses
2026-01-06 11:39:49 -05:00
ggurdin
3517d0d627
fix: clear database on reinitialize (#5045) 2026-01-05 11:33:52 -05:00
ggurdin
a322cb5ad2
fix: on analytics DB init, don't clear DB unless stored userID doesn't match client userID (#5036) 2026-01-02 15:23:37 -05:00
ggurdin
bd58baee04
fix: only exclude xp gained analytics events if blocked constructs has entry (#5035) 2026-01-02 15:02:45 -05:00
ggurdin
a268c2a27d
fix: don't add XP update if no new construct uses were added (#5027) 2026-01-02 09:51:39 -05:00
ggurdin
0eeec052b2
4907 construct details changes (#4961)
* chore: remove delegation analytics page

* feat: vocab construct analytics level bar

* chore: analytics mobile navigation

* feat: cap construct XP
2025-12-29 13:39:37 -05:00
ggurdin
d8caf8e481
feat: analytics database 2025-12-23 14:35:41 -05:00