# US 12,217,024 B2 · Systems and methods for creating software

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,217,024 B2
- Document ID: US12217024B2
- Status: Granted
- Kind: B2
- Application number: 18/163,264
- Filed: 2023-02-01
- Published: 2023-06-08
- Granted: 2025-02-04
- Earliest claimed: 2020-06-16
- Assignees: Engineer.ai Corp.
- Applicants: Engineer.ai Corp
- Inventors: Siddhartha Ghosh; Sarvaswa Tandon; Ralph Bourdoukan; Sachin Dev Duggal; Rohan Patel
- Web page: https://patentgrep.com/patent/US12217024B2

## CPC

- G06F 8/316: {Aspect-oriented programming techniques}
- G06F 8/10: Requirements analysis; Specification techniques
- G06F 8/20: Software design
- G06F 8/36: Software reuse
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06Q 10/06311: {Scheduling, planning or task assignment for a person or group}
- G06Q 10/06313: {Resource planning in a project environment}
- G06Q 30/0283: Price estimation or determination
- G06F 8/34: Graphical or visual programming
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

An online software development platform providing an integrated resource for design, development, and purchase of customer-desired software applications for software projects created by customers. The platform comprising one or more computers configured using computer readable instructions stored in non-transitory computer memory to provide the software development platform, wherein the software development platform is configured to implement a plurality of electronic operational domains providing user-interactive capabilities or internal functionalities of the software development platform. The domains comprising a project scope process, a pricing process, and a project development process. The platform is configured to use a configuration involving knowledge graph to recommend features.

## Claims

### Claim 1

An online software development platform providing an integrated resource for design and development of customer-desired software applications, comprising:
one or more computers configured using computer readable instructions stored in non-transitory computer memory to provide the online software development platform, wherein the online software development platform is configured to implement a plurality of electronic operational domains providing user-interactive capabilities or internal functionalities of the online software development platform, the domains comprising:
a database configured to store the online software development platform-defined graph data structures including edges, nodes, and properties in accordance with one or more data models, wherein the online software development platform-defined graph data structures comprises a plurality of different types of nodes representing entities, the node types comprising template, project, and feature, each node type having a set of defined attributes, and a plurality of different types of edges that represent interrelationship between entities;
wherein the online software development platform is configured to collect data from activity in a project scope process, pricing process, and project development process in accordance with the online software development platform-defined graph data structures, wherein as part of the project scope process a plurality of features are selected by a current user to be included in the customer-desired software application;
wherein the online software development platform is configured to generate and store a graph database comprising the nodes and edges created from the collected data in the operation of the online software development platform and configured to reuse existing nodes and edges, add new nodes and edges, and adjust individual attributes of existing nodes and edges, wherein the graph database represents via nodes and edges an aggregation of the software projects conducted on the online software development platform and related information and is updated to include new software projects using collected data; and
wherein the online software development platform configured to, in response to a query of the nodes and edges and graph traversal, control an action performed by the project development process.

### Claim 2 (depends on 1)

The online software development platform of claim 1 wherein the project scope process is configured to selectively assign one or more elements of the software project, including one or of the selected features for the project, to developers.

### Claim 3 (depends on 1)

The online software development platform of claim 1 wherein the project scope process is configured to manage the development process.

### Claim 4 (depends on 1)

The online software development platform of claim 1 wherein the project scope process is configured to track the development process.

### Claim 5 (depends on 1)

The online software development platform of claim 1 wherein the online software development platform is configured to generate an output comprising an assignment to a developer in response to the query.

### Claim 6 (depends on 1)

The online software development platform of claim 1 wherein the online software development platform is configured to selectively assign one of the elements of the software project to one of the developers in in response to the query.

### Claim 7 (depends on 1)

The online software development platform of claim 1 wherein the online software development platform is configured to:
include embedding generation that generates an embedding comprising a plurality of n-dimensional vectors that in accordance with an embedding algorithm represent the graph database, each n-dimensional vector corresponding to a node in the graph database and comprising vector values based on relationship to other nodes in the graph database; and
control the embedding generation with the hyper parameters and generate different and store different embeddings corresponding to different software tools.

### Claim 8

