Patent ID: 12205176

DETAILED DESCRIPTION OF THE SYSTEM

The system provides a method and process for automatically generating social networking platforms. These social networking platforms and the applications that allow users to interact with the social networking platform are generated automatically for the owner after the owner selects modular features and options that are desirable for both the owner and the user's experiences with the social networking platform. In one embodiment, the system provides a method for an owner to create custom badges as part of a Value Reinforcement System and select specific actions to display on the front page of the application to promote specific behaviors by users. In one embodiment, the system also tags users with dynamically generated “smart tags” based on the user's location and actions. The system is described herein.

Overview of the Social Networking Platform Generated

In one embodiment, as seen inFIG.1, the system creates a server back-end101, and an agnostic view layer107, which is how users primarily interact with the social networking platform. The server backend consists of several pans including an Application Program Interface (API)102, which in one embodiment could be built in the python programming language, and is used to handle the business logic and access the various data stores of the social networking platform. The API102, interacts with the Persistent Data Store103, which in one embodiment could consist of an object relational database such as a PostgreSQL object database, which allows the owner or a user to obtain or store relevant data which is read by the API. If a user on the social networking platform calls for information on a page, the API102will find and read the relevant data in the Persistent Data Store103, send it to the In-memory Data Store104, where it is temporarily kept before being sent to the user's view layer107through the Real Time Computer Communication Protocol105. In one embodiment, the Real Time Computer Communication Protocol105uses the WebSocket protocol. If the information requested by the user includes a media object, such as a video file, image file, or sound file, the user's application will obtain the relevant media object from the Media Storage106, which in one embodiment consists of a cloud storage service. In one embodiment, the View Layer application used by the user to view the social networking platform could be an application written in Objective C108, an application written in Java109, or an application viewed in a web browser written in HTML, Javascript and CSS110. All three applications contain the same content and features and are updated simultaneously. A user using any of the three applications should have the same experience regardless of the type of view layer application used. As users report their actions using the applications in the view layer107, the API102updates the Persistent Data Store103with the new data as the users enter it. The Media Storage106also stores media objects uploaded by the users through the applications in the view layer107. In one embodiment, all communications between the server back-end101and the view layer applications107are tokenized and encrypted to protect the data of the users.

Creating and Updating the Social Networking Platform

In one embodiment, the process of creating the social networking platform begins when the owner selects the features that are desired at step201as seen inFIG.2. In one embodiment, these features are pre-made and can include changing the appearance of the application and any art assets; changing which features are available and the order they appear; modifying the navigation menus and action board; changing the branding and logos; changing the types of tags and smart tags available; selecting the ways that users can communicate and chat with each other; selecting which activities and actions are tracked and reported by users; selecting which actions are displayed on the front page of the application; changing how leaderboards are displayed and selected; changing how a user's profile page is displayed; selecting the kinds of media content available on the network; selecting the kind of training available to users; selecting the kinds of badges available; and selecting what kinds of contests will be available. These selections are entered into the Automatic Back-end Server Generator203at step202.

The generator program then automatically generates the API102, Persistent data store103, Media Storage106, and Real Time Communication Protocol105at step204. In one embodiment, the generator program then sets up the software to access the media storage at step205. Next, the generator program populates the persistent data store with template data at step206. Finally, the generator program configures third party software, metric software and DNS records necessary to access the server at step207. A web content management system (CMS) is generated at step208. The owner then uses the CMS to populate the social networking platform with relevant content at step209. These features and content are then used as a basis to create the applications by inputting the features into the Application creation tool at step210.

In one embodiment, the Application tool then runs two separate processes on two separate servers simultaneously, an Automatic Objective C Application Generator211, and an Automatic Java Application Generator220. In this embodiment, both application generators create a new owner at step212and221. Both application generators then configure new owners in the code and create an application icon at steps213and222. The application generators then compile the new owner's profile and add the owner to the respective app stores for each application at steps214and223. In this embodiment, after the applications are generated, the details about the build are sent to the Automatic Objective C Application Compiler215from the Automatic Objective C Application Generator211, and to the Automatic Java Application Compiler224from the Automatic Java Application Generator220. Both application compilers then compile and upload the build by retrieving the code, settings and other miscellaneous details and compile the requested builds at steps217and226. The compilers then upload the build and metadata to the respective app stores and submit to the app store at steps218and227. The apps are then released on their respective app stores at steps219and228simultaneously.

