Coder Social home page Coder Social logo

studycards's People

Watchers

 avatar

studycards's Issues

Implement proper weighing algorithm

When the study draft is complete a weighing algorithm needs to be implemented in the following cases:
[ ] When drawing a card from a study deck
[ ] When selecting known cards while assembling a study deck

Allow tagging of cards

It should be possible to tag cards within a set, in order to study subsets of a set of to find cards easier when editing them.

Make some components into containers

Only some components should be connected to redux, but these should not be in charge of any rendering logic. These are containers and should be separated from the normal components.

Add study history data

Besides the StudyData that contains information about the current study status (which cards are due when and such) there should be data for previous study sessions.

This data should be used to generate graphs of how the states of the cards progresses and study heatmaps showing activity.

Clever set meta updating

When set meta is updated, the following should be done to prevent conflicts:

  1. Set meta is updated and the request is being sent to the server
  2. Before the request is complete, the set meta is updated again
  3. The first request is cancelled and a new request that is the result of both updates is sent.

That way only one request will be sent at once to prevent race conditions. And the request will include information from previous cancelled requests.

Change ParseError to include a severity

Right now all errors prevent the file from being loaded even though some errors can be corrected by the parser.
If the error can be corrected by the parser, it should still be logged and shown to the user, but the set should still be imported.

This can be done by adding a severity parameter to errors and only preventing import on severe errors.

Print set

Create an overview of all cards that can easily be printed

Create study mode draft

Study mode is used to actually read the cards.
What determines which cards are shown, in which order and how many?

An algorithm needs to be developed.

Add option for the front and back to appear reversed

Some cards can be studied in both directions. E.g. if they are words in a foreign language.

Casa -> House

The card can also be studied

House -> Casa

This should be possible when studying. Perhaps by adding an option so cards can be studied in reverse (or only cards with certain tags).

Setup linting

Right now the code quality is all over the place. A linter should enforce a strict style.

Edit card when studying

It should be possible to edit the current card in the study session without interrupting the study session.

Tests for parser

Tests need to be created in general, but the parser especially needs them so that modifications won't prevent it from reading older export file formats.

Make taginput text autosize

Currently the text input is not big enough for the tag length limit.
The text input should automatically size based on how much is written in it.

Get rid of setcontroller

Instead of having a setcontainer, the individual set pages just render the necessary components for the header themselves. By encapsulating these components the boilerplate will be minimal.
This setup is much more convenient when combined with React router later on. It also allows the individual segments to reload only the parts that are relevant for them.

Add tooltips and help orbs explaining concepts

It may be difficult for new people to understand exactly what decisions are being made in regard to which cards are selected for studying. Therefore tooltips should be added to explain these concepts.

[ ] X cards are new. Tooltip on new, explaining what a new card is
[ ] X cards are ready for review. Tooltip on review explaining what that means.
[ ] A help orb besides the buttons for selecting how difficult the card is. Clicking it shall explain exactly what each button does
[ ] A help orb in the editor, showing a window with documentation about the rich text editor. Especially features not found in other editors need explaining, like Reveal (and inline images).

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.