A non-transitory computer readable medium storing one or more software applications that causes a computer system to execute a method that implements an online software development platform providing an integrated resource for design and development of customer-desired software applications, the method comprising:
implementing a plurality of electronic operational domains providing user-interactive capabilities or internal functionalities of the online software development platform, the domains comprising:
a database configured to store the online software development platform-defined graph data structures including edges, nodes, and properties in accordance with one or more data models, wherein the online software development platform-defined graph data structures comprises a plurality of different types of nodes representing entities, the node types comprising template, project, and feature, each node type having a set of defined attributes, and a plurality of different types of edges that represent interrelationship between entities;
collecting data from activity in a project scope process, pricing process, and project development process in accordance with the online software development platform-defined graph data structures, wherein as part of the project scope process a plurality of features are selected by a current user to be included in the customer-desired software application;
generating and storing a graph database comprising the nodes and edges created from the collected data in the operation of the online software development platform and reusing existing nodes and edges, add new nodes and edges, and adjust individual attributes of existing nodes and edges, wherein the graph database represents via nodes and edges an aggregation of the software projects conducted on the online software development platform and related information and is updated to include new software projects using collected data; and
in response to a query of the nodes and edges and graph traversal, controlling an action performed by the project development process.

### Claim 9 (depends on 8)

The non-transitory computer readable medium of claim 8 wherein method comprising selectively assigning one or more elements of the software project, including one or of the selected features for the project, to developers.

### Claim 10 (depends on 8)

The non-transitory computer readable medium of claim 8 wherein the project scope process is configured to manage the development process.

### Claim 11 (depends on 8)

The non-transitory computer readable medium of claim 8 wherein the project scope process is configured to track the development process.

### Claim 12 (depends on 8)

The non-transitory computer readable medium of claim 8 wherein the method comprising generating an output comprising an assignment to a developer in response to the query.

### Claim 13 (depends on 8)

The non-transitory computer readable medium of claim 8 wherein the method comprising selectively assigning one of the elements of the software project to one of the developers in in response to the query.

### Claim 14 (depends on 8)

The non-transitory computer readable medium of claim 8 wherein the method comprising:
including embedding generation that generates an embedding comprising a plurality of n-dimensional vectors that in accordance with an embedding algorithm represent the graph database, each n-dimensional vector corresponding to a node in the graph database and comprising vector values based on relationship to other nodes in the graph database; and
controlling the embedding generation with the hyper parameters and generate different and store different embeddings corresponding to different software tools.

### Claim 15

A computer implemented method for an online software development platform providing an integrated resource for design and development of customer-desired software applications, the method comprising:
implementing a plurality of electronic operational domains providing user-interactive capabilities or internal functionalities of the online software development platform, the domains comprising:
a database configured to store the online software development platform-defined graph data structures including edges, nodes, and properties in accordance with one or more data models, wherein the online software development platform-defined graph data structures comprises a plurality of different types of nodes representing entities, the node types comprising template, project, and feature, each node type having a set of defined attributes, and a plurality of different types of edges that represent interrelationship between entities;
collecting data from activity in a project scope process, pricing process, and project development process in accordance with the online software development platform-defined graph data structures, wherein as part of the project scope process a plurality of features are selected by a current user to be included in the customer-desired software application;
generating and storing a graph database comprising the nodes and edges created from the collected data in the operation of the online software development platform and reusing existing nodes and edges, add new nodes and edges, and adjust individual attributes of existing nodes and edges, wherein the graph database represents via nodes and edges an aggregation of the software projects conducted on the online software development platform and related information and is updated to include new software projects using collected data; and
in response to a query of the nodes and edges and graph traversal, controlling an action performed by the project development process.

### Claim 16 (depends on 15)

The computer implemented method of claim 15 wherein method comprising selectively assigning one or more elements of the software project, including one or of the selected features for the project, to developers.

### Claim 17 (depends on 15)

The computer implemented method of claim 15 wherein the project scope process is configured to manage the development process.

### Claim 18 (depends on 15)

The computer implemented method of claim 15 wherein the project scope process is configured to track the development process.

### Claim 19 (depends on 15)

The computer implemented method of claim 15 wherein the method comprising generating an output comprising an assignment to a developer in response to the query.

### Claim 20 (depends on 15)

The computer implemented method of claim 15 wherein the method comprising selectively assigning one of the elements of the software project to one of the developers in in response to the query.
