SERVER-CLIENT SKILLED TRADES COMMUNICATION SYSTEM

A system that includes a computer is described. The computer includes a processor and a memory. The memory includes instructions such that the processor is programmed to receive data corresponding to at least one of a bid request or a labor request and determine a trades group corresponding to the at least one of the bid request or the labor request. The memory further includes instructions such that the processor is programmed to generate a post displaying information corresponding to the at least one of the bid request or the labor request within a news feed corresponding to the trades group.

BACKGROUND

Social networks websites have recently grown in popularity to become some of the most visited websites on the Internet. Typically, users of a social network website can communicate with each other and share posts only on that social network website.

DETAILED DESCRIPTION

The present disclosure describes a server-client communication system that allows users to connect with one another. In various implementations, the users include individuals belonging to and/or comprising skilled labor and/or tradesmen. As discussed herein, users can access features of the server-client communication system to generate user profiles, populate the user profiles with relevant licensing and/or certifications, access a news feed related to construction and/or skilled trades, and the like. Users can also be connected with other users based on the relevant licensing and/or certifications as discussed in greater detail herein.

FIG.1illustrates an example environment100that includes one or more client devices110, a specification platform120, and a network130, and a server device140. Devices of environment100may interconnect via wired connections, wireless connections, or a combination of wired and wireless connections.

Client device110includes one or more devices capable of receiving, generating, storing, processing, and/or providing information associated with an account and/or a transaction for which the account is to be used. For example, client device110may include a desktop computer, a mobile phone (e.g., a smart phone, a radiotelephone, etc.), a laptop computer, a tablet computer, a handheld computer, a gaming device, a wearable communication device (e.g., a smart wristwatch, a pair of smart eyeglasses, etc.), or a similar type of device.

Specification platform120includes one or more devices that authorize client devices110and provide access to an intranet and/or selected extranets after authorization of client devices110. In some implementations, specification platform120may be designed to be modular such that certain software components may be swapped in or out depending on a particular need. As such, specification platform120may be easily and/or quickly reconfigured for different uses. In some implementations, specification platform120may receive information from and/or transmit information to one or more client devices110and/or server devices140.

In some implementations, as shown, specification platform120may be hosted in a cloud computing environment122, an on-premise computing environment, a hybrid (e.g., on-premise and cloud-based) computing environment, and/or the like. Notably, while implementations described herein describe specification platform120as being hosted in cloud computing environment122, in some implementations, specification platform120may not be cloud-based (i.e., may be implemented outside of a cloud computing environment) or may be partially cloud-based.

Cloud computing environment122includes an environment that hosts specification platform120. Cloud computing environment122may provide computation, software, data access, storage, etc., services that do not require end-user knowledge of a physical location and configuration of system(s) and/or device(s) that hosts specification platform120. As shown, cloud computing environment122may include a group of computing resources124(referred to collectively as “computing resources124” and individually as “computing resource124”).

Computing resource124includes one or more personal computers, workstation computers, mainframe devices, or other types of computation and/or communication devices. In some implementations, computing resource124may host specification platform120. The cloud resources may include compute instances executing in computing resource124, storage devices provided in computing resource124, data transfer devices provided by computing resource124, etc. In some implementations, computing resource124may communicate with other computing resources124via wired connections, wireless connections, or a combination of wired and wireless connections.

As further shown inFIG.2, computing resource124includes a group of cloud resources, such as one or more applications (“APPs”)124-1, one or more virtual machines (“VMs”)124-2, virtualized storage (“VSs”)124-3, one or more hypervisors (“HYPs”)124-4, and/or the like.

Application124-1includes one or more software applications that may be provided to or accessed by client device210and/or server device140. Application124-1may eliminate a need to install and execute the software applications on client device210. For example, application124-1may include software associated with specification platform120and/or any other software capable of being provided via cloud computing environment122. In some implementations, one application124-1may send/receive information to/from one or more other applications124-1, via virtual machine124-2.