FIG.3depicts the process that occurs when an owner updates the features or build of the social networking platform in a similar embodiment. After the owner updates the build or the features of the social networking platform in step301, the changes are then input into the automatic compiler at step302. The automatic compiler then runs simultaneously on two separate servers, the Automatic Objective C Application Compiler303and the Automatic Java Application Compiler308then begin to compile the build at steps304and309. The application compilers retrieve the code, setting, and other miscellaneous data to compile the requested builds at steps305and310. The application compilers then upload the modified build and metadata to the respective app store and submit the application to the store at steps306and311. The new modified apps are then released simultaneously on their respective stores at steps307and312.

Example of a View Layer Application

FIG.4is an example of a view layer application to view the social network platform in one embodiment. The application may be viewed on a mobile computing device (“smartphone”)401, or on any device over an internet browser. The application should look and function identically no matter what device is used or what underlying computer language the program is written in. In one embodiment, the application has a notification system402, which notifies the user about someone commenting on or approving the user's actions, or it can be used to notify the user when the owner sends the user a message. The user can engage in a number of activities, actions and functions selected by the owner and visible as buttons that can be interacted with at403. These functions403can vary from sharing the app with friends via other social networking platforms; taking photos using the smartphone's camera; taking surveys; participating in contests; or logging specific activities, actions and interests. In one embodiment, the application also displays a leaderboard at404depicting the profile images of users who have performed the most actions as selected by the owner. The actions can range from sharing the application, to winning a voting contest or other contest, to logging in regularly or regularly performing other actions. In one embodiment, the application can also display the user's recognition wall or activity wall at405. Navigation buttons406can also be customized, selected and arranged by the owner in one embodiment. In one embodiment, an owner can create individualized sub-groups on the platform. These separate subgroups could display different actions selected by the owner at403, and may have a different leaderboard at404. Users can switch between these different sub-groups at will, or they could be assigned to specific sub-groups by the owner.

FIG.6is an example of a custom badge page in the view layer application on a smartphone601in one embodiment. In one embodiment, the badges are arranged by categories602, which correspond to whether the user has obtained those badges, or if they have not obtained them. The badges in each group are then further arranged into subcategories603and604. Each badge has its own description and unique image and are selected by the owner. The owner may create new badges with new requirements and implement them in real time by updating the CMS generated at step208inFIG.2. Users may then engage the platform to obtain the new badge. By engaging with the social networking platform to obtain new custom badges or to appear on the leaderboard, users participate in a Value Reinforcement System (VRS) that promotes the actions and values that the owner finds to be most valuable in the community created on the social networking platform.

Targeted Interactions Using Smart Tags

In one embodiment of the system, the owner may interact with specific users by selecting “smart tags” that correspond with traits in sub-groups of users. An example of the smart tag selection screen in one embodiment of the system is depicted inFIG.5. Using the application as installed on a smartphone device501, an owner can select specific smart tags from groups of smart tags that are separated into separate categories502and503. These smart tags can range from physical attributes such as gender and age, to non-physical attributes such as interests and usual time of activity. These tags can be generated automatically by the social networking platform noticing trends in the actions of users; by determining the location of users; by determining the identity of users, such as generational group; by determining the intentions of users; by determining specific interests of users; by tracking specific behaviors of users; or they can be selected by the users themselves when they register to use the social networking platform. An owner can then use these smart tags to send a message or notification to specific users who would be interested in the content of the message or notification. The users would then be notified of the targeted message or notification by the notification system402inFIG.4. An owner can also use these tags to select what content a user can view on the platform, or select which sub-groups a user may join.

Embodiment of Computer Execution Environment (Hardware)

An embodiment of the system can be implemented as computer software in the form of computer readable program code executed in a general purpose computing environment such as environment702illustrated inFIG.7, or in the form of bytecodes running on a processor (or devices enabled to process bytecodes) existing in a distributed environment (e.g., one or more processors on a network). A keyboard704and mouse705are coupled to a system bus710. The keyboard and mouse are for introducing owner input to the computer system and communicating that owner input to central processing unit (CPU711). Other suitable input devices may be used in addition to, or in place of, the mouse705and keyboard710. I/O (input/output) unit703coupled to bi-directional system bus710represents such I/O elements as a printer, A/V (audio/video) I/O, etc.

