760
IamA developer and I created a website for taking Parallel Typing Tests with public domain books. AMA
I recently started attempting to learn Russian. I knew that there were websites that offered parallel books, (books that allow you to read translations as you're learning a new language) and I wanted the same for practicing typing. When I originally tried searching for this online, I couldn't find what I wanted so I created my own website.
Here is an example of one of the books with parallel typing tests: https://btype.io/game/1931/1
I ended up doing more than the minimum though, and the website actually works for anyone wanting to just practice typing with books in any language.
Here is a list of books that are just for practicing typing: https://btype.io/l/en/en
Other features of the website:
- Dark mode
- Progress and stats are saved for users
- Users are able to share their progress with others
- All of the books and translations that are created are downloadable for other developers to use
- Users can import public domain books on their own if books are missing
- There are 109 languages that have support.
My Proof: https://btype.io/reddit/ama.txt
Ask me anything!
World17723 karma
I started posting it about a month ago. I haven't really worked on it very much since then, but in the last month I've added:
- Book importing for users
- Dark mode
- The stats pages
- Whitelists for books added (and an easy to use replacement UI for letters that are detected as not type-able when a user imports a book)
- Created a guide for users to follow when formatting books.
- Rewrote how parsing of books was done
- Changed how the data is provided for users to download
When I first started, I wrote the actual game part of it in a day or so. I then just improved on that adding more features and adding quality of life changes to it. It was probably a month or two of on and off progress. There's also a lot of stuff that isn't seen very obviously to users.
- CI/CD automation for the entire website (just automatic deploy/testing)
- Automatic backups
- Email support that works with UTF-8 correctly. (when using so many languages, characters start showing up incorrectly sometimes for some email clients) They're just used if someone "donates" a translation.
- Payment integration with Stripe
- Pricing for translations is handled to find out if words later in the book were found earlier within the book so that it's exactly the price that the translation provider will charge.
- Easily create-able development environments for the project
- Discord integration - sends messages to the Discord server when someone adds a book or "donates" a translation.
- Translations for all of the web pages and writing the text
- Finding and formatting the books for import.
- A basic admin control panel for managing the website
- And all of the time determining how pages should look and deciding how to manage the more obvious stuff.
I didn't have to actually create the models to get the translations, as I use Google's for that. That's where the only cost comes from in creating translations. (Though, luckily, I received credits so I didn't have to pay for that so far for the books that have translations)
When I think about the amount of time taken to complete it, I feel like I should have been able to add more, I just didn't dedicate enough time to it all at once.
immunitea4 karma
I love this idea for language learning. Will you be adding more books or languages? Like an option for Brazilian Portuguese?
World1772 karma
It just depends on what the companies that create these language models do. Google seems to be adding more models, so maybe one for Brazilian Portuguese will be an option in the future.
The website does currently support Portuguese right now though. (And if you create an account you’re able to add books for it if you want)
World1778 karma
This is written mostly in JavaScript and Php. There’s also shell scripts for creating the development environments, but that’s a really small part of it.
I’ve written programs in Java, C#, C++/C, and python. I like Java very much, but that’s mostly because when I was younger I tried to develop stuff related to game servers with it.
iamnotnotacat3 karma
have you given thought to implementing different highlighting code so that it shows the actual word you're typing highlight in accordance to that words translation rather than what im assuming is percentage of character count?
also super interesting and i really love what you've got here. i'm going to be learning serbian soon, it would be cool to have some books on there for that.
World1775 karma
It doesn’t exactly match up in the sentence below. I run a translation of the full sentence, and a translation of the individual word.
The word is usually one of multiple options and isn’t always correct. Sometimes languages exclude words too. The sentence translations are usually better because the machine learning model has more to work with to determine a translation, but it’s not always perfect either.
In the future, I might add the ability for users to give feedback on translations. I might also create better dictionaries for the words, so that if one is obviously wrong, it’ll give the user the option to see the others.
World1773 karma
All of the books and translations that are added can be downloaded here. Though, they’re really not in a format that is going to provide the best reading experience. (you can open one of the books with a text editor to see what I mean)
I haven’t really checked what the standard format is for bilingual books. Though, I could probably quickly write something to just be able to read them using that data offline if there was interest.
Anyone is able to add books/texts to the website. All books added are supposed to be public domain books.
World1772 karma
I don't have any plans. I don't like ads either. The costs for this website are also very minimal at the moment, so it has not been a concern for me.
World1773 karma
Yes. Though, I haven't really traveled anywhere lately. I also haven't been outside of the United States since I was really young.
SamOnatoR11 karma
How long did it take to finish all of this?
View HistoryShare Link