Computing resource124can also include one or more data structures associated with the specification platform120. In an example implementation, the data structure can comprise one or more of a database, a table, a list, and/or the like. The data structure may be stored in virtualized storage (“VSs”)124-3, or the like.

FIG.2is a diagram of example components of a device200. Device200may correspond to client device110, specification platform120, computing resource124, and/or server device140. In some implementations, client device110, specification platform120, and/or computing resource124, may include one or more devices200and/or one or more components of device200. As shown inFIG.2, device200may include a bus210, a processor220, a memory230, a storage component240, an input component250, an output component260, and a communication interface270.

Input component250includes a component that permits device200to receive information, such as via user input (e.g., a touch screen display, a keyboard, a keypad, a mouse, a button, a switch, and/or a microphone). Additionally or alternatively, input component250may include a sensor for sensing information (e.g., a global positioning system (GPS) component, an accelerometer, a gyroscope, and/or an actuator). Output component260includes a component that provides output information from device200(e.g., a display, a speaker, and/or one or more light-emitting diodes (LEDs)).

Communication interface270includes a transceiver-like component (e.g., a transceiver and/or a separate receiver and transmitter) that enables device200to communicate with other devices, such as via a wired connection, a wireless connection, or a combination of wired and wireless connections. Communication interface270may permit device200to receive information from another device and/or provide information to another device. For example, communication interface270may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a Wi-Fi interface, a cellular network interface, or the like.

Device200may perform one or more processes described herein. Device200may perform these processes based on processor220executing software instructions stored by a non-transitory computer-readable medium, such as memory230and/or storage component240. A computer-readable medium is defined herein as a non-transitory memory device. A memory device includes memory space within a single physical storage device or memory space spread across multiple physical storage devices.

Software instructions may be read into memory230and/or storage component240from another computer-readable medium or from another device via communication interface270. When executed, software instructions stored in memory230and/or storage component240may cause processor220to perform one or more processes described herein. Additionally, or alternatively, hardwired circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.

FIG.3Aillustrates an example environment300that includes client device100and specification platform120. In this implementation, specification platform120provides authentication services to allow client device110to access computing resource(s)124, such as APPs124-1or the like. The APPs124-1can provide users access to the various features described herein. Client device110may further include password managers such that the user can access third-party institution data once authenticated.

Initially, a user can create a user profile that is accessible within the environment100. The user profile can include user profile information pertaining to the user, such as occupation, certifications, user information, projects worked on/completed, and the like. Likewise, a company may have a user profile, i.e., a company profile, that includes company profile information pertaining to the company, such as projects worked on/completed by the company, company demographics, company information and the like. As such, the user profile may be synonymous with an individual's and/or a company's resume. For example, the user profiles may represent a templated business profile and/or resume profile. The user profiles can be stored within a database structure within the VSs124-3. In various implementations, data pertaining to the user can be stored as a graph. Within the graph context, nodes can represent users, certifications, locations, a trade group, and the like, and edges can represent relations between the various nodes. It is understood that a database structure can comprise a repository of certifications within the trade group and/or skills trade.

FIG.3Bis a diagram of an example deep neural network (DNN)300. The DNN300can comprise one or more APPs124-1that provide functionality discussed herein to the environment100. The DNN300includes multiple nodes305, and the nodes305are arranged so that the DNN300includes an input layer, one or more hidden layers, and an output layer. Each layer of the DNN300can include a plurality of nodes305. WhileFIG.3Billustrates three (3) hidden layers, it is understood that the DNN300can include additional or fewer hidden layers. The input and output layers may also include more than one (1) node305.

The nodes305are sometimes referred to as artificial neurons305, because they are designed to emulate biological, e.g., human, neurons. A set of inputs (represented by the arrows) to each neuron305are each multiplied by respective weights. The weighted inputs can then be summed in an input function to provide, possibly adjusted by a bias, a net input. The net input can then be provided to activation function, which in turn provides a connected neuron305an output. The activation function can be a variety of suitable functions, typically selected based on empirical analysis. As illustrated by the arrows inFIG.3B, neuron305outputs can then be provided for inclusion in a set of inputs to one or more neurons305in a next layer.

