New Web App: WaniKaniExplorer

Fellow Friends,

I’ve developed a web application to display your WaniKani data (radicals, kanji & vocab) in sortable, filterable tables.  You can also download your data to a .csv file if you want to play with it yourself (i.e. in Excel).

I wrote in in R/Shiny and it’s deployed on Shinyapps.io.  You can check out the current (alpha?) version here:

http://zenbrayn.shinyapps.io/WaniKaniExplorer

You’ll need to enter your API key (I’m not saving or looking at any of your data), and the app will fetch your data from WaniKani.  This typically takes 10’s of seconds, but sometimes the responses are slow and it can take a bit longer.  There’s a progress indication message in the top right and your user information will be displayed once the data has been fetched.  After that, you can select the other tabs to see the data tables.

if you’re interested, please give it a shot and let me know if you run into and problems or bugs.

All the best!


Thanks ZenBrayn, I`ll definately try it.

Thanks, just tried it… that’s pretty cool… love the available date… and all this with R and Shiny…

Great tool, but the colour scheme is a bit dark. It’s a bit hard to read.

ETA: Nevermind??? Maybe my browser just rendered weird, it appeared to have like a brown colour scheme before. It’s white now.

whoa that is a lot of data.



could you do something so it doesn’t require to enter your API key again every time?

This is great, now I can finally find the items that should really be listed as critical items. That is items that I have gotten wrong the most times in total (not percentage).

level, character, meaning, total incorrect
radicals
  •  8, 巳, snake, 17
  • 10, 失, fault, 17
  •  6, 禾, pine, 12
kanji
  • 18, 僧, priest, monk, 38
  • 20, 裕, abundant, plentiful, 34
  •  8, 住, dwelling, reside, dwell, 32
vocabulary
  • 21, 審査, examination, inspection, 74
  •  8, 究明, investigation, 56
  • 26, 構造, structure, 51
It seems like level 8 is the hardest level so far for me. I have a lot of things from level 8 with high failure rate. Also as I have much problems with levels 20-25 which I remember were really difficult.

Now some suggestions/bug reports:
  • It would be good if you could store the api key in a cookie so I only have to enter it once and then it’ll remember it “forever” automatically.
  • It would be good to hold on to the data a bit longer. First time I tried this the site claimed there were only 100 something radicals instead of 400 something, and similar with kanji and vocabulary, after a while. So it looks like it lost some of the data. I reloaded the site and had to enter my key and download all the data again (which took around 20 seconds for me which feels like forever).
  • I don’t know anything about R/Shiny so I don’t know how feasible it is, but it would be good if the site could store the data client side and have a refresh button that can be used if the data gets too old instead of having to re-download the data every time.

Very cool! I had planned to write something similar so I’m glad that you already did this  :slight_smile:
Could you build in that the burn_date is converted to a human readable format?

Just when I needed it, I love you.

Unfortunately when trying to download a CSV of radicals, I get the error:

unimplemented type ‘list’ in ‘EncodeElement’
For: Character, Meaning, Synonyms, Available date & Images - columns sorted by Available date.

Cheers.

Saphrose said…
Great tool, but the colour scheme is a bit dark. It’s a bit hard to read.

ETA: Nevermind??? Maybe my browser just rendered weird, it appeared to have like a brown colour scheme before. It’s white now.

 Same issue here, it’s white though turns to a brownish grey when the tab’s been open for a while in Firefox 36. When that happens, I think it’s basically telling you your session has expired.

Great tool :) 
However it doesn’t work on Safari, I have this issue in console : 
[Error] Failed to load resource: the server responded with a status of 500 (Internal Server Error) (shiny.min.js.map, line 0)

All ,

This is great  – thanks for your time to check out the app and give the great suggestions.  It’s definitely still in the “alpha” stage, but your suggestions will help to make it function better.

I’ve noticed some timing out behavior that can cause errors, likely due to the data request to/from the WaniKani site taking too long.  I’ll be working on fixing this because this is obviously a bad user experience…

Saphrose: on the brown color scheme thanks for reporting; very strange and not expected or intended.  Are you using Firefox?  I have tested through that browser yet…

Nibarius and ShotgunLagoon: great suggestions!  I obviously need to think more about caching strategies.  I’m a bit limited with Shiny, but there is always a way around anything :).  Plus, Koichi and team might sick the alicrab on me for making too many API requests from the app…

Narmora: For the burned date in a human readable format, select the “Burned On” column.  This is bit confusing… the API provides the unix time stamp and and calls it burned_date.  This is what I parse to get the “Burned On” human readable date.  Maybe I should just remove the unix time stamp versions all together.

Kaimera: I will test out the downloading functionality with Firefox; thanks for reporting.

frntz: Thanks for trying it out and sorry it didn’t work.  I obviously need to handle errors better in the app.  What I suspect happened is that it took too long for the WaniKani site to respond to the data request and timed out.  I develop on a Mac with Safari, so it should work, if it doesn’t time out.  Give it another shot and see if it works better.  But, I need to handle this better so the errors are at least meaningful, and ideally to avoid them all together.

Thanks again to all – I’ll keep working to make this better.

Using chrome, doesn’t load at all for me.  Put in my API and hit submit but nothing happens.

ZenBrayn said...Kaimera: I will test out the downloading functionality with Firefox; thanks for reporting.
 I had the same issue with chrome actually, probably should've mentioned that. Not sure if it's a particular anomaly with my data or not.

Edit:
Yeah, it must be. I tried Koichi's API key and the CSV download works.
Here's my API key, have fun:
5ed89ec352326ea92c78a7b3a580db68
Kaimera said...
ZenBrayn said...Kaimera: I will test out the downloading functionality with Firefox; thanks for reporting.
 I had the same issue with chrome actually, probably should've mentioned that. Not sure if it's a particular anomaly with my data or not.

Edit:
Yeah, it must be. I tried Koichi's API key and the CSV download works.
Here's my API key, have fun:
[api key]
 eeek you probably shouldn't share your api key on the forums like that
ShotgunLagoon said...probably shouldn't share your api key on the forums like that
 Give me a good reason why. It's a GET request, none of my data is editable AFAIK. Even Koichi's API key is available on these forums freely.
You guys are paranoid.
Kaimera said...
ShotgunLagoon said...probably shouldn't share your api key on the forums like that
 Give me a good reason why. It's a GET request, none of my data is editable AFAIK. Even Koichi's API key is available on these forums freely.
You guys are paranoid.
No, someone can use it to access content they haven't paid for via the many third party apps available. 
Saphrose said...
Kaimera said...
ShotgunLagoon said...probably shouldn't share your api key on the forums like that
 Give me a good reason why. It's a GET request, none of my data is editable AFAIK. Even Koichi's API key is available on these forums freely.
You guys are paranoid.
No, someone can use it to access content they haven't paid for via the many third party apps available. 
Tell Koichi and Viet not to publicly post their keys then. Not me. Them. I have seen no rules forbidding me from doing this. You are not WK staff.

You're providing a strawman argument. Kanji and readings are not copyright to WaniKani/Tofugu. It's public domain, they don't own the language, as much as I'm sure they'd like to. Mnemonics, audio and the SRS software is not accessible with an API key alone. One would require using a premade export tool or coding their own and even then having some knowledge as to how to format and utilize the Kanji/reading data from WK to begin with. How many people are that tech literate or bothered? Very few I would presume.
ZenBrayn said... Narmora: For the burned date in a human readable format, select the "Burned On" column.  This is bit confusing... the API provides the unix time stamp and and calls it burned_date.  This is what I parse to get the "Burned On" human readable date.  Maybe I should just remove the unix time stamp versions all together.

 Ohhhhh.... yes, it's confusing :D
But now that I know that I'm fully happy with the WaniKaniExplorer. Thank you so much!

Kaimera:  Thanks for your input and assistance with helping me to debug.  If you don’t mind, I’d like to use your API key to debug the issue you’re seeing.  Let me know at any time if you’d like me to stop using it.  By the way, I’m fine with posting API keys as well.  I recall a post from Viet giving out Koichi’s so dev’s could test the “vacation” feature.  Seems reasonable that dev’s could access other API keys to test and debug with.

Narmora: my original thought was to include ALL the data the WaniKani API provides (plus some extra stuff), but I now think it makes more sense to streamline and provide the information that’s actually useful to people.  Thanks for the suggestion and I’ll try out tuning some of the data options so there’s not so much (redundant) information there.

Thanks friends!

love how searchable it is! I can see this being very useful in the future :slight_smile:

ZenBrayn said... Kaimera:  Thanks for your input and assistance with helping me to debug.  If you don't mind, I'd like to use your API key to debug the issue you're seeing.  Let me know at any time if you'd like me to stop using it.  By the way, I'm fine with posting API keys as well.  I recall a post from Viet giving out Koichi's so dev's could test the "vacation" feature.  Seems reasonable that dev's could access other API keys to test and debug with.
No worries. Please let me know if/when you're able to fix it ^_^