Vulcan: remember anything

Introduction

Installation

$ pip install vulcan

Overview

Vulcan is a terminal emulator that enables developers to store, review and recall knowledge verbatim.

shyal@vulcan:~ python                                                                         Tags           
Python 2.7.10 (default, Jul 14 2015, 19:46:27)                                    [ ] cs_hosts               
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin                  [X] python                 
Type "help", "copyright", "credits" or "license" for more information.                                       
>>> from urwid import *                                                                                      
>>>                                                                                                          
>>> def exit_on_q(key):                                                                                      
>>>     if key in ('q', 'Q'):                                                                                
>>>         raise ExitMainLoop()                                                                             
>>>                                                                                                          
>>> palette = [                                                                                              
>>>     ('banner', 'black', 'light gray'),                                                                   
>>>     ('streak', 'black', 'dark red'),                                                                     
>>>     ('bg', 'black', 'dark blue'),]                                                                       
>>>                                                                                                          
>>> txt = Text(('banner', u" Hello World "), align='center')                                                 
>>> fill = Filler(AttrMap(..., 'streak'))                                                                    
>>> loop = MainLoop(AttrMap(fill, 'bg'), palette, unhandled_input=exit_on_q)                                 
>>> loop.run()                                                                                               
>>>                                                                                                          
>>> #                                                                                                        
>>>                                                                                                          
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                  < Quit                    >

It can be used as a terminal-based replacement for Anki. This enables you to manage all your cards via the keyboard. It uses the urwid library to render the in-terminal GUI.

Features

  • Add / Edit / Delete flashcards via the terminal
  • Filter flashcards by tag
  • Graph displaying progress for each card
  • Interactive Environments:
    • Bash
    • Python
    • MariaDB
  • Syntax Highlight:
    • Python

Spaced Repetition

Spaced repetition is a study method that involves reviewing ‘flashcards’ on a regular (hopefully daily) basis. The more often a card is answered correctly, the less often it needs to be reviewed. Likewise, the more often a card is answered incorrectly, the more often it needs to be reviewed.

Issues / Feature Requests

Feel free to make feature requests on the issue tracker on gitlab.

Usage

Launching

Launching vulcan is done in the terminal, with the vulcan command:

$ vulcan

vulcan 1.0                  f1:help                    f3:grid                     f5:stats                   
                                                                                              Tags           
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                  < Quit                    >
No Cards - press ctrl-n to insert a new one                                                                   

Press ctrl n to enter the edit card screen

vulcan 1.0                  f1:help                    f3:grid                     f5:stats                   
Preamble:                                                                                                    
                                                                                                             
____________________________________________________________________________________________________________ 
Question:                                                                                                    
                                                                                                             
____________________________________________________________________________________________________________ 
Answer:                                                                                                      
                                                                                                             
____________________________________________________________________________________________________________ 
Tag:                                                                                                         
                                                                                                             
____________________________________________________________________________________________________________ 
< Add                                                                                                      > 
< Return                                                                                                   > 
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
No Cards - press ctrl-n to insert a new one                                                                   

Add a question and an answer

vulcan 1.0                  f1:help                    f3:grid                     f5:stats                   
Preamble:                                                                                                    
                                                                                                             
____________________________________________________________________________________________________________ 
Question:                                                                                                    
Einstein's Famous Equation                                                                                   
____________________________________________________________________________________________________________ 
Answer:                                                                                                      
e=mc^2                                                                                                       
____________________________________________________________________________________________________________ 
Tag:                                                                                                         
physics                                                                                                      
____________________________________________________________________________________________________________ 
< Add                                                                                                      > 
< Return                                                                                                   > 
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
No Cards - press ctrl-n to insert a new one                                                                   

Pressing 'Add' adds to card to the deck, and resets the input fields

vulcan 1.0                  f1:help                    f3:grid                     f5:stats                   
Preamble:                                                                                                    
                                                                                                             
____________________________________________________________________________________________________________ 
Question:                                                                                                    
                                                                                                             
____________________________________________________________________________________________________________ 
Answer:                                                                                                      
                                                                                                             
____________________________________________________________________________________________________________ 
Tag:                                                                                                         
                                                                                                             
____________________________________________________________________________________________________________ 
< Add                                                                                                      > 
< Return                                                                                                   > 
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
Card added successfully                                                                                       

Let's add a second card

vulcan 1.0                  f1:help                    f3:grid                     f5:stats                   
Preamble:                                                                                                    
Famous vulcan saying                                                                                         
____________________________________________________________________________________________________________ 
Question:                                                                                                    
live long and ________                                                                                       
____________________________________________________________________________________________________________ 
Answer:                                                                                                      
prosper                                                                                                      
____________________________________________________________________________________________________________ 
Tag:                                                                                                         
trivia                                                                                                       
____________________________________________________________________________________________________________ 
< Add                                                                                                      > 
< Return                                                                                                   > 
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
Card added successfully                                                                                       

And a third

vulcan 1.0                  f1:help                    f3:grid                     f5:stats                   
Preamble:                                                                                                    
                                                                                                             