Computer702may be a laptop, desktop, tablet, smart-phone, or other processing device and may include a communication interface709coupled to bus710. Communication interface709provides a two-way data communication coupling via a network link719to a local network717. For example, if communication interface709is an integrated services digital network (ISDN) card or a modem, communication interface709provides a data communication connection to the corresponding type of telephone line, which comprises part of network link719. If communication interface709is a local area network (LAN) card, communication interface709provides a data communication connection via network link719to a compatible LAN. Wireless links are also possible. In any such implementation, communication interface709sends and receives electrical, electromagnetic or optical signals which carry digital data streams representing various types of information.

Network link719typically provides data communication through one or more networks to other data devices. For example, network link719may provide a connection through local network717to local server computer718or to data equipment operated by ISP716. ISP716in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet”715. Local network717and Internet715both use electrical, electromagnetic or optical signals which carry digital data streams. The signals through the various networks and the signals on network link719and through communication interface709, which carry the digital data to and from computer702, are exemplary forms of carrier waves transporting the information.

Processor711may reside wholly on client computer702or wholly on server714or processor711may have its computational power distributed between computer702and server714. Server714symbolically is represented inFIG.7as one unit, but server714can also be distributed between multiple “tiers”. In one embodiment, server714comprises a middle and back tier where application logic executes in the middle tier and persistent data is obtained in the back tier. In the case where processor711resides wholly on server714, the results of the computations performed by processor711are transmitted to computer702via Internet715, Internet Service Provider (ISP)716, local network717and communication interface719. In this way, computer702is able to display the results of the computation to an owner in the form of output.

Computer702includes a video memory706, main memory713and mass storage712, all coupled to bi-directional system bus710along with keyboard704, mouse705and processor711.

As with processor711, in various computing environments, main memory713and mass storage712, can reside wholly on server714or computer702, or they may be distributed between the two. Examples of systems where processor711, main memory713, and mass storage712are distributed between computer702and server714include thin-client computing architectures and other personal digital assistants, Internet ready cellular phones and other Internet computing devices, and in platform independent computing environments,

The mass storage712may include both fixed and removable media, such as magnetic, optical or magnetic optical storage systems or any other available mass storage technology. The mass storage may be implemented as a RAID array or any other suitable storage means. Bus710may contain, for example, thirty-two address lines for addressing video memory706or main memory713. The system bus710also includes, for example, a 32-bit data bus for transferring data between and among the components, such as processor711, main memory713, video memory706and mass storage712. Alternatively, multiplex data/address lines may be used instead of separate data and address lines.

In one embodiment of the system, the processor711is a microprocessor such as manufactured by Intel, AMD, Sun, etc. However, any other suitable microprocessor or microcomputer may be utilized, including a cloud computing solution, Main memory713is comprised of dynamic random access memory (DRAM). Video memory706is a dual-ported video random access memory. One port of the video memory706is coupled to video amplifier707. The video amplifier707is used to drive the cathode ray tube (CRT) raster monitor708. Video amplifier707is well known in the art and may be implemented by any suitable apparatus. This circuitry converts pixel data stored in video memory706to a raster signal suitable for use by monitor708. Monitor708is a type of monitor suitable for displaying graphic images.

Computer702can send messages and receive data, including program code, through the network(s), network link719, and communication interface709. In the Internet example, remote server computer714might transmit a requested code for an application program through Internet715, ISP716, local network717and communication interface709. The received code maybe executed by processor711as it is received, and/or stored in mass storage712, or other non-volatile storage for later execution. The storage may be local or cloud storage. In this manner, computer702may obtain application code in the form of a carrier wave. Alternatively, remote server computer714may execute applications using processor711, and utilize mass storage712, and/or video memory706. The results of the execution at server714are then transmitted through Internet715, ISP716, local network717and communication interface709. In this example, computer702performs only input and output functions.

Application code may be embodied in any form of computer program product. A computer program product comprises a medium configured to store or transport computer readable code, or in which computer readable code may be embedded. Some examples of computer program products are CD-ROM disks, ROM cards, floppy disks, magnetic tapes, computer hard drives, servers on a network, and carrier waves.

The computer systems described above are for purposes of example only. In other embodiments, the system may be implemented on any suitable computing environment including personal computing devices, smart-phones, pad computers, and the like. An embodiment of the system may be implemented in any type of computer system or programming or processing environment.

Thus, a method and apparatus for creating customizable social platforms has been described.