Guiding principle: put as much in the URL as is reasonable.

Things that happen:

Worksheet:


/!\ Edit conflict - other version:



/!\ Edit conflict - your version:



/!\ End of edit conflict


Cell:

  • change input
  • evaluate
  • get_output(start=0)

    • -- start - offset telling how much text we've already received -- output: {'status': ---, 'output': ---}

  • update metadata: hide, lock, cell priority...

JSON <---> HTTP

HTTP Requests:

Structure of URL:

/home/ username / worksheet_num / cell_id /..

  • ../update

JSON Messages:

  • 'id' : id

  • 'status' : 'success' or 'failure'

Database Calls:

  • increase_worksheet_state_number()
  • update_cell_input(cell_id, input_text)

  • evaluate_cell(cell_id)

  • insert_after_cell(cell_id)