IP Library › Granted Patent US 12,052,320
Granted Patent B2
US 12,052,320 · App. 16/258,161 · Granted Jul 30, 2024

Software framework for progress tracking in a classroom setting

Inventors: John S. Baumgarten (San Jose, CA); Jennifer U. Song (San Francisco, CA); Marin Eubanks (Santa Clara, CA); Pavel V. Dudrenov (San Francisco, CA); Sugam Jain (San Francisco, CA); Leo Lee (San Jose, CA); Saman Vafaee (San Francisco, CA)
Assignee: Apple Inc.
H04L67/535G06F8/70G09B5/14
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 12,052,320
App. No.
16/258,161
Granted
Jul 30, 2024
Kind
B2
Abstract

This application relates to a client-server architecture that enables progress tracking related to assignments generated by an instructor. A hand-out can include attachments that specify placeholders for hand-ins and/or activities to be performed by the student as part of the assignment. Some activities can be performed using third-party applications that implement at least a portion of a software framework that causes the applications to generate progress tracking information provided to a daemon executing in the background of a client device. The daemon and/or a client application interface with one or more network services to enable an instructor to utilize the progress tracking information. The network services can include a hand-out service utilized to generate hand-outs assigned to a group of students. The network services can also include a progress pipeline including a number of services configured to process progress tracking information received from a plurality of client devices.

Claims (58)

1. A method for tracking student activity on a client device, the method comprising, by a background process executing on the client device:

receiving, from each application of a plurality of applications executing on the client device, one or more respective contexts that define respective structures of progress tracking information to be provided by the application in relation to student activities performed within the application, wherein each respective context is associated with a respective unique context identifier (ID);

storing the respective contexts into a collection of contexts;

receiving, from a management entity, an assignment of at least one activity to be performed within at least one application of the plurality of applications, wherein the at least one activity is specified in accordance with the respective structure of at least one of the contexts in the collection of contexts;

receiving progress tracking information from an application of the plurality of applications, wherein the progress tracking information corresponds to the at least one activity and includes one or more unique context IDs;

identifying, within the collection of contexts, one or more respective contexts that correspond to the one or more unique context IDs;

utilizing the one or more respective contexts to interpret and filter the progress tracking information to generate filtered progress tracking information;

storing the filtered progress tracking information into a remote database;

generating metadata associated with the filtered progress tracking information; and

transmitting the metadata to at least one service accessible by the client device over a network.

2. The method of claim 1 , wherein each application of the plurality of applications implements at least a portion of a software framework shared by the background process.

3. The method of claim 1 , wherein filtering the progress tracking information comprises:

determining whether progress tracking is enabled or disabled for each application of the plurality of applications; and

discarding the progress tracking information when the progress tracking information is received from any applications for which progress tracking is disabled, or

processing the progress tracking information when the progress tracking information is received from any applications for which progress tracking is enabled to generate the filtered progress tracking information.

4. The method of claim 1 , wherein, for a given application of the plurality of applications, the one or more respective contexts are defined by a respective developer of the given application.

5. The method of claim 1 , wherein the progress tracking information stored in the remote database is secured using disk encryption for each zone in the remote database.

6. The method of claim 1 , wherein the remote database is a network-based storage service apportioned into a plurality of zones storing different data, and each zone is limited in scope to any combination of at least one of an organization identifier, a class identifier, a user identifier, a unique context ID, or a hand-out identifier.

7. The method of claim 6 , wherein the progress tracking information is stored in a personal zone within the network-based storage service, the personal zone associated with a particular user identifier for a user account associated with a client application installed on the client device.

8. The method of claim 1 , wherein the metadata includes a reference to the progress tracking information in the remote database as well as at least one of a class identifier, a user identifier, or one or more unique context IDs.

9. The method of claim 8 , wherein the one or more unique context IDs are included in the metadata.

10. A non-transitory computer readable storage medium configured to store instructions that, when executed by a processor included in a client device, cause the client device to implement a background process for tracking student activity on the client device, wherein the background process is configured to carry out steps that include:

receiving, from each application of a plurality of applications executing on the client device, one or more respective contexts that define respective structures of progress tracking information to be provided by the application in relation to student activities performed within the application, wherein each respective context is associated with a respective unique context identifier (ID);