____________________________________________________________________________________________________________ 
Question:                                                                                                    
Logic is the _______ of our civilization, with which we ascend from chaos, using reason as our guide.        
____________________________________________________________________________________________________________ 
Answer:                                                                                                      
cement                                                                                                       
____________________________________________________________________________________________________________ 
Tag:                                                                                                         
trivia                                                                                                       
____________________________________________________________________________________________________________ 
< Add                                                                                                      > 
< Return                                                                                                   > 
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
Card added successfully                                                                                       

Vulcan now proceeds to asking you those questions

vulcan 1.0                  f1:help                    f3:grid                     f5:stats                   
                                                                                              Tags           
                                                                                  [X] physics                
                                                                                  [X] trivia                 
                                                                                                             
shyal@vulcan:~ # Einstein's Famous Equation                                                                  
shyal@vulcan:~                                                                                               
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                  < Quit                    >
Card added successfully                                                                                       

What happens if we enter the wrong answer

vulcan 1.0                  f1:help                    f3:grid                     f5:stats                   
                                                                                              Tags           
                                                                                  [X] physics                
                                                                                  [X] trivia                 
                                                                                                             
shyal@vulcan:~ # Einstein's Famous Equation                                                                  
shyal@vulcan:~ f = ma                                                                                        
wrong.. you wrote:                                                                                           
f = ma                                                                                                       
please remember:                                                                                             
e=mc^2                                                                                                       
                                                                                                             
Famous vulcan saying                                                                                         
                                                                                                             
                                                                                                             
shyal@vulcan:~ # live long and ________                                                                      
shyal@vulcan:~                                                                                               
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                  < Quit                    >
Card added successfully                                                                                       

Vulcan has an in-built help menu you can access with F1

vulcan 1.0                  f1:help                    f3:grid                     f5:stats                   
                                                                                              Tags           
                                                                                  [X] physics                
                                                                                  [X] trivia                 
                ───────────────────────────────────────────────────────────────────────────                 
shyal@vulcan:~ #                                                                                            
shyal@vulcan:~ fVulcan: remember anything.                                                                  
wrong.. you wrot                                                                                            
f = ma          RTVM: read the vulcan manual at https://vulcan.sh                                           
please remember:                                                                                            
e=mc^2          Keyboard Shortcuts:                                                                         
                                                                                                            
Famous vulcan sa?           -       open this help menu                                                     
                ctrl n      -       open add card menu                                                      
                ctrl e      -       edit current card                                                       
shyal@vulcan:~ #ctrl d      -       delete current card                                                     
shyal@vulcan:~                                                                                              
                                                                                                            
                                                                                                            
                                                _____                                                       
                                       __...---'-----`---...__                                              
                                  _===============================                                          
                 ______________,/'      `---..._______...---'                                               
                (____________LL). .    ,--'                                                                 
                ───────────────────────────────────────────────────────────────────────────                 
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                  < Quit                    >
Card added successfully                                                                                       

Let's take a look at your stats by pressing F5

vulcan 1.0                  f1:help                    f3:grid                     f5:stats                   
                                                                                              Tags           
                                                                                  [X] physics                
                                                                                  [X] trivia                 
                ───────────────────────────────────────────────────────────────────────────                 
shyal@vulcan:~ #                                                                                            
shyal@vulcan:~ fVulcan stats.                                                                               
wrong.. you wrot                                                                                            
f = ma          total cards: 3                                                                              
please remember:reviews today: 1                                                                            
e=mc^2                                                                                                      
                questions asked: 1                                                                          
Famous vulcan sasuccesses: 0                                                                                
                failures: 1                                                                                 
                                                                                                            
shyal@vulcan:~ #                                                                                            
shyal@vulcan:~  < Close                                                                   >                 
                                                                                                            
                                                                                                            
                                                                                                            
                                                                                                            
                                                                                                            
                                                                                                            
                                                                                                            
                ───────────────────────────────────────────────────────────────────────────                 
                                                                                                             
                                                                                                             
                                                                                                             
                                                                                  < Quit                    >
Card added successfully                                                                                       

Vulcan can also display your cards in a grid by pressing F3

vulcan 1.0                  f1:help                    f3:grid                     f5:stats                   
     ─────────────────────────────────────────────────────────────────────────────────────────────────      
     ID    | Tag        | Question         | Answer           | CSuccesses       | CFailures        |       
     1     | physics    | Einstein's       | e=mc^2           | 0                | 1                |       
                          Famous Eq                                                                         
shyal2     | trivia     | live long and    | prosper          | 0                | 0                |       
shyal                     ______                                                                            
wrong3     | trivia     | Logic is the     | cement           | 0                | 0                |       
f = m                     _______                                                                           
pleas< Close                                                                                         >      
e=mc^                                                                                                       
                                                                                                            
Famou                                                                                                       
                                                                                                            
                                                                                                            
shyal                                                                                                       
shyal                                                                                                       
                                                                                                            
                                                                                                            
                                                                                                            
                                                                                                            
                                                                                                            
                                                                                                            
                                                                                                            
                                                                                                            
                                                                                                            
                                                                                                            
     ─────────────────────────────────────────────────────────────────────────────────────────────────      
                                                                                  < Quit                    >
Card added successfully                                                                                       

Contribute

Areas that need help:

  • overall dev
  • documentation
  • automated testing

Indices and tables