IP Library › Granted Patent US 10,741,091
Granted Patent B2
US 10,741,091 · App. 15/424,562 · Granted Aug 11, 2020

Methods and systems for mitigating the effects of intermittent network connectivity in educational settings

Inventors: Joshua Tolman (Elmhurst, IL); Jerry Busser (Shaker Heights, OH)
Assignee: ThinkCERCA.com, Inc.
G09B7/02G06F3/04847G06F40/169G09B5/02G09B5/06G09B5/08G09B7/06G09B7/08H04L67/02H04L67/06H04L67/327H04L67/42
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,741,091
App. No.
15/424,562
Granted
Aug 11, 2020
Kind
B2
Abstract

Disclosed herein are methods and systems for mitigating the effects of intermittent network connectivity in educational settings. A student assignment is presented via a client-side user interface of an educational platform. The client-side user interface is initially operated in a read/write mode. Student input is received via the client-side user interface in connection with the student assignment, and is responsively locally stored. A remote-save-triggering event is detected, and a remote-save method is responsively executed. The remote-save method attempts to save the locally stored student input to a remote server. If the remote-save method returns a remote-save-success promise, the client-side user interface is continued to be operated in the read/write mode. If the remote-save method returns a remote-save-failure promise, the client-side user interface is transitioned to being operated in a read-only mode.

Claims (57)

1. A method comprising:

presenting a student assignment on a client-side user interface of an educational platform via execution of a codebase on a client-side computing device by presenting, in a view, data from a studentAssignment model provided by the codebase, the studentAssignment model comprising a plurality of studentResponse models corresponding to respective assessable tasks associated with the presented student assignment;

initially operating the client-side user interface in a read/write mode;

receiving user input associated with an argument-building-block studentResponse model from the plurality of studentResponse models, the argument-building-block studentResponse model having a status parameter and a responseData element for storing data associated with a set of argument-building-block elements, the data including at least (i) an ordering of the argument-building-block elements, and (ii) text content of the argument-building-block elements received via a corresponding set of argument input fields;

responsive to receiving the user input associated with the argument-building-block studentResponse model, changing the status parameter from a clean state to a dirty state;

detecting a remote-save-triggering event, and responsively executing a remote-save method that attempts to save the received user input to a remote server, wherein the remote-save method returns either a remote-save-success promise or a remote-save-failure promise;

continuing to operate the client-side user interface in the read/write mode and changing the status parameter from the dirty state to the clean state if the remote-save method returns a remote-save-success promise; and

transitioning to operating the client-side user interface in a read-only mode if the remote-save method returns a remote-save-failure promise.

2. The method of claim 1 , wherein presenting the student assignment via the client-side user interface comprises presenting the student assignment via a web browser that is executing on a client-side computing device, the method further comprising locally storing the received user input in a memory of the client-side computing device.

3. The method of claim 1 , wherein the remote-save-triggering event comprises an expiration of a remote-save-triggering timer.

4. The method of claim 1 , wherein detecting the remote-save-triggering event comprises detecting the remote-save-triggering event via the client-side user interface.

5. The method of claim 1 , further comprising:

downloading the codebase to the client-side computing device from the remote server, wherein:

the codebase has a model-view-controller (MVC) architecture;

the codebase defines the studentAssignment model that corresponds with the presented student assignment; and

executing the remote-save method comprises the studentAssignment model executing the remote-save method.

6. The method of claim 5 , wherein receiving the user input comprises a studentResponse model of the plurality of studentResponse models receiving the user input.

7. The method of claim 5 , wherein each studentResponse model of the plurality of studentResponse models includes a respective studentResponse-model-specific remote-save method, each of which returns either a studentResponse-model-specific remote-save-success promise or a studentResponse-model-specific remote-save-failure promise.

8. The method of claim 7 , wherein the studentAssignment model executing the remote-save method comprises the studentAssignment model:

instructing each studentResponse model of the plurality of studentResponse models to execute its respective studentResponse-model-specific remote-save method;

returning a remote-save-success promise from the remote-save method if every such studentResponse-model-specific remote-save method returns a studentResponse-model-specific remote-save-success promise; and

returning a remote-save-failure promise from the remote-save method if at least one such studentResponse-model-specific remote-save method returns a studentResponse-model-specific remote-save-failure promise.

9. The method of claim 8 , wherein a given studentResponse model executing its respective studentResponse-model-specific remote-save method comprises the given child studentResponse model:

determining whether a status parameter of the given studentResponse model is in a clean state or a dirty state, wherein the dirty state corresponds to the given child studentResponse model containing updated user input with respect to a previous execution of the remote-save method, wherein the clean state corresponds to the given child studentResponse model not containing such updated user input;

returning a studentResponse-model-specific remote-save-success promise from its respective studentResponse-model-specific remote-save method if the status parameter is in the clean state; and

