Giter Club home page Giter Club logo

vocaba's Introduction

Vocaba

A lightspeed solution for remembering to use the new words you discover while reading.

Getting started:

You need to have the dictionary SQLite database that is generated by the dictionary transformer. It goes directly into the assets directory.

The app no longer runs in the browser (which can't trivially run SQLite). That's probably fine tbh but if I get annoyed by debugging on my phone I'll make an abridged developer-only dictionary that works cross-plat.

Phase 1:

The problem: I often encounter a new word when reading, infer its meaning or look up its definition, and decide I really like this word and that I would like to incorporate it into my vocabulary. Then, tragedy: I forget the word before I remember to begin using it.

I would like an app that allows me to VERY, VERY QUICKLY store a word, automatically associate its definition, and let me parse through my words VERY, VERY QUICKLY to refresh my memory.

Vocabulary learning apps exist; some of them let you add your own words if you pay; none of the existing apps are actually designed for this purpose (learning your own words) and come with such feature and UI bloat that they’re not adequate for this purpose.

What makes Vocaba GOOD:

  • Zero friction, very fast, very good UI
  • Very easy to add words, and no feature bloat
  • Instantly start swiping through words
  • Allows you to cover and “study” your list of words in less time than 2 seconds per word
  • Magically ranks the words based on how new they are, whether you can remember their definition, (and whether you’ve used the word?)
  • Trivial and NEVER a burden to manage a list of words, even a very long one, and trivial to manage the words while you’re swiping

The concept:

Tinder but for vocabulary kinda. How it goes:

  1. Open the app
  2. A word from your list that is algorithmically determined to be relevant appears
  3. You swipe:
    1. left, if you remember the definition of the word but haven’t used it
    2. right, if you remember having used the word
  4. And the next word (algorithmically selected) is shown
  5. You tap on/near the word for its definition, usage, pronunciation, what have you
  6. Buttons (maybe in a menu) exist to Like and Dislike a word, which simply makes them appear more or less often

That’s it. Dead ass simple. It’s 99% bells and whistles (elaborate swiping controls).

Word ELO:

  • Employ a system of Spaced Repetition
  • Increase a word’s score gradually over time to ensure it doesn’t remain buried in perpetuity
  • A super lightweight neural network could be a good solution to this problem, but I can’t quantify “lightweight”

Phase 2:

If Phase 1 execution is successful, and if Vocaba has yet unmet potential, we can consider this concept for Phase 2.

This could simply be a paid feature ($2.99?).

A word discovery / vocabulary building engine that doesn’t require you to enter your own words.

Words simply appear and you swipe on them. The premise will need to be tweaked by some small measure, as you would need to be able to quickly indicate that you already know and use the word.

This could exist in parallel to the own-words function, and also be used to add words to your own list

Need a better word than “list” to describe your collection of attempting-to-use vocabulary words.

Expo:

The following portion of this document is the default readme from the Expo framework. Leaving it for whatever usefulness it has. I'm not 100% convinced this will be the solution for us yet.

Aside from speed, the only part of this app that is of any concern is the swipe controls. I know I can make them perfectly using Framer Motion but I don't know how well that will play with React Native, or how it will compare to native components, and I've never used Expo before, or React Native, but this seems like an approach worthy of experimentation.

My first priority will be to experiment with the swipe feature. (Obviously, as Tinder has made this a universally understood interaction, many many people will have already figured this out. We'll play & test & stuff.)


This is an Expo project created with create-expo-app.

Get started

  1. Install dependencies

    npm install
  2. Start the app

     npx expo start

In the output, you'll find options to open the app in a

You can start developing by editing the files inside the app directory. This project uses file-based routing.

Get a fresh project

When you're ready, run:

npm run reset-project

This command will move the starter code to the app-example directory and create a blank app directory where you can start developing.

Learn more

To learn more about developing your project with Expo, look at the following resources:

Join the community

Join our community of developers creating universal apps.

vocaba's People

Contributors

easymac avatar

Watchers

 avatar

vocaba's Issues

Find a source of dictionary data

Overview

For the purposes of UI speed and unlimited free access, a complete dictionary is preferred. General considerations need to be made for performance (download size, search speed) but my present assessment is that we might not get to be very picky.

This issue is created to invite discussion and organize & keep information on the topic.

Here are the options I've investigated so far:


Meriam Webster

Meriam Webster has a free API for free projects and a paid API for paid projects (unknown cost) but only offers single definitions per request. Haven't investigated caching policy.

FreeDict (Alternate URL)

Complete dictionary (many languages available) that are available in a generic text format. We could process this as we see fit for performance.

WordSet

Complete dictionary. Unmaintained but more recently updated? Domain now belongs to an ad squatter. Splits the data into JSON files by its first character, which might not be the worst idea.

Wiktionary Dumps

Link to a repository for a script that parses Wiktionary dumps. Very thorough and free, and Wiktionary will be around in 10 years. This one might be the play. The Wiktionary dumps are provided as archives including every word in every language, so this parsing package or one of our own will be necessary. Since we'll only have to do it once every time we decide to update the dictionary format, that may not be a problem.

Wiktionary databases also includes pronunciation MP3s—when I conceived of this project it was going to be a PWA and I was going to use the Web Speech API to do an "acceptable" job pronouncing words correctly. But if these are all available, especially via API so we can stream them as-needed (or download them when users add words), that could be a much higher quality pronunciation option. (We can mix and match dictionary sources with pronunciations on this one)

This is probably a really good option?


Further investigation is needed & we'll see what problems we encounter and have to adapt to. Tagging @katy-oneill

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.