System and method for scalable collaborative document creation and monitoring
A method of collaboration includes creating an electronic document file representing a document, file having a plurality of sections denoted by table of contents metadata and using the table of contents metadata; identifying a plurality of document sections, receiving user input reflecting a preference for division of the plurality of document sections into separate section files and dividing the electronic document file into a plurality of separate section files; in response to user input indicating a first access control preference, providing access to a first of the plurality of separate section files to a first user; in response to user input indicating a second access control preference, providing access to a second of the plurality of separate section files to a second user; storing edits made by the first user to the first of the plurality of separate section files, in the first of the plurality of separate section files; storing edits made by the second user to the second of the plurality of separate section files, in the second of the plurality of separate section files and, automatically, at a predetermined time interval, merging the updated plurality of separate section files into an updated electronic document file.
1 . A computer-implemented method of processing an electronic document file, comprising:
retrieving electronic document file information representing a document, the electronic document file information including table of contents metadata and document-formatting information;
processing the electronic document file information to identify the table of contents metadata, a plurality of tables of contents entries, and a plurality of section boundary markers corresponding to the plurality of table of contents entries;
generating section-file mapping data that maps the plurality of table of contents entries to a plurality of separate section files based on the identified plurality of section boundary markers;
generating, from the electronic document file information according to the section-file mapping data and the identified plurality of section boundary markers, the plurality of separate section files;
copying, into each of the plurality of separate section files, at least a portion of the table of contents metadata and at least a portion of the document-formatting information, the document-formatting information including header information, footer information, and style information, such that each separate section file preserves structure and formatting of a corresponding portion of the electronic document file;
storing the plurality of separate section files at one or more storage locations remote from a central database;
applying first access control data to a first separate section file of the plurality of separate section files to permit access by a first user account, and applying second access control data to a second separate section file of the plurality of separate section files to permit access by a second user account;
writing first edits received from a first user device directly to the first separate section file at the one or more storage locations remote from the central database, and writing second edits received from a second user device directly to the second separate section file at the one or more storage locations remote from the central database;
retrieving the plurality of separate section files associated with the electronic document file from the one or more storage locations remote from the central database; and
supplying the retrieved plurality of separate section files to a merge function that generates a new electronic document file separate and distinct from the electronic document file by ordering and combining the retrieved plurality of separate section files according to the table of contents metadata while preserving the header information, footer information, and style information.
2 . The method of claim 1 further comprising,
in response to user input, assigning a task to the first user relating to the first of the plurality of separate section files;
storing a data structure indicating the task;
using the data structure, displaying information relating to the task, in a document editing window where the first of the plurality of separate section files is open for editing; and
in response to user input, updating a field of the data structure, indicating a change to a status of the task.
3 . The method of claim 2 , wherein the data structure is stored in the first of the plurality of separate section files.
4 . The method of claim 3 , further comprising synchronizing the data structure with an external task management database, stored separately from the first of the plurality of separate section files.
5 . The method of claim 2 , wherein the task is associated with user selected text within the first of the plurality of separate section files.
6 . The method of claim 5 , further comprising, in response to user input interacting with displayed information relating to the task, via a client device, automatically changing a display of the window that includes the user selected text.
7 . A computer-implemented method of processing channel-associated word processing files on a server system comprising at least one server, comprising:
creating, by the server system, a plurality of channels, each channel having a channel name;
associating, by the server system, an independent word processing file with each channel of the plurality of channels;
storing the independent word processing files at one or more storage locations remote from a central database;
storing authentication data associated with each independent word processing file;
authenticating a first user account based on the authentication data and applying first access control data to a first independent word processing file associated with a first channel to permit access by the first user account, and authenticating a second user account based on the authentication data and applying second access control data to a second independent word processing file associated with a second channel to permit access by the second user account;
receiving, from a first client interface remote from the central database, first channel content for the first channel and writing the first channel content directly to the first independent word processing file, and receiving, from a second client interface remote from the central database, second channel content for the second channel and writing the second channel content directly to the second independent word processing file;
automatically retrieving the independent word processing file associated with the plurality of channels from the one or more storage locations remote from the central database; and
supplying the retrieved independent word processing files to a merge function that generates a new continuous document by ordering and combining content from the retrieved independent word processing files according to the channel names, wherein the new continuous document is displayed on a user interface organized based on the channel names and the content from the retrieved independent word processing files.
8 . The method of claim 7 further comprising, on the server system:
allowing an authorized user to edit an independent word processing file;
automatically updating the continuous document in real time after the user edits contributes to the independent word processing file;
formatting a table of contents based on the channel names; and
linking elements of the table of contents to the continuous document.
9 . A system for processing an electronic document file, comprising:
one or more processors; and
a memory storing instructions that, when executed by the one or more processors, cause the system to:
retrieve electronic document file information representing a document, the electronic document file information including table of contents metadata and document-formatting information;
process the electronic document file information to identify the table of contents metadata, a plurality of tables of contents entries, and a plurality of section boundary markers corresponding to the plurality of table of contents entries;
generate section-file mapping data that maps the plurality of table of contents entries to a plurality of separate section files based on the identified plurality of section boundary markers;
generate, from the electronic document file information according to the section-file mapping data and the identified plurality of section boundary markers, the plurality of separate section files;
copy, into each of the plurality of separate section files, at least a portion of the table of contents metadata and at least a portion of the document-formatting information, the document-formatting information including header information, footer information, and style information, such that each separate section file preserves structure and formatting of a corresponding portion of the electronic document file;
store the plurality of separate section files at one or more storage locations remote from a central database;
apply first access control data to a first separate section file of the plurality of separate section files to permit access by a first user account, and apply second access control data to a second separate section file of the plurality of separate section files to permit access by a second user account;
write first edits received from a first user device directly to the first separate section file at the one or more storage locations remote from the central database, and write second edits received from a second user device directly to the second separate section file at the one or more storage locations remote from the central database;
retrieve the plurality of separate section files associated with the electronic document file from the one or more storage locations remote from the central database; and
supply the retrieved plurality of separate section files to a merge function that generates a new electronic document file separate and distinct from the electronic document file by ordering and combining the retrieved plurality of separate section files according to the table of contents metadata while preserving the header information, footer information, and style information.
10 . The system of claim 9 , the one or more processors being further configured to:
in response to user input, assign a task to the first user relating to the first of the plurality of separate section files;
store a data structure indicating the task;
using the data structure, display information relating to the task, in a document editing window where the first of the plurality of separate section files is open for editing; and
in response to user input, update a field of the data structure, indicating a change to a status of the task.
11 . The system of claim 10 , wherein the data structure is stored in the first of the plurality of separate section files.
12 . The system of claim 11 , the one or more processors being further configured to synchronize the data structure with an external task management database, stored separately from the first of the plurality of separate section files.
13 . The system of claim 10 , wherein the task is associated with user selected text within the first of the plurality of separate section files.
14 . The system of claim 13 , the one or more processors being further configured to, in response to user input interacting with the displayed information relating to the task, via a client device, automatically change a display of the window that includes the user selected text.
15 . A system for processing channel-associated word processing files, comprising:
one or more servers including one or more processors; and
a memory storing instructions that, when executed by the one or more processors, cause the one or more servers to:
create a plurality of channels, each channel having a channel name;
associate an independent word processing file with each channel of the plurality of channels;
store the independent word processing files at one or more storage locations remote from a central database;
store authentication data associated with each independent word processing file;
authenticate a first user account based on the authentication data and apply first access control data to a first independent word processing file associated with a first channel to permit access by the first user account, and authenticate a second user account based on the authentication data and apply second access control data to a second independent word processing file associated with a second channel to permit access by the second user account;
receive, from a first client interface remote from the central database, first channel content for the first channel and write the first channel content directly to the first independent word processing file, and receive, from a second client interface remote from the central database, second channel content for the second channel and write the second channel content directly to the second independent word processing file;
automatically retrieve the independent word processing file associated with the plurality of channels from the one or more storage locations remote from the central database; and
supply the retrieved independent word processing files to a merge function that generates a new continuous document by ordering and combining content from the retrieved independent word processing files according to the channel names, wherein the new continuous document is configured to be displayed on a user interface organized based on the channel names and the content from the retrieved independent word processing files.
16 . The system of claim 15 the one or more processors being further configured to, on the server system:
allow an authorized user to edit an independent word processing file;
automatically update the continuous document in real time after the user contributes to the independent word processing file;
format a table of contents based on the channel names; and
link elements of the table of contents to the continuous document.