executing an attempt protocol to attempt to save the updated user input to the remote server if the status parameter is in the dirty state, and returning a studentResponse-model-specific remote-save-success promise from its respective studentResponse-model-specific remote-save method if the attempt protocol results in successfully saving the updated student user input to the remote server, and instead returning a studentResponse-model-specific remote-save-failure promise from its respective studentResponse-model-specific remote-save method if the attempt protocol does not result in successfully saving the updated user input to the remote server.

10. The method of claim 9 , wherein the status parameter of the given studentResponse model is initially set to the clean state, the method further comprising:

changing the status parameter of the given studentResponse model from the clean state to the dirty state responsive to receiving the user input via the client-side user interface.

11. The method of claim 10 , further comprising:

resetting the status parameter of the given studentResponse model to the clean state in connection with returning a studentResponse-model-specific remote-save-success promise from the respective studentResponse-model-specific remote-save method of the given child studentResponse model.

12. The method of claim 9 , wherein executing the attempt protocol comprises making multiple attempts to save the updated user input to the remote server.

13. The method of claim 5 , wherein the studentAssignment model executing the remote-save method comprises the studentAssignment model:

determining that a subset of the studentResponse models of the plurality of studentResponse models contain updated user input with respect to a previous execution of the remote-save method;

instructing each studentResponse model in the subset to execute its respective studentResponse-model-specific remote-save method;

returning a remote-save-success promise from the remote-save method if every such studentResponse-model-specific remote-save method returns a studentResponse-model-specific remote-save-success promise; and

returning a remote-save-failure promise from the remote-save method if at least one such studentResponse-model-specific remote-save method returns a studentResponse-model-specific remote-save-failure promise.

14. The method of claim 13 , wherein determining whether a given studentResponse model of the plurality of studentResponse models contains updated user input with respect to a previous execution of the remote-save method comprises determining whether a status parameter of the given studentResponse model is in a clean state or a dirty state, wherein the dirty state corresponds to the given studentResponse model containing updated user input with respect to a previous execution of the remote-save method, wherein the clean state corresponds to the given studentResponse model not containing such updated user input.

15. The method of claim 14 , wherein a given studentResponse model executing its respective studentResponse-model-specific remote-save method comprises the given studentResponse model:

executing an attempt protocol to attempt to save the updated user input to the remote server;

returning a studentResponse-model-specific remote-save-success promise from its respective studentResponse-model-specific remote-save method if the attempt protocol results in successfully saving the updated user input to the remote server; and

returning a studentResponse-model-specific remote-save-failure promise from its respective studentResponse-model-specific remote-save method if the attempt protocol does not result in successfully saving the updated user input to the remote server.

16. The method of claim 15 , wherein the status parameter of the given studentResponse model is initially set to the clean state, the method further comprising:

changing the status parameter of the given studentResponse model from the clean state to the dirty state responsive to receiving the user input via the client-side user interface; and

resetting the status parameter of the given studentResponse model to the clean state in connection with returning a studentResponse-model-specific remote-save-success promise from the respective studentResponse-model-specific remote-save method of the given studentResponse model.

17. The method of claim 1 , wherein the remote-save method includes a retry protocol.

18. A client-side computing device comprising:

a client-device communication interface;

a client-device user interface;

a client-device processor; and

client-device data storage containing client-device instructions executable by the client-device processor for causing the client-side computing device to carry out a set of functions, wherein the set of functions includes:

presenting a student assignment on a client-side user interface of an educational platform via the client-device user interface by presenting, in a view, data from a studentAssignment model provided by a codebase, the studentAssignment model comprising a plurality of studentResponse models corresponding to respective assessable tasks associated with the presented student assignment; wherein the client-side user interface is operable in a number of different modes including a read/write mode and a read-only mode;

initially operating the client-side user interface in the read/write mode;

receiving user input via the client device user interface, the user input associated with an argument-building-block studentResponse model from the plurality of studentResponse models, the argument-building-block studentResponse model having a status parameter and a responseData element for storing data associated with a set of argument-building-block elements, the data including at least (i) an ordering of the argument-building-block elements, and (ii) text content of the argument-building-block elements received via a corresponding set of argument input fields;

responsive to receiving the user input associated with the argument-building-block studentResponse model, changing the status parameter from a clean state to a dirty state;

detecting a remote-save-triggering event, and responsively executing a remote-save method that attempts, via the client-device communication interface, to save the received user input to a remote server, wherein the remote-save method returns either a remote-save-success promise or a remote-save-failure promise;

continuing to operate the client-side user interface in the read/write mode mode and changing the status parameter from the dirty state to the clean state if the remote-save method returns a remote-save-success promise; and

transitioning to operating the client-side user interface in a read-only mode if the remote-save method returns a remote-save-failure promise.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2017
From: TOLMAN, JOSH; BUSSER, JERRY
To: THINKCERCA.COM INC.
Reel/Frame 042933/0150 →
Continuity (3)
Provisional Application 62292012 · Feb 5, 2016
Provisional Application 62292005 · Feb 5, 2016
Related Publication 20170230479A1 · Aug 10, 2017
Cited By (1)
US 12,718,922