The DNN300can be trained to accept data as input and generate an output based on the input. The DNN300can be trained with ground truth data, i.e., data about a real-world condition or state. For example, the DNN300can be trained with ground truth data or updated with additional data by a processor. Weights can be initialized by using a Gaussian distribution, for example, and a bias for each node305can be set to zero.

Training the DNN300can including updating weights and biases via suitable techniques such as backpropagation with optimizations. Ground truth data can include, but is not limited to, data classifying and/or identifying objects within a point cloud. As discussed herein, the DNN300can comprise a graph neural network (GNN) that determines a similarity between request data and one or more user profiles. As briefly described above, the nodes305can represent users, certifications, locations, a trade group, and the like, and edges can represent relations between the various nodes305.

Once a user profile has been created and/or a user has been authenticated, client device110can access APPs124-1.FIG.4illustrates an example screen400that includes information elements405for registering, uploading, accessing, and/or using the features of the APPs124-1.FIG.5illustrates an example screen500that includes multiple tiles505that allows a user to associate a user profile with a specific skilled trades group, such as an acoustic ceiling community, an audio/visual community, and so forth.

After the user selects a tile505, the user can be presented with a news feed and/or message board600corresponding to the selected skilled trades group as shown inFIG.6. The news feed600includes information posts605related to the selected trades group. In various implementations, the information posts605can be generated by other users of the server-client system. For example, as shown inFIG.6, users can generate posts605pertaining to the masonry skills trade. The news feed600also includes an upcoming events section610that provides information pertaining to upcoming events associated with the user. The news feed600can also include section615and/or tiles620that allows the user to access additional features, such as webpages related to other tradesmen, contractors, architect/engineers, organizations/associations, schools, facilities/property management, and/or vendor store.

In an example implementation, a user may access an exchange calculator via section615. The exchange calculator can allow the user to generate invoices related to services and/or projects performed, accept payments, or the like. For example, the exchange calculator may comprise application programming interfaces (APIs), for example, APIs implemented as a web service, that provide functionality to generate invoices and/or accept payments.

In an example implementation, a user may be able to access a vendor store via tiles620. The vendor store may be webpage for a vendor and/or supplier of goods and/or services related to various trade groups. For example, a vendor and/or supplier may be a supplier of equipment, materials, parts, and/or any other services that are not performed at a project jobsite. In various implementations, the server-client communication system described herein may include industry specific vendor stores.

FIG.7illustrates an example form700for creating a bid request accessible via section615. The user can input data corresponding to the bid request within various input fields705. The input fields705can comprise input fields for receiving text input, for uploading data, and the like. Once finished, the user can select a button710,715such that the bid request is presented to a selected trades group. In an example implementation, once the user selects a button710,715, the labor request can be uploaded to and presented within the news feed and/or message board600.

FIG.8Aillustrates an example form800for creating a labor request accessible via section615. The user can input data corresponding to the labor request within various input fields805. The input fields805can comprise input fields for receiving text input, for uploading data, and the like. Once finished, the user can select a button810,815such that the labor request is presented to a selected trades group. In an example implementation, once the user selects a button810,815, the labor request can be uploaded to and presented within the news feed and/or message board600.

FIG.8Billustrates an example form850for creating a vendor quote accessible via section615. The user can input data corresponding to a vendor quote within various input fields855. The input fields855can comprise input fields for receiving text input, for uploading data, and the like. For example, the user can provide information pertaining to a project that the user would like one or more selected vendors to provide a quote for. In an example implementation, the user can provide information related to an electrical project. Based on the electrical project, the user may select one or more vendors that the user would like to submit quotes to undertake the electrical project. Once finished, the user can select a button860such that the vendor quote is transmitted to the selected vendors. In an example implementation, the information pertaining to the project is transmitted to an email address associated with the selected vendor profiles or the like.

