The general inventive concepts relate to electronic greeting cards and, more particularly, to systems, methods, and apparatuses for creating, editing, distributing, and viewing electronic greeting cards on a portable computing device.
Paper greeting cards have been widely used for a number of decades. The benefits and uses of paper greeting cards have been well documented in the art. With the advent of technology, paper greeting cards have been steadily replaced with electronic greeting cards, which satisfy the many benefits and uses of paper greeting cards.
Electronic greeting cards have been largely limited to desktop platforms owing to the resource-intensive nature of such cards. Lately, electronic greeting cards have been implemented as part of mobile applications in portable computing devices.
However, portable computing devices utilize several different operating systems, i.e. software and hardware frameworks. Therefore, electronic greeting cards have been limited to being implemented on frameworks specific to the devices which render them.
There is a need to provide for systems, methods, and apparatuses which allow a user to create, edit, view, and distribute electronic greeting cards on portable computing devices without depending on the specific framework of the devices which render them.
The general inventive concepts contemplate systems, methods, and apparatuses for creating, editing, distributing, and viewing electronic greeting cards on a portable computing device. By way of example, to illustrate various aspects of the general inventive concepts, several exemplary embodiments of systems, methods, and/or apparatuses are disclosed herein.
An inventive mobile optimized browser builder for creating, editing, distributing, and viewing a specific electronic greeting card on a portable computing device after a code is scanned by the portable computing device is described. The rendering of the card on the mobile device is optimized for that particular type of mobile device.
Additional features and advantages will be set forth in part in the description that follows, and in part will be obvious from the description, or may be learned by practice of the embodiments disclosed herein. The objects and advantages of the embodiments disclosed herein will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing brief summary and the following detailed description are exemplary and explanatory only and are not restrictive of the embodiments disclosed herein or as claimed.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate some embodiments disclosed herein, and together with the description, serve to explain principles of the embodiments disclosed herein.
The embodiments disclosed herein will now be described by reference to some more detailed embodiments, with occasional reference to the accompanying drawings. These embodiments may, however, be embodied in different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the embodiments to those skilled in the art.
Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which these embodiments belong. The terminology used in the description herein is for describing particular embodiments only and is not intended to be limiting of the embodiments. As used in the specification and the appended claims, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise.
The following are definitions of exemplary terms used throughout the disclosure. Both singular and plural forms of all terms fall within each meaning:
“Computer” or “computing device” or “processing unit” as used herein includes, but is not limited to, any programmed or programmable electronic device, microprocessor, or logic circuit that can store, retrieve, and process data.
“Portable computing devices” include, but are not limited to, computing devices that combine the powers of a conventional computer in portable environments. Exemplary portable computing devices include portable computers, tablet computers, interne tablets, Personal Digital Assistants (PDAs), ultra mobile PCs (UMPCs), carputers (typically installed in automobiles), wearable computers, and smartphones. The term “portable computing device” can be used synonymously with the terms “computer” or “computing device” or “processing unit.”
“Web browser” as used herein, includes, but is not limited to, software for retrieving and presenting information resources on the World Wide Web. An information resource may be a web page, an image, a video, a sound, or any other type of electronic content.
“Software” or “computer program” as used herein includes, but is not limited to, one or more computer or machine readable and/or executable instructions that cause a computer, a portable computing device, microprocessor, logic circuit, or other electronic device to perform functions, actions, and/or behave in a desired manner. The instructions may be embodied in various forms such as routines, algorithms, modules or programs, including separate applications or code from dynamically linked libraries. Software may also be implemented in various forms such as a stand-alone program, an app, a mobile application, a function call, a servlet, an applet, instructions stored in a memory or any other computer readable medium, part of an operating system or other type of executable instructions. It will be appreciated by one of ordinary skill in the art that the form of software is dependent on, for example, requirements of a desired application, the environment it runs on, and/or the desires of a designer/programmer or the like.
“Mobile application” as used herein, includes, but is not limited to, applications that run on smart phones, tablet computers, and other mobile or portable computing devices. The terms “mobile application” or “mobile app” or “software application” or “application” or “app” can be used synonymously with “software” or “computer program” or “application software.” Mobile applications allow users to connect to services that are traditionally available on the desktop or notebook platforms. Typically, these services access the Internet or intranet or cellular or wireless fidelity (Wi-Fi) networks, to access, retrieve, transmit and share data.
“Memory” as used herein is memory that is visible to and/or directly addressable by software executed on a processor.
“Processor” as used herein, refers to central processing units, microprocessors, microcontrollers, reduced instruction set circuits (RISC), application specific integrated circuits (ASIC), logic circuits, and any other circuit or processor capable of executing the functions described herein.
“Network” as used herein, includes, but is not limited to, a collection of hardware components and computers or machines interconnected by communication channels that allow sharing of resources and information, including without limitation, the worldwide web or Internet. A network maybe “wireless,” “wired,” or a combination of wired and wireless networks.
“Server” as used herein, includes, but is not limited to, a computer or a machine or a device on a network that manages network resources. The general term “server” may include specific types of servers, such as a Web Server, File Server (a computer and storage device dedicated to storing files), Print Server (a computer that manages one or more printers), a Network Server (a computer that manages network traffic), and a Database Server (a computer system that processes database queries). Although servers are frequently dedicated to performing only server tasks, certain multiprocessing operating systems allow a server to manage other non-server related resources.
“Web server” as used herein, includes, but is not limited to, a server which serves content to a web browser by loading a file from a disk, or automatically generating a response by combing a search result from a database or other repository with calculations based on client request parameters and business rules and logic embedded in the software, and serving it across a network to a user's web browser, typically using a hyper text transfer protocol (HTTP).
“Instructions” as used herein is synonymous to “Source code” or “product code”, and includes, but not limited to, a textual software code, or a machine code, or notations in graphical software languages, which specify actions to be performed by a machine, which includes, but not limited to, a computer.
“SVG” or “SVG File” or “Scalable Vector Graphics” or “Scalable Vector Graphics File” as used herein, includes, but not limited to, a vector graphics file format which enables the display of certain multi-dimensional images in XML pages on the web.
“XML” or “Extensible Markup Language” as used herein, includes, but not limited to, a set of rules for encoding documents in a machine-readable form.
“Call” or “System Call” or “Pull” or “Pulled” as used herein, includes, but not limited to, a mechanism by which a program makes a request for a service from either an operating system or an application program or software.
“API Files” or “API” or “Application Programming Interface” as used herein, includes, but not limited to, an interface between different software programs or software files, which facilitates the interaction of the different software programs or software files by way of a specific set of rules and specifications.
“XINCLUDE” as used herein, includes, but not limited to, a mechanism whereby multiple XML documents are merged. The merger is accomplished by incorporating inclusion tags in the source XML document which prompts the source XML document to include other documents or parts of other XML documents resulting in a single XML Information Set.
“Source code” or “product code” as used herein, includes, but not limited to, a textual software code, a programming language code, or a machine code, or notations in graphical software languages, which specify actions to be performed by a machine, which includes, but not limited to, a computer.
All publications and patent applications mentioned herein are incorporated herein by reference to disclose and describe the materials, methods and/or systems in connection with which the publications or applications are cited. It is understood that the present disclosure supersedes any disclosure of an incorporated publication to the extent there is a contradiction.
Reference will now be made to the drawings.
At step 104, sender 150 is presented with four options on the landing page, described in steps 105-108. At step 105, sender 150 may enter a mobile optimized browser builder 1302 (See
If sender 150 chooses to recommend the electronic greeting card 130 at step 106, sender 150 is prompted with a login screen where sender 150 is able to enter their user credentials (e.g. a username and a password) associated with system 100 or with a third-party system such as Google®. Once logged in, sender 150 is able to recommend the electronic greeting card 130 to sender's contacts on Google+. If sender 150 chooses to “like” the electronic greeting card 130 at step 107, sender 150 is prompted with a login screen where sender 150 is able to enter their user credentials (e.g. a username and a password) associated with system 100 or with a third-party system such as Facebook®. Once logged in, sender 150 is able to “like” the electronic greeting card 130. At both steps 106 and 107, if sender 150 has previously logged in to system 100 either via the Google+® or Facebook® services, sender 150 may be able to bypass the login step and proceed directly to the recommend or like steps respectively.
If sender 150 elects to download a mobile app at step 108, sender 150 is prompted to download an ecard app 1201. The ecard app 1201 may be available via any known mobile app download medium, including, but not limited to, Google Play® or Google Store® (for Android® devices), App Store® (for iOS® devices), and Windows Store® (for Windows® devices). The ecard app 1201 will embody all functionality and features described herein with reference to the mobile optimized browser builder 1302 at step 105 (discussed in further detail below). However, the ecard app 1201 will be implemented as a mobile application, while the mobile optimized browser builder 1302 will be implemented on a web browser of the portable computing device 1001. Once the ecard app 1201 is downloaded and installed on device 1001, sender's interactions with the app 1201 will continue at step 128. Exemplary embodiments describing sender's interactions in downloading and installing the ecard app 1201, and the operations and flow of building and distributing an electronic greeting card via the ecard app 1201 are fully described in U.S. patent application Ser. No. 13/460,045, entitled “SYSTEMS, METHODS AND APPARATUSES FOR CREATING, EDITING, DISTRIBUTING, AND VIEWING ELECTRONIC GREETING CARDS,” which is hereby incorporated by reference in full (“the '045 application”).
If sender 150 elects to build an electronic greeting card 130 at step 105, sender 150 is directed to three personalization steps 109, 110, and 111 of the mobile optimized browser builder 1302, which allow sender 150 to personalize the electronic greeting card 130 by adding a photo, adding a message, and adding a signature respectively. The personalization steps 109, 110, and 111 are described in more detail in the '045 application. Sender 150 can then preview the customized card 130 at step 112, and choose to send the card 130 at step 113.
If sender 150 chooses to send the card 130 at step 113, system 100 checks to see if sender 150 is signed in to services offered as part of system 100 at step 114. At step 116, if sender 150 is signed in, sender 150 is directed to the send options page at step 121. If sender 150 is not singed in, sender 150 is presented with two (2) choices: an existing user sign in page at step 117, or a new user sign up page at step 118. If sender 150 is an existing user of system 100, sender 150 is directed to step 119, where sender 150 signs in to system 100 using their user credentials (e.g. a username and a password). After the sign-in, sender 150 is directed to the send options page at step 121. If sender 150 is a new user to system 100, sender 150 is directed to step 120, where sender 150 creates new user credentials (e.g. a username and a password). After the new user creation, sender 150 is directed to the send options page at step 121.
At step 121, sender 150 is able to choose between three (3) send options: the option to send the electronic greeting card 130 as an email (step 122), via Facebook® (step 123), or as a text message (step 124). If sender 150 chooses the Facebook® step at 123, sender 150 is able to either select and send the electronic greeting card 130 to a contact on Facebook®, or simply share the electronic greeting card on their own Facebook “wall.” Regardless of the option chosen (122, 123, or 124), sender 150 is then directed to a card send confirmation page at step 127, thereby completing the send cycle.
Sender 150 typically first interacts with the system 100 by scanning the QR Code 1002 with their portable computing device 1001. Although the embodiments described herein are illustrated with reference to the QR Code 1002, any other type of scannable code such as a bar code may be used in the present invention without departing from the spirit of the invention. Accordingly, it is expressly intended that all such equivalents, variations and changes which fall within the spirit and scope of the present invention as defined in the claims be embraced thereby. Alternately, sender 150 may also directly enter a URL (e.g., an easy to remember “vanity” URL) on the web browser of their portable computing device 1001. The QR Code 1002 or the URL 1005 may be placed on marketing collateral which may then be distributed both in print and electronic medium. Exemplary marketing collateral is displayed in
Although sender 150 typically first interacts with system 100 by scanning the QR Code 1002 on the marketing collateral, examples of which are provided above, sender 150 may directly access the mobile optimized browser builder 1302 by entering an appropriate URL 1005 for a particular electronic greeting card, or by entering a URL 1005 for a landing page, which then allows sender 150 to choose from one or more electronic greeting cards on their portable computing device 1001.
With reference to
In an embodiment, a mobile optimized browser builder 1302 used for creating, editing, distributing, and viewing electronic greeting cards on a portable computing device 1001 without requiring sender 150 or a receiver 160 (not shown) of the electronic greeting cards to download a mobile application or any other portable application for accomplishing said purposes is shown.
With reference to
At
During the rendering of the builder 1302, depending on the type of portable computing device 1001 used, an Application Programming Interface (an API) is utilized to provide the mobile optimized browser builder 1302 with a content catalog and specific electronic greeting card content 131 (not shown). The mobile optimized browser builder 1302 may also be configured to request electronic greeting card content 131 based on the device's screen size and resolution (i.e., pixel density). The API provides a nearest match for the requested sizes so that resources for a tablet computer, for example, will serve larger content than resources for smaller screened devices like a mobile phone.
In an embodiment, the API is utilized for the purposes of facilitating the rendering of Scalable Vector Graphics (Images) (SVG) on the portable computing device 1001, including external images which are stored in an SVG format. SVG format is a type of format which uses extensible markup language (XML) specifications to render static and dynamic two-dimensional vector graphics. The API is used for, but not limited to, visualization, scalable icons, scalable graphics, scalable text, scalable images, scalable dynamic text and other uses which require scalable data. The system interactions between the several SVG files, non-SVG files and the API is handled via a communication network 132 (not shown), comprised of the portable computing device 1001, the internet (not shown) and any host server(s) (not shown). Exemplary embodiments of the communication network 132 is shown in the '045 application. The communication network 132 uses the API as the bridge between the user's portable computing device 1001 and the SVG graphics and other files that comprise the electronic greeting card content 131. Source code (“app Source Code”) of the mobile optimized browser builder 1302 allows the user of the mobile optimized browser builder 1302 to interact with and manipulate the elements within an SVG file and any non-SVG files through the API.
In an embodiment, the user interacts with, or edits, or displays, or performs actions with, or views, or adds/edits/replaces information on a user interface of the mobile optimized browser builder 1302. The user interactions are enabled by system interactions between several SVG files, API files and the app Source Code. They include displaying, interacting with, and managing animations, loading text within SVG files, and loading dynamic text in the SVG files. Further, when the user wishes to interact with the screen of the smart phone, such user interactions are enabled by system interactions between several SVG files, API files and the app Source Code. These interactions are further described in the '045 application.
In an embodiment, the SVG files can be scaled. Unlike the files with Joint Photographic Experts Group (JPEG) properties and/or files with Graphics Interchange Format (GIF) properties, SVG files, and especially SVG images are scalable to the size of the window where the image is viewed. After rendering, the SVG file adjusts in size and resolution to the size of the viewing window. Additionally, the SVG files are interactive.
In an embodiment, the SVG files are formatted such that the resultant SVG file complies with XML specifications. The SVG files are created through text-based commands.
In an embodiment, the SVG files are utilized for many purposes, including but not limited to, transformations of objects, colors of a shape or text, opacity of a shape or text, gradients of a shape or text, textures of a shape or text, filling a shape or text, stroking a shape or text (stroke), clipping a shape or text, filter effects on a shape or text, inserting symbols or images at coordinates, interactive elements, event handling within and outside the script, scripting and animation functions.
In an embodiment, a document object may be used to access an SVG file or a non-SVG file. A document object may be used to inquire into the document properties of the SVG file or a non-SVG file as well as to create new document elements within the accessed document.
In an embodiment, several references within the accessed document can be retrieved using calls and pulls. In this context, calls may be viewed as requests for information and pulls may be viewed as the retrieval of said information requested.
Several API methods can be used to manipulate the SVG elements or non-SVG elements, each of which is associated with a definitive property or function. The API files can also be used to register event listeners to work with the SVG files or non-SVG files. An event listener listens for events such as a ‘return’ call (pressing the return key) within the portable computing device 1001.
In an embodiment, the SVG file (e.g., main.svg) is pulled from an exemplary cloud server 133 (not shown). The pulled SVG file creates an entry point into the SVG data associated with the pulled electronic greeting card 130. The pulled SVG file may reference to one or more additional SVG files or non-SVG files creating a resulting file. In an embodiment, the reference from the pulled SVG file to other SVG or non-SVG file(s) is achieved through a pull mechanism via an XINCLUDE or any other XML inclusion means.
In an embodiment, the resulting file, as described above, is parsed into a product model. The product model as used herein, includes, but not limited to, a symbol library containing references to images to be used in electronic greeting cards 130. The symbol library contains references to images for electronic greeting cards 130, which include, but are not limited to, sounds, files, static text, dynamic text, functions and images. The symbol library may also contain references to the usage of the images (assets) which include, but are not limited to, identifying whether the image is a background, a sticker, a portion of the electronic greeting card 130, a foreground, a font, a signature element, a text element, an image element, an audio element and an element which defines function of the image. The symbol library may also contain a list of “scenes.” The scenes may correspond to pages in a greeting card held in a physical (e.g. paper) medium. The list of scenes, includes, but not limited to, a front-cover scene, an inside left scene, an inside right scene, a back-cover scene and a middle page scene. The scenes may be comprised mostly of references to objects in the symbol library. For instance, a front cover scene may reference a background image from the symbol library. Also, a front cover scene may reference an audio clip from the symbol library which may be used for the purposes of background audio.
In an embodiment, the product code translates the SVG file(s), the non-SVG file(s), the resultant file and any references to the symbol library into a series of “draw” calls that the application performs, which directs the application into drawing or creating a page on the portable computing device's screen. In an embodiment, the application is directed into drawing or creating a page, without identifying the underlying SVG data.
When sender 150 clicks on 1702 to personalize and send the card 130, the user is directed to the builder page 1801, as shown in
When sender 150 chooses to add a signature by selecting the link 1804, sender 150 is directed to the screen shown in
When sender 150 chooses to add a message by selecting the link 1804 in
When sender 150 chooses to add a photo by selecting the link 1802 in
If sender 150 selects the preview link 1805, sender 150 is directed to a preview screen 2601 as shown in
If sender 150 chooses to send the card by activating the send links 1806 (
If sender 150 chooses to sign in by selecting the link 2802, sender 150 is directed to a sign-in page 2910 as shown in
If sender 150 chooses to create a new account 2804 as shown in
Once sender 150 either creates a new account or signs in, sender 150 is directed to a send options screen 3101 as shown in
If sender 150 chooses to send the card 130 using Facebook® by selecting the link 3103 in
If sender 150 chooses to send the card 130 using the text message link 3104 as shown in
The receiver's (160) interactions in receiving and viewing the card 130 through the mobile optimized browser builder 1302 is similar to receiving the card 130 through the ecard app 1201, except that in the latter, the receiving and the viewing require the ecard app 1201 to be downloaded and installed. In such parts where receiving and the viewing of the card 130 require the ecard app 1201 to be downloaded and installed, such operations may be accomplished on the mobile optimized browser builder 1302 directly. The operations and flow of receiving and viewing the electronic greeting card 130 via the ecard app 1201 are fully described in the '045 application.
As described earlier, the mobile optimized browser builder 1302 is rendered to sender 150 on the portable computing device 1001 via JavaScript, an interpreted computer programming language. The mobile optimized browser builder 1302 is essentially a single web page JavaScript application. All of the page interactions (e.g. 1801) happen through JavaScript, in addition to CSS and Canvas (a class in Java® programming). The rendering of the card 130 happens through SVG and XML via the API described above. JavaScript also drives the editing of the card 130; selecting and uploading photos from Facebook®, device storage or device camera; previewing the edited card 130; authenticating sender 150 and receiver 160s (including sign-ins and new account creations where JavaScript XHR is initiated to a Python backend); choosing a send method; connecting and sharing on Facebook® (by utilizing the Facebook® JavaScript SDK); and sending the card 130 (JavaScript XHR is initiated to API). JavaScript XHR and API are also utilized in uploading ground images to a backend database in system 100. Further, advanced image processing and rendering on the internal pages of the card 130 are accomplished using JavaScript and Canvas.
All the same functionality and the software flow that can be accomplished by the ecard app as described in the '045 application can also be accomplished and implemented via the mobile optimized browser builder 1302.
The above description of specific embodiments has been given by way of example. From the disclosure given, those skilled in the art will not only understand the general inventive concepts and attendant advantages, but will also find apparent various changes and modifications to the structures and methods disclosed. For example, although the embodiments disclosed herein have been primarily directed to a portable computing device, the general inventive concepts could be readily extended to a personal computer (PC) or other relatively fixed console computers, and may be pursued with reference to a website and/or other online or offline mechanisms. Further, other social networking sites other than those specifically described herein may be used as delivery media for electronic greeting cards. As another example, the general inventive concepts are not typically limited to any particular interface between a user and the user's mobile computing device. Thus, for example, use of alternative user input mechanisms, such as voice commands and keyboard entries, are within the spirit and scope of the general inventive concepts. As a further example, the general inventive concepts are not typically limited to just mobile web browsers. Other browsing environments which permit the rendering and usage of the mobile optimized browser builder may be employed. For example, social networking applications such as Facebook® and Twitter® may be utilized to render and use the mobile optimized browser builder pages (e.g. within the Facebook® browser). It is sought, therefore, to cover all such changes and modifications as fall within the spirit and scope of the general inventive concepts, as described and claimed herein, and equivalents thereof.
This application claims the benefit of and priority to U.S. Provisional Patent Application No. 61/778,408 filed on Mar. 12, 2013, entitled “VIRTUAL SHOP FOR ELECTRONIC GREETING CARDS,” which is incorporated by reference in full in this application.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US14/24074 | 3/12/2014 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
61778408 | Mar 2013 | US |