Phase-Based Access Permissions for Multi-Phase Projects
20230025544 · 2023-01-26
Inventors
Cpc classification
G06Q10/063114
PHYSICS
G06Q10/06312
PHYSICS
International classification
Abstract
An example computing system is configured to: (i) apply a first access permission setting that defines whether a party can access a data object associated with a multi-phase construction project during a first phase of the multi-phase construction project; (ii) determine that the multi-phase construction project has transitioned from the first phase to a second phase; and (iii) based at least on the determination that the multi-phase construction project has transitioned from the first phase to the second phase, apply a second access permission setting that defines whether the party can access the data object associated with the multi-phase construction project during the second phase of the multi-phase construction project, where the second access permission setting differs from the first access permission setting.
Claims
1. A computing system comprising: at least one processor; a non-transitory computer-readable medium; and program instructions stored on the non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to: determine a first access permission setting that defines whether a party can access a data object associated with a multi-phase construction project during a first phase of the multi-phase construction project; determine a second access permission setting that defines whether the party can access the data object associated with the multi-phase construction project during a second phase of the multi-phase construction project, wherein the second access permission setting differs from the first access permission setting; apply, during the first phase of the multi-phase construction project, the first access permission setting to the data object associated with the multi-phase construction project; receive, during the first phase of the multi-phase construction project, a first request from a user account associated with the party to access the data object associated with the multi-phase construction project; based on the first request and the first access permission setting, grant the user account access to the data object associated with the multi-phase construction project; determine that the multi-phase construction project has transitioned from the first phase to the second phase; based at least on the determination that the multi-phase construction project has transitioned from the first phase to the second phase, apply the second access permission setting to the data object associated with the multi-phase construction project; receive, during the second phase of the multi-phase construction project, a second request from the user account associated with the party to access the data object associated with the multi-phase construction project; and based on the second request and the second access permission setting, deny the user account access to the data object associated with the multi-phase construction project.
2. The computing system of claim 1, further comprising program instructions stored on the non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to: prior to applying the first access permission setting, determine that the multi-phase construction project has entered the first phase, wherein applying the first access permission setting comprises applying the first access permission setting based on the determination that the multi-phase construction project has entered the first phase.
3. The computing system of claim 1, wherein the party is a second party, and wherein the computing system further comprises program instructions stored on the non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to: receive a request from a first party to invite the second party to collaborate on the multi-phase construction project, wherein the request identifies a set of access permission settings for the multi-phase construction project, wherein the identified set of access permission settings includes the first access permission setting and the second access permission setting, and wherein determining the first and second access permission settings comprises determining the first and second access permission settings based on the set of access permission settings identified in the request.
4. The computing system of claim 1, further comprising program instructions stored on the non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to: receive a request to transition the multi-phase construction project from the first phase to the second phase, wherein determining that the multi-phase construction project has transitioned from the first phase to the second phase comprises determining that the multi-phase construction project has transitioned from the first phase to the second phase based on receiving the request to transition the multi-phase construction project from the first phase to the second phase.
5. The computing system of claim 1, wherein the data object is a first data object, and wherein the computing system further comprises program instructions stored on the non-transitory computer-readable medium that are executable by the at least one processor such that the computing system is configured to: receive a second data object that is associated with (i) an end of the first phase of the multi-phase construction project or (ii) the second phase of the multi-phase construction project, wherein determining that the multi-phase construction project has transitioned from the first phase to the second phase comprises determining that the multi-phase construction project has transitioned from the first phase to the second phase based on receiving the second data object.
6. The computing system of claim 1, wherein determining that the multi-phase construction project has transitioned from the first phase to the second phase comprises using a machine learning model that is trained based on historical multi-phase construction project data to determine that the multi-phase construction project has transitioned from the first phase to the second phase.
7. The computing system of claim 1, wherein: applying the first access permission setting comprises applying a permission setting for granting one of a full scope of access or a limited scope of access to the data object associated with the multi-phase construction project during the first phase; and applying the second access permission setting comprises applying a permission setting for granting one of a limited scope of access or no access to the data object associated with the multi-phase construction project during the second phase.
8. A non-transitory computer-readable medium, wherein the non-transitory computer-readable medium is provisioned with program instructions that, when executed by at least one processor, cause a computing system to: determine a first access permission setting that defines whether a party can access a data object associated with a multi-phase construction project during a first phase of the multi-phase construction project; determine a second access permission setting that defines whether the party can access the data object associated with the multi-phase construction project during a second phase of the multi-phase construction project, wherein the second access permission setting differs from the first access permission setting; apply, during the first phase of the multi-phase construction project, the first access permission setting to the data object associated with the multi-phase construction project; receive, during the first phase of the multi-phase construction project, a first request from a user account associated with the party to access the data object associated with the multi-phase construction project; based on the first request and the first access permission setting, grant the user account access to the data object associated with the multi-phase construction project; determine that the multi-phase construction project has transitioned from the first phase to the second phase; based at least on the determination that the multi-phase construction project has transitioned from the first phase to the second phase, apply the second access permission setting to the data object associated with the multi-phase construction project; receive, during the second phase of the multi-phase construction project, a second request from the user account associated with the party to access the data object associated with the multi-phase construction project; and based on the second request and the second access permission setting, deny the user account access to the data object associated with the multi-phase construction project.
9. The non-transitory computer-readable medium of claim 8, wherein the non-transitory computer-readable medium is further provisioned with program instructions that, when executed by the at least one processor, cause the computing system to: prior to applying the first access permission setting, determine that the multi-phase construction project has entered the first phase, wherein applying the first access permission setting comprises applying the first access permission setting based on the determination that the multi-phase construction project has entered the first phase.
10. The non-transitory computer-readable medium of claim 8, wherein the party is a second party, and wherein the non-transitory computer-readable medium is further provisioned with program instructions that, when executed by the at least one processor, cause the computing system to: receive a request from a first party to invite the second party to collaborate on the multi-phase construction project, wherein the request identifies a set of access permission settings for the multi-phase construction project, wherein the identified set of access permission settings includes the first access permission setting and the second access permission setting, and wherein determining the first and second access permission settings comprises determining the first and second access permission settings based on the set of access permission settings identified in the request.
11. The non-transitory computer-readable medium of claim 8, wherein the non-transitory computer-readable medium is further provisioned with program instructions that, when executed by the at least one processor, cause the computing system to: receive a request to transition the multi-phase construction project from the first phase to the second phase, wherein determining that the multi-phase construction project has transitioned from the first phase to the second phase comprises determining that the multi-phase construction project has transitioned from the first phase to the second phase based on receiving the request to transition the multi-phase construction project from the first phase to the second phase.
12. The non-transitory computer-readable medium of claim 8, wherein the data object is a first data object, and wherein the non-transitory computer-readable medium is further provisioned with program instructions that, when executed by the at least one processor, cause the computing system to: receive a second data object that is associated with (i) an end of the first phase of the multi-phase construction project or (ii) the second phase of the multi-phase construction project, wherein determining that the multi-phase construction project has transitioned from the first phase to the second phase comprises determining that the multi-phase construction project has transitioned from the first phase to the second phase based on receiving the second data object.
13. The non-transitory computer-readable medium of claim 8, wherein determining that the multi-phase construction project has transitioned from the first phase to the second phase comprises using a machine learning model that is trained based on historical multi-phase construction project data to determine that the multi-phase construction project has transitioned from the first phase to the second phase.
14. The non-transitory computer-readable medium of claim 8, wherein: applying the first access permission setting comprises applying a permission setting for granting one of a full scope of access or a limited scope of access to the data object associated with the multi-phase construction project during the first phase; and applying the second access permission setting comprises applying a permission setting for granting one of a limited scope of access or no access to the data object associated with the multi-phase construction project during the second phase.
15. A method carried out by a computing system, the method comprising: determining a first access permission setting that defines whether a party can access a data object associated with a multi-phase construction project during a first phase of the multi-phase construction project; determining a second access permission setting that defines whether the party can access the data object associated with the multi-phase construction project during a second phase of the multi-phase construction project, wherein the second access permission setting differs from the first access permission setting; applying, during the first phase of the multi-phase construction project, the first access permission setting to the data object associated with the multi-phase construction project; receiving, during the first phase of the multi-phase construction project, a first request from a user account associated with the party to access the data object associated with the multi-phase construction project; based on the first request and the first access permission setting, granting the user account access to the data object associated with the multi-phase construction project; determining that the multi-phase construction project has transitioned from the first phase to the second phase; based at least on the determination that the multi-phase construction project has transitioned from the first phase to the second phase, applying the second access permission setting to the data object associated with the multi-phase construction project; receiving, during the second phase of the multi-phase construction project, a second request from the user account associated with the party to access the data object associated with the multi-phase construction project; and based on the second request and the second access permission setting, denying the user account access to the data object associated with the multi-phase construction project.
16. The method of claim 15, further comprising: prior to applying the first access permission setting, determining that the multi-phase construction project has entered the first phase, wherein applying the first access permission setting comprises applying the first access permission setting based on the determination that the multi-phase construction project has entered the first phase.
17. The method of claim 15, wherein the party is a second party, the method further comprising: receiving a request from a first party to invite the second party to collaborate on the multi-phase construction project, wherein the request identifies a set of access permission settings for the multi-phase construction project, wherein the identified set of access permission settings includes the first access permission setting and the second access permission setting, and wherein determining the first and second access permission settings comprises determining the first and second access permission settings based on the set of access permission settings identified in the request.
18. The method of claim 15, further comprising: receiving a request to transition the multi-phase construction project from the first phase to the second phase, wherein determining that the multi-phase construction project has transitioned from the first phase to the second phase comprises determining that the multi-phase construction project has transitioned from the first phase to the second phase based on receiving the request to transition the multi-phase construction project from the first phase to the second phase.
19. The method of claim 15, wherein the data object is a first data object, and wherein the method further comprises: receiving a second data object that is associated with (i) an end of the first phase of the multi-phase construction project or (ii) the second phase of the multi-phase construction project, wherein determining that the multi-phase construction project has transitioned from the first phase to the second phase comprises determining that the multi-phase construction project has transitioned from the first phase to the second phase based on receiving the second data object.
20. The method of claim 15, wherein: applying the first access permission setting comprises applying a permission setting for granting one of a full scope of access or a limited scope of access to the data object associated with the multi-phase construction project during the first phase; and applying the second access permission setting comprises applying a permission setting for granting one of a limited scope of access or no access to the data object associated with the multi-phase construction project during the second phase.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
DETAILED DESCRIPTION
[0032] The following disclosure makes reference to the accompanying figures and several example embodiments. One of ordinary skill in the art should understand that such references are for the purpose of explanation only and are therefore not meant to be limiting. Part or all of the disclosed systems, devices, and methods may be rearranged, combined, added to, and/or removed in a variety of manners, each of which is contemplated herein.
I. Example System Configuration
[0033] The present disclosure is generally directed to software technology for managing data for, and facilitating collaboration on, construction projects, and in particular to a computing system and methods for managing data, data access, and data retention. As one possible implementation, this software technology may include both front-end software running on client stations that are accessible to individuals associated with construction projects (e.g., contractors, project managers, architects, engineers, designers, etc., each of which may be referred to generally herein as a “construction professional”) and back-end software running on a back-end computing platform (sometimes referred to as a “cloud” platform) that interacts with and/or drives the front-end software, and which may be operated (either directly or indirectly) by the provider of the front-end client software. As another possible implementation, this software technology may include front-end client software that runs on client stations without interaction with a back-end computing platform. The software technology disclosed herein may take other forms as well.
[0034] In general, such front-end client software may enable one or more individuals responsible for a construction project to perform various tasks related to the management of the construction project, which may take various forms. According to some implementations, these tasks may include, as some non-limiting examples, creating, accessing, and/or editing one or more data objects, managing access permissions and data retention settings for data objects, inviting one or more parties to collaborate on a given project, and engaging in collaboration with one or more parties on a given construction project via one or more data objects. Further, such front-end client software may take various forms, examples of which may include a native application (e.g., a mobile application), a web application running on a client station, and/or a hybrid application, among other possibilities.
[0035] Turning now to the figures,
[0036] Broadly speaking, back-end computing platform 102 may comprise one or more computing systems that have been provisioned with software for carrying out one or more of the functions disclosed herein, including but not limited to providing tools and/or interfaces for (i) creating, accessing, and editing one or more project entities, (ii) creating, accessing, and editing data objects related to a given project entity, and (iii) maintaining and updating a given party's access permissions and retention settings with respect to a given data object. The one or more computing systems of back-end computing platform 102 may take various forms and may be arranged in various manners.
[0037] For instance, as one possibility, back-end computing platform 102 may comprise computing infrastructure of a public, private, and/or hybrid cloud (e.g., computing and/or storage clusters) that has been provisioned with software for carrying out one or more of the functions disclosed herein. In this respect, the entity that owns and operates back-end computing platform 102 may either supply its own cloud infrastructure or may obtain the cloud infrastructure from a third-party provider of “on demand” computing resources, such as Amazon Web Services (AWS) or the like. As another possibility, back-end computing platform 102 may comprise one or more dedicated servers that have been provisioned with software for carrying out one or more of the functions disclosed herein. Other implementations of back-end computing platform 102 are possible as well.
[0038] In turn, client stations 112 may each be any computing device that is capable of running the front-end software disclosed herein. In this respect, client stations 112 may each include hardware components such as a processor, data storage, a user interface, and a network interface, among others, as well as software components that facilitate the client station's ability to run the front-end software disclosed herein (e.g., operating system software, web browser software, etc.). As representative examples, client stations 112 may each take the form of a desktop computer, a laptop, a netbook, a tablet, a smartphone, and/or a personal digital assistant (PDA), among other possibilities.
[0039] As further depicted in
[0040] The interaction between client stations 112 and back-end computing platform 102 may take various forms. As one possibility, client stations 112 may send certain user input related to a construction project to back-end computing platform 102, which may in turn trigger back-end computing platform 102 to take one or more actions based on the user input. As another possibility, client stations 112 may send a request to back-end computing platform 102 for certain project-related data and/or a certain front-end software module, and client stations 112 may then receive project-related data (and perhaps related instructions) from back-end computing platform 102 in response to such a request. As yet another possibility, back-end computing platform 102 may be configured to “push” certain types of project-related data to client stations 112, such as rendered three-dimensional views, in which case client stations 112 may receive project-related data (and perhaps related instructions) from back-end computing platform 102 in this manner. As still another possibility, back-end computing platform 102 may be configured to make certain types of project-related data available via an API, a service, or the like, in which case client stations 112 may receive project-related data from back-end computing platform 102 by accessing such an API or subscribing to such a service. The interaction between client stations 112 and back-end computing platform 102 may take various other forms as well.
[0041] Although not shown in
[0042] It should be understood that network configuration 100 is one example of a network configuration in which embodiments described herein may be implemented. Numerous other arrangements are possible and contemplated herein. For instance, other network configurations may include additional components not pictured and/or more or less of the pictured components.
II. EXAMPLE COMPUTING SYSTEM
[0043]
[0044] Processor 202 may comprise one or more processor components, such as general-purpose processors (e.g., a single- or multi-core microprocessor), special-purpose processors (e.g., an application-specific integrated circuit or digital-signal processor), programmable logic devices (e.g., a field programmable gate array), controllers (e.g., microcontrollers), and/or any other processor components now known or later developed. In line with the discussion above, it should also be understood that processor 202 could comprise processing components that are distributed across a plurality of physical computing devices connected via a network, such as a computing cluster of a public, private, or hybrid cloud.
[0045] In turn, data storage 204 may comprise one or more non-transitory computer-readable storage mediums, examples of which may include volatile storage mediums such as random-access memory, registers, cache, etc. and non-volatile storage mediums such as read-only memory, a hard-disk drive, a solid-state drive, flash memory, an optical-storage device, etc. In line with the discussion above, it should also be understood that data storage 204 may comprise computer-readable storage mediums that are distributed across a plurality of physical computing devices connected via a network, such as a storage cluster of a public, private, or hybrid cloud.
[0046] As shown in
[0047] Communication interface 206 may be configured to facilitate wireless and/or wired communication with configured other computing systems or devices, such as one or more client stations 112 when computing system 200 serves as back-end computing platform 102, or as back-end computing platform 102 when computing system 200 serves as one of client stations 112. As such, communication interface 206 may take any suitable form for carrying out these functions, examples of which may include an Ethernet interface, a serial bus interface (e.g., Firewire, USB 3.0, etc.), a chipset and antenna adapted to facilitate wireless communication, and/or any other interface that provides for wireless and/or wired communication. Communication interface 206 may also include multiple communication interfaces of different types. Other configurations are possible as well.
[0048] Although not shown, computing system 200 may additionally include one or more other interfaces that provide connectivity with external user-interface components (sometimes referred to as “peripherals”), such as a keyboard, a mouse or trackpad, a display screen, a touch-sensitive interface, a stylus, a virtual-reality headset, speakers, etc., which may allow for direct user interaction with computing system 200. Additionally or alternatively, computing system 200 may itself include one or more integrated user interface components, such as a display screen, a touch-sensitive interface, a keyboard, speakers, a microphone, a camera, etc., which may allow for direct user interaction with computing system 200.
[0049] It should be understood that computing system 200 is one example of a computing system that may be used with the embodiments described herein. Numerous other arrangements are possible and contemplated herein. For instance, other computing systems may include additional components not pictured and/or more or fewer of the pictured components.
III. Example Operations
[0050] As mentioned above, the present disclosure relates to software technology that enables automatic management of access permissions for parties collaborating on a multi-phase construction project, which may facilitate improved collaboration between multiple parties collaborating on the multi-phase construction project and may also facilitate improved management of data related to the multi-phase construction project. In accordance with the present disclosure, access permissions for the parties may be automatically configured based on phase transitions during the multi-phase construction project. For instance, when it is determined that a construction project has entered a new phase, new access permissions can be granted to a first set of one or more parties that are involved in the new phase, while previously-granted access permissions can be revoked for a second set of one or more parties that are not involved in the new phase.
[0051] In this respect, the access permissions that are granted and/or revoked based on the determination that the construction project has entered the new phase could either be applied across all data objects (and/or associated software features) related to the construction project or could be applied to a specific subset of the data objects (and/or associated software features) related to the construction project. For instance, when it is determined that the construction project has entered the new phase, one collaborator could be granted access to the entire universe of data objects related to the construction project, while another collaborator could be granted access to a specific subset of data objects that are related only to the new phase of the construction project. Likewise, when it is determined that the construction project has entered the new phase, one collaborator could have their access revoked for the entire universe of data objects related to the construction project, while another collaborator could have their access revoked for one subset of data objects related to the construction project (e.g., data objects that were specifically related to the prior phase of the construction project) but could retain access for another subset of data objects related to the construction project.
[0052] While the present disclosure is described in connection with multi-phase construction projects, it should be understood this is for illustrative purposes and that the present disclosure can be applied to various other types of multi-phase projects as well. For instance, the present disclosure can be applied to any multi-phase project for which it is desirable to automatically adjust access permissions when the project transitions between phases.
a. Example Data Storage Models
[0053] In some examples, the present disclosure can be applied in connection with an account-centric data storage model in which projects and related project data are created, stored, and maintained under a single given account (in which case the data objects may be shared with other parties collaborating on the project to facilitate access to such data objects but may generally remain under the control of the one single holder of the given account), while in other examples, the present disclosure can be applied in connection with a project-centric data storage model in which project data is created, stored, and maintained under a project entity that exists separately from any one party's account (in which case connections may be established between parties collaborating on the project and the data objects under the project entity in order to facilitate access to such data objects). Examples of account-centric and project-centric data storage models are described in U.S. patent application Ser. No. 17/191,484 titled “Computer System and Methods for Managing Data, Data Access, and Data Retention,” which is assigned to the present applicant Procore Technologies, Inc. and incorporated herein by reference in its entirety.
[0054] Regardless of the type of data storage model being used, the construction management SaaS application may include mechanisms for controlling how various parties collaborate on a project entity and/or its associated data objects.
[0055] In general, a party may be represented by a data entity (e.g., an account) that is encoded with data including relevant information about the party. A party may be an individual (e.g., a human user) or a company (e.g., a business entity). A data entity that represents an individual party may be managed by the individual. For example, a party that represents an employee of a construction company may be managed by the employee herself or himself. A data entity that represents a company party may also be managed by an individual. For example, a given company may have a designated employee (e.g., account manager) who is responsible for managing the data entity that represents the company and performing various tasks on behalf of the company via the company's data entity.
[0056] In an account-centric data model, each party may have an account with the construction management SaaS application, and each party's access permissions and retention settings may be defined in connection with the party's account. In such a model, each party may have an individualized set of access permissions included as part of the account, or a given party could have a specified “role” that is associated with a predefined set of role-based access permissions. A party's role may include the party's job function, department, employer, industry, or any other categorization that may be useful when defining access permissions settings for multiple parties in a similar way.
[0057] To illustrate,
[0058] Conversely, in a project-centric model, each party may be represented by a data entity that exists separately from the project entity and its associated data objects, and each party's access permissions may be defined separately from the party's account through “connections” with data objects. Each connection may take the form of a data structure that defines a relationship between the party and the data object, including information about the party's access permissions for the data object.
[0059] To illustrate,
[0060] Both the account-centric data management structure depicted in
b. Phase-Based Access Permissions
[0061] In line with the discussion above, the disclosed software technology enables phase-based management of access permissions for any party that is collaborating on a multi-phase construction project. At a high level, phase-based management of access permissions may involve configuring an initial set of access permissions for a collaborator, determining that the multi-phase construction project has transitioned from one phase to another, and, based on this determination, updating the set of access permissions for the collaborator. Each of these steps are explained in further detail below in connection with
[0062]
[0063] Further, as a general matter, when reference is made herein to a “computing platform” engaging in one or more operations, it should be understood that such operations may, in practice, be carried out by one or more computing systems executing one or more instances of the disclosed software technology. In particular, it should be understood that such example operations may be carried out by a back-end computing platform, such as the back-end computing platform 102 depicted in
[0064] In general, the example process 500 may be initiated when a first party, such as a project owner, invites a second party, such as a subcontractor, to collaborate with respect to a multi-phase construction project. However, the example process 500 may be initiated at other times as well depending on the implementation, such as after the second party has already begun collaborating on the multi-phase construction project.
[0065] The example process 500 may begin at step 502, where the computing platform may receive data indicating phase-based access permission settings for the second party. The computing platform may receive such data in various manners.
[0066] As one possibility, the computing platform may receive information specifying a role or job function of the second party. For instance, the first party may provide this information during the course of setting up the collaboration relationship with the second party. When inviting the second party to collaborate on the multi-phase construction project, the first party may provide to the computing platform information identifying the second party, and this identifying information may include the role of the second party. In other examples, the first party may specify the role of the second party separately from setting up the collaboration relationship. For instance, the computing platform may be configured to store information identifying the roles of any collaborators of a project entity in connection with the project entity data, and the computing platform may provide an interface through which the first party may update the identified roles. As yet another example, information identifying the role of the second party may be stored in connection with the second party's account such that the computing platform may determine the second party's role based on the second party's account information.
[0067] The computing platform may determine phase-based access permission settings for the second party based on the specified role of the second party. To facilitate this, the computing platform may be provisioned with multiple sets of phase-based access permission settings with different sets of settings corresponding to different roles. Then, when the computing platform receives the information identifying the role of the second party, the computing platform may map the second party's role to the corresponding set of phase-based access permission settings.
[0068] The computing platform may provide a mechanism for the first party to configure the phase-based access permission settings for a given role. For instance, the computing platform may provide an interface through which the first party may adjust the phase-based access permission settings for a pre-existing role and/or through which the first party may create a new role and assign corresponding phase-based access permission settings.
[0069]
[0070] As shown, the interface 600 includes a role input field 610 for inputting a given role for which the phase-based access permission settings are to apply. The role input field 610 may take the form of a dropdown menu that is prepopulated with a default set of roles that are predefined for the multi-phase construction project. As mentioned previously, the role of a party may include the party's job function, department, employer, industry, or any other categorization that may be useful when defining access permissions settings for multiple parties in a similar way. In the present example, the specified role shown in
[0071] As further shown in
[0072] Further, the set of phase-based access permission settings 620 may define a respective scope of access for each corresponding phase of the multi-phase construction project. The scope of access may be categorized into different levels. In the example depicted in
[0073] In this manner, the first party may use the interface 600 to configure phase-based access permissions for a given collaborator role by specifying the role via the role input 610 and by inputting the collaborator's scope of access for each phase of the multi-phase construction project via the phase-based access permission settings 620. In the example depicted in
[0074] While the example functionality described above in connection with
[0075]
[0076] However, unlike the set of phase-based access permission settings 620 depicted in
[0077] In the example depicted in
[0078] As yet another possibility, the computing platform may be configured to determine phase-based access permissions for a specific party, instead of for an entire party role. For instance, instead of identifying a role, such as by using the role input fields 610 and 710 shown in the interfaces 600 and 700 depicted in
[0079] Further, while the interfaces 600 and 700 depicted in
[0080] At step 504, while the multi-phase construction project is in a first phase, the computing platform may apply a first set of access permission settings that defines whether and/or to what extent the second party can access data objects related to the multi-phase construction project during the first phase. To facilitate this, the computing platform may be configured to determine that the multi-phase project is in the first phase, which the computing platform may do in various manners.
[0081] As one possibility, the computing platform may store phase status data for the construction project (e.g., as part of the project entity), in which case the computing platform may determine a current phase of the multi-phase construction project by accessing the stored phase status data and then determining the current phase based on the phase status data. In some examples, the phase status data may be based on a user input that specifies the current phase of the project. For instance, the first party may have previously accessed a settings menu of the project through which the first party may specify certain characteristics of the project, including its current phase. As such, the computing platform may store, as part of the project entity, phase status data corresponding to the specified phase.
[0082] As another possibility, the computing platform may infer a current phase of the multi-phase construction project based on timing information or user activity in connection with the project entity. For instance, if the project entity is currently being created or was recently created within a threshold time period, the computing platform may infer that the construction project is in an initial phase, such as a bidding phase. As another example, the computing platform may determine that a contractor uploaded a bid in connection with the project entity and, based on this determination, the computing platform may infer that the construction project is in the bidding phase. It should be understood that these examples are merely illustrative and that other examples of using timing information or user activity to infer the current phase of the project are contemplated herein as well.
[0083] In any case, once the computing platform has determined that the multi-phase project is in the first phase, the computing platform may apply the first access permission setting that defines how the second party can access data objects related to the multi-phase construction project during the first phase. The computing platform may apply the first access permission setting in various manners.
[0084] As one possibility, the computing platform may apply the first access permission setting when a request is made by the second party that gives rise to a need to check access permissions, such as a request to access a particular data object or software tool related to the project entity. When checking the second party's access permissions to determine whether to grant access to the particular data object or software tool, the computing platform may reference a set of phase-based access permission settings for the second party. For instance, in line with the discussion above, the second party may have an assigned role indicator, and the computing platform may map the second party's role to a corresponding set of phase-based access permissions. The set of phase-based access permissions may be a predefined set of default phase-based access permissions, or they may be a customized set of phase-based access permissions, such as those depicted in
[0085] When referencing the set of phase-based access permissions, the computing platform could either reference a centralized set of phase-based access permissions that the computing platform maintains on a project level, or the computing platform could reference a distributed set of phase-based access permissions that are encoded into the connections for the project's data objects. In examples where the phase-based access permissions are encoded into the data objects connections, the encoded information may include access permissions information for all phases of the multi-phase construction project, or the encoded information may include access permissions information for only the current phase of the multi-phase construction project. In the latter case, the computing platform may be configured to update the encoded access permissions information in the connections each time the multi-phase construction project changes phases.
[0086] Once the computing platform references the set of phase-based access permissions, the computing platform may process the request to access the particular data object or software tool in accordance with the access permission settings for the first phase (i.e., the first access permission setting). To illustrate, consider an example in which the first phase is a bidding phase, the second party is assigned the Architect role, and the first party has configured the set of phase-based access permissions to reflect those depicted
[0087] To illustrate further, consider another example in which the first phase is the bidding phase, the second party is assigned the Architect role, and the first party has configured the set of phase-based access permissions to reflect those depicted
[0088] At step 506, the computing platform may determine that the multi-phase construction project has transitioned from the first phase to a second phase. The computing platform may make this determination in various manners.
[0089] As one possibility, the computing platform may determine that the project has transitioned from the first phase to the second phase based on input by the project owner. For instance, as described above, the project owner may specify the phase of the construction project at any given time by accessing a settings menu for the construction project and inputting information representing the phase of the construction project. Thus, in some examples, the computing platform may detect the phase transition in response to receiving a user input that changes the identified phase of the construction project from one phase to another.
[0090] As another possibility, the computing platform may infer a phase transition from the current phase to a next phase of the multi-phase construction project, such as based on user activity in connection with the project entity. For instance, the computing platform may infer a phase transition based on the project owner or some collaborator updating or adding information associated with the project entity that is associated with the end of one phase and/or the beginning of another. For instance, as described above, the multi-phase construction project may include a bidding phase during which contractors submit bids to perform the construction work, followed by a design phase during which architects design aspects of the construction project. In such an example, while the project is in the bidding phase, if the project owner or some authorized collaborator inputs information identifying that a submitted bid has been accepted, then the computing platform may infer from this accepted bid that the bidding phase is complete and the project is ready to transition to the design phase. As another example, the multi-phase construction project may include a construction phase during which construction professionals build the construction project, followed by a post-construction phase during which project closeout processes are performed, such as identifying and resolving any punch list items. In such an example, while the project is in the construction phase, if the project owner or a collaborator creates or uploads a punch list document associated with the project entity, then the computing platform may infer that the project has transitioned from the construction phase to the post-construction phase.
[0091] It should be understood that these examples are merely illustrative and that other examples of inferring phase transitions based on user activity in connection with the project entity are contemplated herein as well.
[0092] Additionally or alternatively, the computing platform may use machine learning to infer the phase transition. The computing platform may build, or otherwise be provisioned with, a machine learning model that is trained using data from historical construction projects. In this manner, various events or other data from the historical construction projects can be used as inputs for the model, and these inputs can be mapped to particular phases of the construction projects which represent the outputs of the model. Examples of inputs for the model can include events corresponding to the creation or modification of certain types of data objects, a quantity of certain types of data objects associated with the project, such as a number of RFIs and/or their statuses, a number of contacts in the directory of the project, and/or information quantizing a rate of change of various data objects associated with the project. In some examples, this approach can involve supervised machine learning in which the model is trained to map the inputs to known phases of the historical construction projects. In other examples, this approach can involve unsupervised learning in which phase commonalities are derived from the model inputs without having prior knowledge of the corresponding phases of the projects.
[0093] Whether inferring a phase transition based on user activity or based on a machine learning model, there may be situations where the computing platform could incorrectly infer the phase change. To account for such inaccuracies, the computing platform may be configured to display a user prompt for confirming whether the project has transitioned phases. The computing platform may display the prompt to the project owner (i.e., the first party) or to some authorized collaborator. Based on receiving the prompt, the project owner may manually change the phase of the construction project, such as by accessing a settings menu for the construction project and inputting information representing the phase of the construction project as described above. Alternatively, the project owner may confirm the phase transition by interacting with the prompt, such as by selecting an approval button or the like, and the computing platform may automatically update the information representing the phase of the construction project to match the newly inferred phase.
[0094] Further, in some implementations, when the computing platform has determined that the multi-phase construction project has transitioned from the first phase to the second phase, the computing platform may update access permissions data based on this determination. This can be useful, for instance, in examples where access permissions data is encoded into the connections for the project's data objects and the encoded data includes access permissions data for only the current phase of the multi-phase construction project. In such examples, when the computing platform determines that the multi-phase construction project has transitioned to a new phase, the computing platform may update the encoded access permissions data in the connections to reflect the access permissions settings for the new phase. However, in implementations where the access permissions data is not encoded into the connections for the project's data objects, or where the encoded data includes access permissions data for all phases of the multi-phase construction project, it may not be necessary to update access permissions data based on the determination of the phase transition.
[0095] At step 508, while the multi-phase construction project is in the second phase, the computing platform may apply a second access permission setting that defines whether and/or to what extent the second party can access data objects related to the multi-phase construction project during the second phase. In some examples, the computing platform may apply the second access permission setting responsive to determining that the multi-phase construction project has transitioned from the first phase to the second phase. The computing platform may apply the second access permission setting in various manners, such as in a similar manner as applying the first access permission setting as described above in connection with step 504.
[0096] For instance, as one possibility, the computing platform may apply the second access permission setting when a request is made by the second party that gives rise to a need to check access permissions, such as a request to access a particular data object or software tool related to the project entity. When checking the second party's access permissions to determine whether to grant access to the particular data object or software tool, the computing platform may reference a set of phase-based access permission settings for the second party. For instance, in line with the discussion above, the second party may have an assigned role indicator, and the computing platform may map the second party's role to a corresponding set of phase-based access permissions. The set of phase-based access permissions may be a predefined set of default phase-based access permissions, or they may be a customized set of phase-based access permissions, such as those depicted in
[0097] When referencing the set of phase-based access permissions, the computing platform could either reference a centralized set of phase-based access permissions that the computing platform maintains on a project level, or the computing platform could reference a distributed set of phase-based access permissions that are encoded into the connections for the project's data objects. In examples where the phase-based access permissions are encoded into the data objects connections, the encoded information may include access permissions information for all phases of the multi-phase construction project, or the encoded information may include access permissions information for only the current phase of the multi-phase construction project. In the latter case, the computing platform may be configured to update the encoded access permissions information in the connections each time the multi-phase construction project changes phases.
[0098] Once the computing platform references the set of phase-based access permissions, the computing platform may process the request to access the particular data object or software tool in accordance with the access permission settings for the second phase (i.e., the second access permission setting). To illustrate, consider an example in which the second phase is a design phase, the second party is assigned the Architect role, and the first party has configured the set of phase-based access permissions to reflect those depicted
[0099] To illustrate further, consider another example in which the second phase is the design phase, the second party is assigned the Architect role, and the first party has configured the set of phase-based access permissions to reflect those depicted
[0100] While the examples of applying the first access permission setting and the second access permission setting described above in connection with steps 504 and 508 of the process 500 define the first phase as the bidding phase and the second phase as the design phase, the first and second phase can be other phases of the multi-phase construction project as well. Further, the techniques described above can be applied repeatedly as the multi-phase construction project transitions through all phases of the construction project. For instance, based on the set of access permissions 620 depicted in
[0101] Additionally, there may be situations in which a construction project is so complex that the project is conceptually broken up into multiple subprojects that make up the overall construction project. In these situations, the construction management SaaS application may allow the project owner to create separate subproject data entities for each subproject, and these subproject entities may be included within the overall project data entity in the data management structures depicted in
[0102] In the ways discussed above, employing the disclosed software technology may enable a construction management SaaS application to more efficiently facilitate data management and collaboration for a construction project by automatically adjusting access permission settings based on phase transitions in a multi-phase construction project.
IV. Conclusion
[0103] Example embodiments of the disclosed innovations have been described above. Those skilled in the art will understand, however, that changes and modifications may be made to the embodiments described without departing from the true scope and spirit of the present invention, which will be defined by the claims.
[0104] For instance, those in the art will understand that the disclosed software technology may be implemented in areas other than construction and construction-related projects and may be used in other ways as well.
[0105] Further, to the extent that examples described herein involve operations performed or initiated by actors, such as “humans,” “operators,” “users,” or other entities, this is for purposes of example and explanation only. The claims should not be construed as requiring action by such actors unless explicitly recited in the claim language.