storing the respective contexts into a collection of contexts;

receiving, from a management entity, an assignment of at least one activity to be performed within at least one application of the plurality of applications, wherein the at least one activity is specified in accordance with the respective structure of at least one of the contexts in the collection of contexts;

receiving progress tracking information from an application of the plurality of applications, wherein the progress tracking information corresponds to the at least one activity and includes one or more unique context IDs;

identifying, within the collection of contexts, one or more respective contexts that correspond to the one or more unique context IDs;

utilizing the one or more respective contexts to interpret and filter the progress tracking information to generate filtered progress tracking information;

storing the filtered progress tracking information into a remote database;

generating metadata associated with the filtered progress tracking information; and

transmitting the metadata to at least one service accessible by the client device over a network.

11. The non-transitory computer readable storage medium of claim 10 , wherein each application of the plurality of applications implements at least a portion of a software framework shared by the background process.

12. The non-transitory computer readable storage medium of claim 10 , wherein filtering the progress tracking information comprises:

determining whether progress tracking is enabled or disabled for each application of the plurality of applications; and

discarding the progress tracking information when the progress tracking information is received from any applications for which progress tracking is disabled, or

processing the progress tracking information when the progress tracking information is received from any applications for which progress tracking is enabled to generate the filtered progress tracking information.

13. The non-transitory computer readable storage medium of claim 10 , wherein, for a given application of the plurality of applications, the one or more respective contexts are defined by a respective developer of the given application.

14. The non-transitory computer readable storage medium of claim 10 , wherein the progress tracking information stored in the remote database is secured using disk encryption for each zone in the remote database.

15. The non-transitory computer readable storage medium of claim 10 , wherein the remote database is a network-based storage service apportioned into a plurality of zones storing different data, and each zone is limited in scope to any combination of at least one of an organization identifier, a class identifier, a user identifier, a unique context ID, or a hand-out identifier.

16. A client device, comprising:

at least one processor; and

at least one memory storing instructions that, when executed by the at least one processor, cause the client device to implement a background process for tracking student activity on the client device, wherein the background process is configured to carry out steps that include:

receiving, from each application of a plurality of applications executing on the client device, one or more respective contexts that define respective structures of progress tracking information to be provided by the application in relation to student activities performed within the application, wherein each respective context is associated with a respective unique context identifier (ID);

storing the respective contexts into a collection of contexts;

receiving, from a management entity, an assignment of at least one activity to be performed within at least one application of the plurality of applications, wherein the at least one activity is specified in accordance with the respective structure of at least one of the contexts in the collection of contexts;

receiving progress tracking information from an application of the plurality of applications, wherein the progress tracking information corresponds to the at least one activity and includes one or more unique context IDs;

identifying, within the collection of contexts, one or more respective contexts that correspond to the one or more unique context IDs;

utilizing the one or more respective contexts to interpret and filter the progress tracking information to generate filtered progress tracking information;

storing the filtered progress tracking information into a remote database;

generating metadata associated with the filtered progress tracking information; and

transmitting the metadata to at least one service accessible by the client device over a network.

17. The client device of claim 16 , wherein each application of the plurality of applications implements at least a portion of a software framework shared by the background process.

18. The client device of claim 16 , wherein filtering the progress tracking information comprises:

determining whether progress tracking is enabled or disabled for each application of the plurality of applications; and

discarding the progress tracking information when the progress tracking information is received from any applications for which progress tracking is disabled, or

processing the progress tracking information when the progress tracking information is received from any applications for which progress tracking is enabled to generate the filtered progress tracking information.

19. The client device of claim 16 , wherein, for a given application of the plurality of applications, the one or more respective contexts are defined by a respective developer of the given application.

20. The client device of claim 16 , wherein the progress tracking information stored in the remote database is secured using disk encryption for each zone in the remote database.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2019
From: BAUMGARTEN, JOHN S.; SONG, JENNIFER U.; EUBANKS, MARIN; DUDRENOV, PAVEL V.; JAIN, SUGAM; LEE, LEO; VAFAEE, SAMAN
To: APPLE INC.
Reel/Frame 048161/0377 →
Continuity (2)
Provisional Application 62648361 · Mar 26, 2018
Related Publication 20190297155A1 · Sep 26, 2019