Artikash / Spaced-Repetition

Memorize flashcards faster with the power of spaced repetition.

Home Page:https://spaced-repetition-online.herokuapp.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Introduction

Spaced Repetition is a flashcard review web app based on the technique of Spaced Repetition, a scientifically proven method to memorize information. Use it to memorize everything from vocabulary to equations to historical dates!

All the flashcard information is stored in the cloud, so you can review your flashcards wherever and whenever you have internet. It's a web app: just go to the website to review, no installation required!

Usage

First things first, sign in with Google.

To create your first "deck" of flashcards, click on "New Deck", type in the deck name, and hit enter. The deck starts with a single placeholder card: press "View Deck" to create more (you can edit flashcards by clicking on them).

Once you have created the flashcards you want, click "Study" to start studying them. I recommend trying to study each deck once per day: ideally, make it a routine!

For Developers

Available Commands

Note: You cannot run the server without a database URL and OAuth2 client secret, which I'm obviously not giving away. You will need to obtain those yourself, or you could instead simply redirect HTTP requests by changing proxy in package.json to the Heroku server I have running at https://spaced-repetition-online.herokuapp.com

In the project directory, you can run:

npm start

Builds the app for production to the build folder, then starts a server for it if possible.
It correctly bundles React in production mode and optimizes the build for the best performance.
Used by Heroku.

npm test

Launches the test runner (jest) in the interactive watch mode.

npm run dev

Runs the app in the development mode.
Requires a server to be currently running (you can use mine as described above).
Open http://localhost:3000 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

npm run build

Builds the clientside of the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.

npm run eject

Note: this is a one-way operation. Once you eject, you can’t go back!
You shouldn't ever use eject: the scripts already in this project should be sufficient.

If you aren’t satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project.

Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.

Database Schema

The MySQL database being used contains a single table: cards. This table was created with

CREATE TABLE cards (
   id INT UNSIGNED AUTO_INCREMENT,
   user VARCHAR(255),
   deck VARCHAR(255),
   front TEXT,
   back TEXT,
   confidence SMALLINT, 
   time INT UNSIGNED,
   PRIMARY KEY (id)
 );

Confidence is how confident the spaced repetition algorithm is that this card is memorized.
Time is a timestamp of when this card should be reviewed next, measured in seconds since the UNIX epoch.

This project was bootstrapped with Create React App.

You can find a guide for performing common tasks in Create React App here, although some of that does not apply or has already been set up in this project.

About

Memorize flashcards faster with the power of spaced repetition.

https://spaced-repetition-online.herokuapp.com

License:MIT License


Languages

Language:JavaScript 80.1%Language:HTML 13.7%Language:CSS 6.2%