FIG.9illustrates an example webpage900for displaying certifications obtained by the user. The webpage900can include a certification section905that displays relevant information pertaining to the certification obtained by the user. Information pertaining to the user's certification can be stored within a database structure, such as a database structure stored in VSs124-3. The database structure can map the user profile to the corresponding certifications. As shown inFIG.9, the webpage900can include a button910that allows a user to add certification information pertaining to the user.

FIG.10illustrates an example form1000for adding certification information accessible via the button910. The user can input data corresponding to the certification via various input fields1005. The input fields1005can comprise input fields for receiving text input, for uploading data, and the like. Once finished, the user can select a button1010such that the certification is stored within a database structure and is mapped to the user profile.

FIG.11is a flow chart of an example process1100for associating at least a first user profile with a second user profile based on a request, such as a bid request or a labor request. For example, the process1100can facilitate efficient allocation of resources in response to requests, such as bid requests or labor requests, submitted by users. Upon receipt of a request, the system initiates a process for identifying suitable candidates to fulfill the request based on various criteria. In some implementations, one or more process blocks ofFIG.1100may be performed by specification platform120.

At block1105, a determination is made whether a request has been received. For example, the request may comprise a bid request or a labor request submitted by a first user. If a request has not been received, the process1100returns to block1105. Otherwise, at block1110, data pertaining to the request is retrieved. For example, the specification platform120can retrieve data corresponding to a specific trade group, a location, monetary constraints, labor constraints, or the like.

At block1115, a relatedness metric is computed to assess the compatibility between the request data and information stored within a database structure corresponding to user profiles. This relatedness metric is calculated utilizing a graph neural network (GNN) module embedded within the specification platform120. The GNN module (DNN300) analyzes the request data and evaluates its similarity to one or more user profiles. In certain embodiments, the GNN module assigns differential weights to factors such as certification type and location, emphasizing their significance over monetary and labor constraints. It should be noted that these weights are adaptable based on specific constraints.

The computed similarity metric serves as a determinant for presenting a selection of user profiles to the first user. Profiles with higher calculated similarities indicate better suitability for fulfilling the request compared to those with lower similarity scores. This process aids in efficiently matching requests with users possessing the most relevant skill sets and qualifications.

At block1120, a curated list of n user profiles is presented to the first user, where n represents an integer equal to or greater than zero (0). The presentation order is determined by the ranking derived from the relatedness metric, ensuring that profiles with higher compatibility are prioritized.

Following the completion of the process, the initiator of the bid request or labor request can proceed to select one or more user profiles from the presented options. Upon selection, the initiator and the chosen user profiles engage in commercial negotiations pertinent to the request, facilitating efficient resource allocation and task fulfillment.

Memory may include a computer readable medium (also referred to as a processor readable medium) that includes any non-transitory (e.g., tangible) medium that participates in providing data (e.g., instructions) that may be read by a computer (e.g., by a processor of a computer). Such a medium may take many forms, including, but not limited to, non-volatile media and volatile media. Non-volatile media may include, for example, optical or magnetic disks and other persistent memory. Volatile media may include, for example, dynamic random-access memory (DRAM), which typically constitutes a main memory. Such instructions may be transmitted by one or more transmission media, including coaxial cables, copper wire and fiber optics, including the wires that comprise a system bus coupled to a processor of an ECU. Common forms of computer readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD ROM, DVD, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH EEPROM, any other memory chip or cartridge, or any other medium from which a computer can read.

In some examples, system elements may be implemented as computer readable instructions (e.g., software) on one or more computing devices (e.g., servers, personal computers, etc.), stored on computer readable media associated therewith (e.g., disks, memories, etc.). A computer program product may comprise such instructions stored on computer readable media for carrying out the functions described herein.

With regard to the media, processes, systems, methods, heuristics, etc. described herein, it should be understood that, although the steps of such processes, etc. have been described as occurring according to a certain ordered sequence, such processes may be practiced with the described steps performed in an order other than the order described herein. It further should be understood that certain steps may be performed simultaneously, that other steps may be added, or that certain steps described herein may be omitted. In other words, the descriptions of processes herein are provided for the purpose of illustrating certain implementations, and should in no way be construed so as to limit the claims.