7/17/2017 - 8:50 AM

idea on new system

idea on new system

Here I would like to propose the desgin of a web-based e-learning system.


Test Givers

For test givers, the workflow will be:

  1. Create a document of questions in RStudio with R Markdown
    • use all R and R markdown legacy
    • use a new defined function to replace variables(see Example below)
  2. Export it as a collection of
    • markdown files (.md,.rmd)
    • plot images (.png,jpg,etc.)
  3. Preview as a student
    • in a web browser
    • check questions and parameters
  4. Upload exported collection to the server
  5. Done!


For students, they will:

  1. Login the system
  2. See a list of individually selected questions with randomly selected parameters
  3. Answer and click save.

System admin

As the administrator, she/he will:

  1. Install Node.js to render self-customized R markdown documents into web html pages.
  2. Install a CMS system
    • for students to log in, save, edit, log out
  3. Implement a uploading service
    • usually a ftp service


This is a R markdown example that a test giver will assemble questions.

### Problem 1

Two numbers N and {{M}} have LCM = {{LCM}} and GCF = {{GCF}}. Find N.

'''{r echo=FALSE}
df <- data.frame(M = c(16, 8, 4),
LCM = c(48, 24, 12),
GCF = c(8, 4, 2)

And one student will see:

### Problem 1
Two numbers N and 16 have LCM = 48 and GCF = 8. Find N.  

The idea is to using a data frame to output all possible value range/combinations.

Another example is as follows,

### Problem 2
If the area of a circle is {{N}}pi square feet, find its circumference. 

'''{r echo=FALSE}
df <- data.frame(N=(3:6) ^ 2)

The student will see,

### Problem 2
If the area of a circle is 25pi square feet, find its circumference. 


  1. Compared to Latex, R Markdown is much easier to implement, customize and more efficient in compilation.

  2. With R Markdown, we could fully use the R package, functions, markdown syntax, equations, plots, tables to generate high-quality documents.

  3. With self-customized functions in Node.js, it is convenient to extend the syntax for furthur individual needs.