banool / auslan_dictionary Goto Github PK
View Code? Open in Web Editor NEWCode for the app, scripts, and site for Auslan Dictionary
Home Page: https://auslandictionary.org
License: GNU General Public License v3.0
Code for the app, scripts, and site for Auslan Dictionary
Home Page: https://auslandictionary.org
License: GNU General Public License v3.0
They're there in some weird semi structured semi dynamic format, it's just a matter of teasing the information out and displaying it.
I ran into an edge case where the revision section doesn't load, resulting in just a grey screen.
The case I found was:
If I remove "how" from my favourites then set the region to one or the other and add it back, it works fine, but when I pick both then come back to the revision tab, it doesn't load.
Hopefully it's not too arduous to replicate and pin down.
Currently in landscape view the video just totally clips off the bottom. I imagine the solution is to constrain the width of the videos, leaving a gap on the left and right.
Surprisingly some of the videos have sound. We don't need to play that.
Currently if you leave the app on the revision screen, when you come back the next day it won't update. Either that or check some time and decide whether to update based on that.
wont connect on device behind proxy server. Can proxy server configuration be added?
For example "sports", "numbers", etc. The signbank website somewhat already has this.
For the flashcards, it'd be neat to have it look at the raw github repo (like it does for the data update) to see whether to enable the flashcards feature or not. Since it'll check on rebuild (aka all the time), it'd probably be the best experience to have the data be memoized with a timeout, so at worst it checks like every 15 minutes. Another option would be to just check once on start, probably simpler that way. It should fallback to a hardcoded default if the check fails.
In the script to update the data, it is meant to not make the PR if there are no data changes, but that's not working. Fix it.
It would be good to play back a video slower - like you can on signbank's website.
Currently the way we get the content for the app is like this:
word -> video links
(and some more information).It would be much better if there was an API for Auslan Signbank instead so I could just do /videos?word={word}
or something similar.
I have tried to contact the creators of Auslan Signbank via their feedback form but they haven't responded to me so far. I'm not sure how else to contact them. Perhaps I could contact one of the organizations involved in creating it. I think they'd love the app and would want to help.
Users somtimes leave sub 5 star reviews because of issues with the data. This isn't within my control, so to help address this I could add a "give feedback" flow to the app that asks if it has to do with the data or the app itself. If it's the data, I'll direct them to Auslan Signbank (todo: check their site for their recommended flow). If it's the app, it'll just direct to email me.
I see two bugs:
I think there needs to be more padding between the rightmost button and the right border.
Currently every time I need to access the favourites, I just read it from disk. I should instead read it from memory once at startup into a writethrough cache and use that. That way I can avoid unnecessary reads.
The latency introduced by the non-cached version is visibly noticeably (perhaps even just for the overhead of using the FutureBuilder), so I should do this at some point.
Something like this:
Only some of the information relating to each sign that is found on Auslan Signbank is displayed here in this app. Please consult Auslan Signbank to see the information displayed as originally intended and endorsed by the author.
Perhaps with this added to the end.
There is a link to Auslan Signbank on each definition.
This means commands that can fail must be handled.
We need something like this:
The Auslan information (including videos) displayed in this app is taken from Auslan Signbank (Johnston, T., & Cassidy, S. (2008). Auslan Signbank (auslan.org.au) Sydney: Macquarie University & Trevor Johnston).
Words change throughout time in this dictionary. When you load up your favourites list, I need to clear anything there that doesn't exist in the dictionary anymore. Perhaps I could display a message indicating as such, or maintain a list so users can know what went missing.
I wouldn't want to overload the Auslan Signbank site though so I'd have to be careful with this.
The current scraper doesn't do any sort of regional specification and therefore misses many of the signs. It turns out if you specify a regional preference, the search results will be different. I should try to do that and then tag each video and/or definition with the appropriate region(s).
Once a video is loaded once, cache it forever.
We would need to make a settings page where users can drop the cache.
For example, there is no sign for the word "great", so you would probably just do "excellent" or "good" or something. You can have a searchTerm -> [word] map.
The process is quite complicated. I'd like to have a guide (some of which might just be links to other guides in the flutter docs for example) that tells you how to build the Android and iOS apps from start to finish.
Look here: https://github.com/Apple-Actions/.
Currently if checking a GK fails, we fall back to a hard coded default. We should instead fall back to the last seen value, and then a default.
Also we should give up on waiting for checking the GK after a second or two, but still set the value in storage once it does finally load (for the slow server / connection case).
Instead of just reading stuff from the Auslan Signbank servers, it'd be nice to set up a CDN. If we could get in contact with the creators of Auslan Signbank, we could set up caching with cloudflare or something similar.
Currently the region information is in full text in the json. Instead it should just be enum ints entering into a map. This will be good for building a region filter too for the flashcards.
Lots of apps have a screen they display while the app is loading. We should have one of those.
I noticed this when my phone was on low power mode at 5%, it may be relevant. I noticed that in spaced repetition mode, when I tapped and then tapped again, the next card would not appear. Tapping on "remembered" did nothing. Tapping on forgot would progress the cards after the delay, but only after another tap would the flash card show up correctly, half of the previous flash card was still there.
I've been receiving reports from one user that if they save around a few hundred favourites, they cannot load the revision section of the app. Worse, sometimes it causes the app to crash entirely and they have to delete the app and its data and reinstall.
Here are some of the reports:
Heavy use of Revision has crashed that part of the app for me. Just get the grey screen. The dictionary and favourites still work okay.
There are a number of glitches with the app to do with the videos. Some word videos have been loaded at double speed, and some where there are multiple videos for a word don’t swipe back to the first one, but only go back one. Too many to keep track of. Not a serious problem though. I can keep track of them if you like as at the moment I’m using the app a lot to try to learn Auslan. I can make a list and let you know every so often. But as signbank has thousands, it will only be a small number comparatively.
Reloaded the app and it was working fine. Saving lots of favourites again. But now I’ve just tried Revision and again it’s disappeared. Just a grey screen. Thus I deleted the app from my Home Screen, but this means that I can’t reload it as the only way I can access the app dictionary favourites now is going through the App Store. Can’t even delete it.
Just figured out how to delete app through systems, and have reinstalled it. Working okay. Saving favourites for revision, as before. Is there a limit to the number of favourites for revision? It seems to not like too many favourites. I want hundreds of favourites to practice with, but it seems to crash that part of the app. It was working well the first time, but maybe I didn’t give it enough time to find the videos etc because I had so many. The revision settings are the default ones.
The default revision strategy is random, implying to me that this doesn't have anything to do with loading prior reviews. This means we're likely just crashing upon trying to build all the masters with dolphin.
Some ideas for improvement here:
I should probably make each of these a separate issue but I won't bother with that for now.
The fact that the app seems to crash on startup isn't addressed in these ideas above. I'm not 100% sure what I can do about that right now, but I'll investigate. Perhaps I can set all the globals I set prior to runApp to dummy values and then show a simplified "crash page", where the user can choose to report the issue to me, or perhaps I build in something that just does it automatically.
Another thing I should do is when a user goes to report an issue, I should try to bundle up the DB state / shared preferences, as well as build info and info about the user's device, and include that in the report. I can make a separate issue for this.
Comments requesting this feature:
display Favourites randomly as a revision learning tool like Flash Cards as you build your personal vocabulary.
Currently it is just a substring match.
At least on iOS, it seems like once the spinner disappears and the video frame appears, the video still isn't actually loaded.
The scrapers in sign search are substantially better than mine. Not only does the Auslan Signbank scraper actually get everything correctly (see #27), but it uses other sites as a data source.
See more here: https://github.com/Bluebie/sign-search.
At first this would just have one button, but would allow things like #11.
I'm realizing it'd be nice to have a mechanism to tell people to go update the app, particularly if main fails. Perhaps use https://pub.dev/packages/upgrader.
Currently the video links have the entire URL. We don't need that since all data comes from one place, we can just store the part after https://media.auslan.org.au
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.