What is flashnotes?
Flashnotes = Flashcards + Notes
Learning is time consuming. There are specific methods of reducing the time it takes to learn a subject - one is called the space-repetition algorithm. Read more about it on supermemo
You see these used often when learning a language for the first time. You make flashcards,the front is the word in English, the back is in French let's say. You review your cards over time, and build a knowledge base to form sentences in French. Then you practice speaking in French.
Flashcards have other applications besides learning. Most notably in STEM, especially in the medical field when learning different parts in anatomy, or engineering formulas.
You can review flashcards one of two ways. Both have weaknesses:
1) Download someone else's premade deck 2) Make your own deck
The former let's you build a knowledge base quickly, but it doesn't give context as to why it's built, leading to poor long term retention.
The latter let's you build a stronger mental connection to that card. Allowing you to remember things better long term. However, it's time consuming writing flashcards by hand
There's always a tradeoff between retaining information long term, and the amount of effort you spend on it.
However, you can have the best of both worlds with FLASHNOTES
Learning comes in a few predictable stages:
1) You learn the concept by breaking it down 2) You apply it 3) You remember how you applied it
Flashcards are mostly useful for (1) and (3). Between steps 1,2,3 you'll more than likely take notes along the way of things you learned.
FLASHNOTES let's you focus on what you think is most important, and in the background builds flashcards based off what you write.
This is for instance, how a pre-med student might use flashcards + notes traditionally for an exam
1) They outline course notes 2) They repeat what they wrote into flashcards
Traditionally, steps (1) and (2) are done in two seperate software solutions (anki and googledocs for instance). This leads to a lot of wasted time, and a lot of context switching.
FLASHNOTES merges these two steps together in a no-context switch fashion. It generates flashcards based off what you write, research, and what you tell it your intents in learning are.
Down the road it will use machine learning to fine tune your preferences.
TL-DR; If you have to learn and memorize lots of things, flashnotes saves you time through scientific proven space-reptition algorithm invented by Piotr Wozniack in 1995
Go to backend
folder, add your env
keys from env.sample
In root folder, type
npm install
npm run install-client
npm run install-server
npm run dev
On development mode, frontend starts on port 3000, backend port 5000
[ ] Toggle switch for rendering front / back of flash card
[ ] Add Routing
/decks/:id/review
, and decks/:id/edit
/cards/edit/?deckid=deckid
params because this could be done on decks
or deck
route. Use history
to go back somehow, as user might modify query parameters for search (possibly cache this?)[ ] Quiz functionality
decks/:id
Position-absolute
on number of cards left in review queue with low opacity, until hovered.[ ] Notes functionality
[ ] Accessibility / IME / Language support
[ ] Login / Register / Auth
[ ] Development Tools
[ ] Marketing
Memory based flashcard systems uses an algorithm created by Piotr Wozniack in 1995 called the "Space repetition algorithm".
The space-repetition algorithm (e.g. when flashcards need to be reviewed) will be defined under the cards
table. Each card will have a rating from 1-10, 10 being a difficult card. If a card is deemed difficult, it will be seen more frequently in reviews.
This blogpost will be used to model the algorithm
http://www.blueraja.com/blog/477/a-better-spaced-repetition-learning-algorithm-sm2
See mocked up data sets currently being used under data
folder. Not entirely secure (need to think about private routes)