US 12,393,402 B2
Systems for designing custom applications
Alejandro Olvera Velasco, Falls Church, VA (US); Jose Nocedal de la Garza, Leesburg, VA (US); Timothy Lang, McLean, VA (US); Holly Stevens, Winchester, VA (US); Andrew Smith, Oakton, VA (US); Wei Jiang, Hangzhou (CN); Jin Liu, Hangzhou (CN); Divya Singh, Chantilly, VA (US); and Qingru Shen, Arlington, VA (US)
Assigned to MicroStrategy Incorporated, Vienna, VA (US)
Filed by MicroStrategy Incorporated, Vienna, VA (US)
Filed on Dec. 13, 2022, as Appl. No. 18/080,708.
Prior Publication US 2024/0192926 A1, Jun. 13, 2024
Int. Cl. G06F 8/20 (2018.01); G06F 8/71 (2018.01)
CPC G06F 8/20 (2013.01) [G06F 8/71 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A method performed by one or more computers, the method comprising:
identifying, by the one or more computers, a predetermined set of application features that are available to be selectively included in a custom application hosted by a server system;
storing, by the one or more computers, a repository of application elements corresponding to the application features, wherein the application elements in the repository include software modules for at least some of the application features;
storing, by the one or more computers, a mapping of application features to application elements;
providing, by the one or more computers, an interface for generating the custom application, wherein the interface includes features to specify each of a plurality of adjustable settings, such that the interface is configured to receive input information that specifies adjustments to an appearance of the custom application and selects application features from the predetermined set of application features for inclusion in the custom application;
receiving, by the one or more computers, input through the interface that specifies settings for the custom application including at least one of (i) a change to the appearance of the custom application or (ii) a customized set of the application features;
based on the input received through the interface, generating, by the one or more computers, configuration data for the custom application, wherein the configuration data specifies a configuration of the application features to provide in the custom application based on the input received through the interface;
configuring, by the one or more computers, the server system to make the custom application available to one or more client devices of one or more users, wherein the server system is configured to dynamically generate the custom application from application elements in the repository when the custom application is requested by a client device, wherein the server system is configured to respond to a request for the custom application from the client device over a communication network by generating and providing application data based on the configuration data, including, in response to receiving the request for the custom application from the client device:
based on the configuration data for the custom application, selecting application elements from the repository that correspond to application features specified by the configuration data for the custom application based on the mapping of application features to application elements in the repository;
assembling the selected application elements from the repository according to the configuration data for the custom application to generate the application data for the custom application; and
providing the application data to the client device over the communication network; and
after generating the configuration data for the custom application:
updating one or more of the application elements in the repository from a first version of the application element to a second version of the application element; and
updating the mapping such that a particular application feature of the application features is mapped to the second version of the application element instead of the first version of the application element, wherein updating the mapping configures the server system to serve the custom application using the second version of the application element without modifying the configuration data for the custom application.