Coder Social home page Coder Social logo

flashcards's Introduction

FlashCards

FlashCards is a web application that facilitates the learning of new vocabulary by using, unsurprisingly, flash cards.

Deployment

FlashCards is a Ruby on Rails application. The hard requirements for running FlashCards are:

  1. Ruby 2.1.5
  2. Ability to install Ruby Gems (via Bundler).
  3. PostgreSQL

It is recommended to use Heroku: simply push this repository to Heroku and you are good to go.

Optional Configurations

Pronunciation & Dictionaries

FlashCards can pronounce words added. This is achieve by two means: the Web Speech API and dictionaries. Web Speech API will be used if it is supported by the client. At the moment, support for Web Speech API is sporadic - only Chrome and Safari support Web Speech API. To overcome this shortcoming, dictionary can be used. When requested, FlashCards can query one of the two supported dictionaries (Cambridge and Merriam-Webster) for pronunciation for certain words in the form of audio file. Since neither of these dictionaries has the audio files for all English words, it is recommended to have both enabled to maximize coverage.

Cambridge

  1. Request an API key from Cambridge Dictionaries Online.
  2. Set the CAMBRIDGE_API_KEY environment variable to the API key given.

Merriam-Webster

  1. Request an API key from Merriam-Webster Developer Center.
  2. Set the MERRIAM_WEBSTER_API_KEY environment variable to the API key given.

Redis Cache

Querying the dictionaries is slow. As a result, it does not make sense to query the same thing twice, especially because the pronunciation audio files do not change frequently, if at all. Hence, it is recommended to enable Redis to perform some caching if the dictionaries are used.

To enable Redis, set the REDIS_URL environment variable to point to your Redis instance. Note that if your Redis instance is password-protected, the URL should include the username and/or password.

ElasticSearch

'nuff said. Set ELASTIC_SEARCH_PATH to point to your ElasticSearch instance. Again, it should include your ElasticSearch username and/or password, if necessary. Also set ELASTIC_SEARCH_INDEX to be the index in which the cards should be indexed.

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.