Abstract:
The present embodiments provide a system for generating design palettes over a network. In one embodiment, the system comprises a database configured to store design product data corresponding to one or more design features of a plurality of design products. A user interface is configured to allow submission of information specifying one or more requested design features. An e-palette server is in operative communication with the database and the user interface. The e-palette server is configured to receive the requested design features and to generate a subset of the design products. Each design product in the subset of the design products shares at least one design feature in common with the requested design features. An e-palette generator is configured to generate a design palette including at least one design product from the subset of design products and to send the design palette to the user interface for display.

Description:
PRIORITY CLAIM 
     This invention claims the benefit of the filing date under 35 U.S.C. §119(e) of priority of U.S. Provisional Application Ser. No. 61/688,752, entitled “Electronic Palette System,” filed May 22, 2012, which is hereby incorporated by reference in its entirety. 
    
    
     FIELD 
     This invention relates to a system for accomplishing interior and exterior design. In particular, the invention relates to electronic design palettes created by via a website or tablet app. The ability to order multiple samples, project binder, specification sheets, warranty sheets, maintenance sheets, installation instructions and MSDS sheets with one click. 
     SUMMARY 
     In the interior design industry, designers and architects often have to create interior design palettes that include one or more combinations of different product samples (e.g., carpet, flooring, fabric, plastic, laminate, etc.) that will be used to decorate an interior or exterior space (e.g., office, apartment, building, etc.). These design palettes are presented to client and potential clients during a sales pitch and are a very important part of the interior design business. Currently, these design palettes are created by manually reviewing hundreds or even thousands of product samples from different manufacturers, or browsing the websites of these product manufacturers in order to select a product. Then, physical product samples are collected and presented to the client. This is a very difficult process that takes many hours of the designer&#39;s time. In addition, this process is further extended by the fact that a designer or architect often must order separate product samples from different manufacturers. Ordering is generally performed by either calling the various selected manufacturers or completing an order form on the manufacturer&#39;s website. 
     Therefore, there is a need for an improved system for creating design palettes and ordering product samples. The electronic system described here allows designers and architects to quickly evaluate products from hundreds of manufacturers using a website that includes a filtering feature that searches and sorts products according to inputted project requirements. This system allows users to create and manage their palettes online, via web browsers. The system further allows manufacturers to submit and manage their products and also acts as a forum for all users (e.g., designers, manufacturers, students, etc.) to interact with other users and exchange opinions about different products. 
     The system further permits users to modify a created palette, compare palettes, or just to save information about products that they would like use in a current or future project. Each created electronic palette (or e-palette) can be shared with other users (e.g., via email or social media), printed, or downloaded to a user&#39;s computer. The system allows a designer or an architect to work on multiple palettes at one time. Further, the system allows a designer or an architect to order multiple physical samples of all of the products in their palette(s) or download all of the specification sheets, warranty sheets, maintenance sheets, installation instructions and MSDS sheets at on time or create a project binder. Therefore, this proposed system will save the architect or the designer hundreds of hours per year over the traditional process of going through a physical library of products and sorting by hand through thousands of products, and then having to separately order each sample of the products that they want. 
     Other embodiments and aspects of the invention will become apparent by consideration of the detailed description and accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  depicts a schematic illustration of a system for generating electronic palettes according to embodiments of the invention. 
         FIG. 2  illustrates an electronic palette server and databases for use with the system for generating the electronic palette of  FIG. 1 . 
         FIG. 3  further illustrates an exemplary database of  FIG. 2 . 
         FIG. 4  depicts a method for generating an exemplary electronic palette according to embodiments of the invention. 
         FIGS. 5 and 6   a - g  illustrate webpages of an exemplary electronic palette website generated by the server of  FIG. 2 , where due to size constraints it is noted that  FIG. 5  begins at  FIG. 5A  and continues on a separate sheet at  FIG. 5B , while  FIG. 6A  begins at FIG.  6 AA and continues on a separate sheet at FIG.  6 AB, while  FIG. 6B  begins at FIG.  6 BA and continues on a separate sheet at FIG.  6 BB while  FIG. 6C  be ins at FIG.  6 CA and continues on a separate sheet at FIG.  6 CB, while  FIG. 6D  begins at FIG.  6 DA and continues on a separate sheet at FIG.  6 DB, while  FIG. 6E  begins at FIG.  6 EA and continues on a separate sheet at FIG.  6 EB, while  FIG. 6F  begins at FIG.  6 FA and continues on a separate sheet at FIG.  6 FB, while  FIG. 6G  begins at FIG.  6 GA and continues on a separate sheet at  FIG. 6  GB. 
         FIG. 7  depicts an electronic palette generated by the server of  FIG. 2 . 
         FIG. 8  is an order samples webpage of the exemplary electronic palette website generated by the server of  FIG. 2 . 
     
    
    
     DETAILED DESCRIPTION 
     Before any embodiments of the invention are explained in detail, it is to be understood that the invention is not limited in its application to the details of construction and the arrangement of components set forth in the following description or illustrated in the following drawings. The invention is capable of other embodiments and of being practiced or of being carried out in various ways and by various industries. 
     The systems shown in the figures are models of what actual systems might be like. It should also be noted that a plurality of hardware and software based devices, as well as a plurality of different structural components, may be utilized to implement the invention. Many of the modules and logical structures described are capable of being implemented in software executed by a microprocessor or a similar device or being implemented in hardware using a variety of components. As described in subsequent paragraphs, the specific configurations illustrated in the drawings are intended to exemplify embodiments of the invention, and other alternative configurations are possible. Furthermore, throughout the specification capitalized terms are used. Such terms are used to conform to common practices and to help correlate the description with the coding examples, equations, and/or drawings. However, no specific meaning is implied or should be inferred simply due to the use of capitalization. 
       FIG. 1  depicts an electronic palette generation system  10  including a user interface  15 , the Internet  20 , and an e-palette server  25 . The server  25  is coupled to databases  30  and, in some embodiments, to a guest database  35 . The server  25  includes an Electronic Control Unit (ECU)  26  that controls the operation of the server  25  and the system  10 . In some systems, the components of  FIG. 1  are coupled via one or more networks, such as a local area network, wide area network, cellular network, and/or other types of networks, in addition to or in place of the Internet  20 . 
     The user interface  15  can be a computer, a personal digital assistant (“PDA”), a tablet computer, a telephone, or any other device that allows a user  40  to connect to the server  25  via the Internet  20  or any other communication network. The user interface  15  includes a controller  16  (e.g., a processor of a computer) that communicates with the ECU  26  of the server  25  and with other user interfaces. Several types of users  40  can access the server  25 . In some embodiments, the users  40  include a designer (that generally uses the system  10  to create a palette  45 ), a product manufacturer, manufacturer rep or vendor (that provides products to be included in the palette  45 ), and a system administrator (that supports the server  25  and the system  10 ). As explained in further details below, a designer user can include an interior designer, an architect, a student, or any other type of designer user. 
     At a high-level, one method of operation of the system  10  includes a product manufacturer at a user interface  15  inputting information about product sold by that manufacturer (i.e., various products to be included in a palette) to the server  25  via a web browser  50  and the Internet  20 . A designer user uses a different user interface  15  to connect to the server  25  via a web browser  50 , to access at least one of the databases  30 , to search for and sort various products offered by different manufacturers, and to create an e-palette  45  that includes the provided palette information (e.g., various design products). A designer user can save the created palette  45  (see  FIG. 7 ), can request a sample of all products for one or more palettes  45 , and can download a specification sheet for every product included in the e-palette  45  or create a project binder  190  that could include the following documents; cover page  191 , index  192 , product page  193 , specification sheet  194 , installation sheet  195 , maintenance sheet  196 , warranty sheet  197 , material safety data sheet  98  for all products included in the e-palette (see  FIG. 9 ). In addition, the created e-palette  45  can be sent to the user computer  15  (e.g., via email or social media) or downloaded to the user computer  15  and locally saved on the computer. 
       FIG. 2  depicts the server  25  and databases  30  in more detail. The ECU  26  of the server  25  includes various modules  56  that control the operation of the server  25  and the system  10 . The ECU  26  is a microcontroller that includes (or is connected to) memory (not shown) such as RAM and ROM and executes software that can be stored in the RAM (particularly during execution), the ROM (on a generally permanent basis), or another non-transitory computer readable medium, such as other memory or a disc. If necessary, the microcontroller can be connected to such memory or a disc drive to read such software. The ECU  26  may be implemented as a microprocessor or other programmable device (e.g., a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or the like) with suitable memory and I/O devices. The modules  56  are created in any suitable software development language and on any type of platform by using the system&#39;s proprietary application program interface. Examples of suitable software languages include, but are not limited to, Visual Basic, Java, Adobe Flex, Adobe Flash, and HTML. Examples of platforms include, but are not limited to, Windows™, UNIX™, Linux™, and Google™. 
     In one embodiment, the server  25  includes a webpage module  60 , filtering module  65 , palette generating module  70 , user information module  75 , communication module  80 , and payment module  86 . In some embodiments, one or more of the modules or a portion thereof are located on a third party server  87 . In other embodiments, the server  25  can include more or less modules. 
     The webpage module  60  generates webpage data for output to the web browser  50 . For instance, the web browser  50  receives webpage data generated by webpage module  60  and displays the webpage data on a user interface  15 . In some implementations, a portion of the webpage data is stored locally at user interface  15  from previous webpage data transfers and, therefore, an updated portion of webpage data is sent from server  25  to complement or overwrite the webpage data already stored on the user interface  15 . Generally, at least a portion of the webpage data is generated “on-the-fly” after a user request. For instance, the webpage data may be customized to a particular user and/or date before being output to the web browser  50 . 
     The filtering module  65  filters the different products included in the databases  30  based on a specific user input. In some systems, the user inputs specific filtering characteristics (e.g., job size (square feet), type of use (commercial/residential), budget, primary color, carpet backing, etc.) into a filter in order to generate results directed towards a specific project. The filtering module  65  filters the data stored into the databases  30  based on the directed input and displays products that fall within or satisfy the selected criteria. From the filtered product results, the user selects specific products and the system generates one or more e-palettes  45  for a particular project. 
     The user information module  75  collects, analyzes, verifies, and stores user information. For instance, user information module  75  is operable to store user login and password information, as well as account information, in the user information database  95 . The user information module  75  compares user-entered login and password information from the web browser  50  with the stored information to verify the identity of a user at user interface  15 . The user information module  75  is also operable to store user-entered preferences and to analyze user selection information. Through analysis of multiple palettes created by a particular user, the user information module  75  identifies selection trends of the user to generate selection suggestions. For instance, if a user  40  orders a sample product from a specific manufacturer, the user information module  75  is operable to store the manufacturer name and/or the product characteristics thereof, and later cause the server  25  to suggest another product of the same manufacturer or similar to the previously ordered product. 
     The communication module  80  allows users to communicate with other users in the system  10 . Users can send messages to other users and can also communicate with nonusers, for example, to send a referral to a nonuser to join the system  10 . The communication module  80  further allows manufacturer users to upload their products on the products database  100  located on the server  25 . In addition, the communication module  80  allows the system administrator to communicate with all other users (e.g., to confirm registration, send requested data, etc.). In another embodiment, users can interact directly with other users via communication module  80 . For example, users can use the system as a forum, ask questions, share ideas, news or comments regarding content, products, or created e-palettes. 
     The payment module  86  is configured to process users&#39; payments. For instance, the payment module  86  receives user payment information (e.g., credit card information) entered by the user via web browser  50 . In some embodiments, users pay a monthly subscription to the owner of the e-palette generation system  10 . In addition, some users (e.g., student users) can use the system  10  free of charge. The payment module  86  interacts with the third party server  87  (e.g., a credit card company server) to complete the transaction. For example, the payment module  86  is configured to operate in connection with an existing payment processing system (e.g., PayPal™, Google Checkout™, etc.) that processes payments from a user. Thereafter, a confirmation is sent to the web browser  50  to indicate to the user that the transaction completed. In addition, the payment module  86  is configured to automatically process the user&#39;s monthly subscription to the system  10 . 
     The databases  30  include the e-palette database  90 , user information database  95 , a products database  100 , palette libraries database  105 , mailing list database  120 , and orders database  121 . The databases  30  are coupled to the server  25  via a data link. In some systems the data link is a direct wired or wireless coupling. In other embodiments, the data link is a local network connection, which can include wired and wireless connections. In still other systems, the server  25  is connected to the databases  30  using a non-local network, such as a wide area network, a cellular network, or the Internet  20  (an embodiment not depicted in  FIG. 1 ). This embodiment may also include local network connections between the server  25  and databases  30 . Each of the databases within databases  30  includes an addressable memory, such as a hard disc or other medium able to store and retrieve digital information. In some embodiments, all or a portion of the databases within databases  30  are stored in a single memory device. The databases  30  also include software for storing received data, searching stored data, receiving data requests, retrieving the requested data, and outputting the data to the requester or other appropriate recipient. 
     In some embodiments, some or all of the databases  30  are integrated with the server  25 . In other embodiments, individual databases within databases  30  are divided into multiple sub-databases that may be located in different locations and coupled together or to the server  25  using various networks and devices. In some implementations, the server  25  is one or more of an Xserve server offered by Apple, a PowerEdge server offered by Dell, a System x or BladeCenter server offered by IBM, Blade server offered by Oracle, or the like. In some implementations, the databases  30  are maintained by database software such as Microsoft SQL Server, Oracle Database, IBM DB2, or the like. 
     The e-palette database  90  includes e-palette templates that are used to form e-palettes by the e-palette generating module  70 . The e-palette templates may include multiple choices for each customizable element and multiple combinations of elements. For example, one e-palette template includes the following elements/products: 2-3 carpet options (main carpet, office carpet and conference room carpet); 2-3 paint options (wall color, trim color and ceiling color); 2 plastic laminate samples for pantry/coffee/copy cabinets; 1-2 wood samples (flooring, wall panels, furniture); 1 glass sample; 1 latch-set for door hardware; 4-6 fabrics (furniture, walls, panels); 1 ceramic (bathroom or kitchen tiles); 1-2 vct samples (pantry/coffee/copy); 1 rubber sample; 1 marble or granite sample for lobbies; and 1-2 wall-covering samples. The e-palette template can include more or less elements/products. In other implementations, users are able to create their own e-palette templates and, via server  25 , store the templates in the e-palette database  90 . 
     The products database  100  includes products from various manufacturers that are used to create an e-palette  45 . Manufacturer users store their own products information within the products database  100 . For instance, a user is able to create a new product entry on the system for every new product that is to be presented on the system  10 . The user specifies the type of product (e.g., carpet, paint, etc.), captures or creates a media (e.g., photo of a product, specification sheet, etc.) using user equipment (e.g., a computer, camera, sophisticated software, etc.), then uploads the product information including the media to the products database  100 . All new products are included in a “New Products” section and need to be approved by a system administrator before they are accessible to other users. 
     The palette libraries database  105  includes e-palettes  45  that are created and saved by existing users  40 . As explained in more detail below, after a user is registered, the user  40  can create and save one or more palettes  45  on the system  10 . The user  40  can access these saved palettes at any time and delete them if he or she wishes to do so. In some embodiments, the palette libraries database  105  is indexable using a date. For instance, after a e-palette  45  is created, the e-palette  45  is saved on the palette libraries database  105  and is associated with a save and/or modified date. A user  40  can later access the system  10  and can view and sort his exiting palettes by the date characteristics associated with the palettes. 
     In some embodiments, e-palette database  90 , products database  100 , and palette libraries database  105  also store usage data related to other databases such as the quantity and/or frequency of previews of a product or e-palette template. This usage data is stored in a separate usage database (not shown), or within each respective database, or a combination thereof. Additionally, in some embodiments, the e-palette database  90 , products database  100 , and palette libraries database  105  store text such as tag or description data. The tag or description data provides additional text data for use in searching the databases. 
     As shown in  FIG. 3 , the user information database  95  includes three sub-databases: user account general information database  95   a , user account preferences database  95   b , and user suggestion list  95   c . Although the databases  95   a - c  are depicted as separate, in some embodiments, one or more of the sub-databases  95   a - c  are combined into a single database. In other embodiments, databases  95   a - c  are divided into more databases. 
     User account general information database  95   a  includes a user name, user login, user password, user payment information (e.g., credit card information), and user account type information (e.g., designer, manufacturer, etc.). The server  25 , and in particular, the user information module  75 , verifies user login and password information using the user account general information database  95   a . The user account general information database  95   a  further stores user address, email address, phone number, and/or fax number that every user is required to input when creating an account. The user account type information includes the information about the type of user  40 : designer user (that includes commercial or residential architect or designer), manufacturer user, student user, and any other type of user. Generally, a user  40  provides this information when registering for the first time with the system  10 . A user  40  can update and/or change information by using the user interface  15  and that change will be saved in the user account general information database  95   a.    
     The user account preferences database  95   b  stores information about the types of products in which the user is interested. In some embodiments, the user account preferences database  95   b  includes data from the libraries created by each user. In other embodiments of the invention, additional user preferences are stored. For example, the type of manufacturer is included. In some implementations, the user account preferences database  95   b  is populated by the user, via the user information module  75  based on past viewed and/or selected products, browsing records, or other methods, or a combination thereof. 
     The data stored within the user suggestions list  95   c  includes one or more of e-palettes, products, and manufacturers associated with previous user activity on the website or user information otherwise obtained. Some information stored within the user suggestions list  95   c  may overlap or closely relate with information stored in user account preferences database  95   b . Based on a user&#39;s prior selection of a product including, e.g., beige carpet X by company ABC, carpets Y and Z also by company ABC would be added to the user suggestions list  95   c  for suggestion during future e-palette creation by the same user. Suggested e-palette templates and manufacturers are similarly added to the user suggestions list  95   c  based on their inclusion within or similarity to a user&#39;s earlier website browsing or e-palette. 
     In some implementations, the server  25  generates emails for a particular user based on the information within the user suggestions list  95   c . For instance, if a new product created by company ABC is uploaded by ABC to the server  25 , the server is operable to generate and send an email or text message to another user informing that user of this information. Additionally, links to additional information, more products by this manufacturer, and/or a link to the manufacturer&#39;s website may be provided within the email. In some implementations, the product manufacturer pays a fee for such an informational email to be sent to one or more users that are associated with the manufacturer via the user suggestions list  95   c.    
     The mailing list database  120  includes website-maintained address lists  125 . The address lists  125  include at least one of email addresses and physical mailing addresses. In one implementation, the website maintained address lists  125  include address lists stored in the mailing list database  120  by website authorized personnel, such as the system administrator. In other implementations, the website maintained address lists  125  include one or more lists of addresses that are provided by users when they register to the website. These lists with addresses are used by the system  10  to inform a manufacturer where to ship a requested product sample. For example, after a user creates a palette  45  and requests a sample of the products in the palette, the system  10  sends a sample delivery request to each manufacturer. The sample delivery request includes information about the product and the shipping address of the requesting party. In addition, the address lists stored in the mailing list database  120  are used to send invoices to manufacturers. 
     In another embodiment, when a user  40  saves a product, the manufacturer is notified that someone has viewed and saved one of their products. If the manufacturer wants to receive details about who saved their products and perhaps pays a particular fee, the manufacturer receives an email from the system with the information about the user that saved their product. The transaction is handled by the payment module  86  similar to other e-palette transactions. 
       FIG. 4  depicts a method of generating an e-palette according to embodiments of the invention. In step  200 , the user  40  connects to the server  25 . In one instance, the server  25 , in particular, the webpage module  60  generates webpage data for display in a web browser  50 . The webpage data is sent to the user&#39;s web browser, for instance, over the Internet  20 . Once received, the webpage data is displayed in the web browser  50 , and at step  205 , an exemplary home page ( FIG. 5 ) is displayed in the web browser  50  based on the webpage data generated. In step  205 , a user  40  creates an account or logs in into an existing account. To search products, create e-palettes, and order samples of products, a user  40  must be registered with the website. In some embodiments, a visiting user is able to search and view products but he will not be able to create an e-palette or request product samples unless he or she is registered. 
     In step  210 , the user inputs information via the user interface  15  to the server  25 . The user interacts with the server  25  via the web browser  50  and the server responds to the user-entered information and outputs updated webpage data accordingly. The information entered by the user  40  may include selection information (e.g., selection of an e-palette template), commands (e.g., search products, generate e-palette), and/or user information (e.g., login, password, or information for user information database  95 ). This interaction between the user, user interface  15 , and server  25  is commonly referred to as “browsing.” Browsing the e-palette website refers to the webpage data collectively generated, stored, and output by the server  25 . Browsing includes, among other things, logging into the website, creating e-palettes, browsing e-palettes, browsing products, and browsing manufacturers. Steps  200  and  210  are repeated during this browsing period until, in step  215 , the server  25  receives the information necessary to generate an e-palette. 
     In step  220 , the server  25 , in particular, the e-palette generating module  70 , generates an e-palette  45  based on the user information entered. After the e-palette is generated, depending on the embodiment of the invention and the particular e-palette generated, the user  40  may request a sample of every product in the created e-palette (step  223 ). In that embodiment, a product manufacturer may be charged a fee for every sample product ordered through the website. The server  25 , in particular, the payment module  86 , carries out the purchase transaction. In an alternative embodiment, a user  40  can download or receive a specification sheet (e.g., a PDF file) for every product on the created e-palette. Thus, in step  230 , a PDF file including the product&#39;s specification sheets is sent by the server  25  to one of the recipient interfaces  15  or the user&#39;s email on file. In yet another embodiment, in step  235 , the user  40  can save his or her e-palette and product selections (e.g., into the user&#39;s libraries) without requesting samples and/or specifications sheets. 
     As mentioned above,  FIG. 5  depicts web browser  50  with one exemplary layout of the e-palette website homepage  300 . The homepage  300  includes an information section  305  (i.e., used to explain the general idea of the website), new products section  310 , products categories section  315 , and a partner&#39;s logos section  320  (e.g., sponsoring partners). Further, the homepage  300  includes a login/join section  325 , a forum section  330 , and a toolbar section  335 . In some implementations, after a user  40  logs on to the website using login section  325 , which interacts with the server  25  to verify the user&#39;s identity as described above, the components of the website are updated with customized webpage data. In some implementations, cookies stored on the user interface  15  from a previous webpage visit are automatically used by the server  25  to verify the user&#39;s identity without requiring login actions. In other implementations, a user is also able to browse without logging on to the website. 
     In one embodiment, a user chooses a browsing option by selecting one of the following buttons in the toolbar section  335 : my palettes  340 , products  345 , community palettes  350 , my libraries  351 , search  352 , how it works  355 , and social  356 . In alternative embodiments, the toolbar section  335  can include more or less buttons. If a user selects the search button  352 , the user will interact with the e-palette website to view various products by different manufacturers.  FIGS. 7   a - g  illustrate a portion of the various webpages used to search products in the website and to create an e-palette. 
     The user can search or view the different types of products offered on the website by clicking on the products tab  345 .  FIG. 6   a  illustrates an exemplary webpage that includes a products window  369  representing the different groups of products  370  (e.g., flooring, tiling, hardware, metals, wall finishing etc.), a new products window  371 , and a product categories window  372 . Some of these categories of product include various subcategories (e.g., tiling—ceramic, porcelain, mosaic etc.; fabric—cloth, leather, panel fabric, etc.). The user can simply click on the desired product group  370  in order to view the selection of products. The products are stored in the products database  100 . Additionally, as shown on  FIG. 6   b , the user can view a specific product and narrow a selected product group  370  by using the product type, manufacturer, price color, or application. Registered manufacturers can access the server  25 , upload new products, and update the information on existing products. The manufacturers provide specific information (e.g., product data, specification sheet, etc.) and photos of each new product and receive a confirmation email from the system when a product image or information is uploaded to the products database  100  and is ready to be viewed by users  40 . Most likely, each product group  375  will include large selection of products (e.g., 100-1000). Therefore, a user  40  will utilize the search button  352  to display a search page ( FIG. 6   c ) in order to search various products by different manufacturers. 
     As shown in  FIG. 6   c , the search page allows a user  40  to browse, search, and view or preview specific products stored in the products database  100 . For that reason the search page includes a product search window  380  and a product display window  395 . In some implementations, the user inputs the product information in a product drop-down menu  385  (e.g., flooring) and specifies the specific product sub-category in the product category menu  386  (e.g., hardwood). In addition, the user can select a specific manufacturer from the manufacturer menu  387 , price or price range for the product from the product price menu  388 , product color from the color menu  389 , and application (e.g., commercial, residential, etc.) from the application menu  390 . In some implementations, the searchable data (e.g., products) are associated with keywords in their respective databases. 
     After entering the desired search criteria, the user commences the search by selecting the search button  39 . The web browser  50  sends the search request to the server  25 , which ensures that the search request is in the proper format, and forwards the request to the databases  30 . The databases  30  receive the search request. In particular, the filtering module  65  searches the products database  100  based on the entered search criteria. The database  100  returns the results back to the server  25 , which ensures that the results are in the proper format, and forwards the data to the web browser  50 . The results from the search are displayed in the product display window  395 . Upon selection of a particular product, the display window  395  provides a preview to the user of the selected product. If a user already has an e-palette  45 , the user can add a product from the product display window  395  to that e-palette  45 . 
     In addition, a product can be viewed by opening a new webpage.  FIG. 6   d  shows product detail page  410  that includes a product image  415  and a product information window  420 . The product detail webpage  410  can also include a “more items” window  419  that shows similar products from the same manufacturer. Further, a user can add one or more products to a user&#39;s library  400 . For example, a user can create different libraries  400  for the different projects and product groups  375 . In these libraries, the user can add e-palettes and products that he or she likes and wants to use in the future. The user  40  can delete a library or products within the library at any time. 
     In one embodiment, a user can view and select from thousands of existing palettes saved in the e-palette database  90 . A user can access the saved existing palette templates by clicking on the “community pallets” tab  350 . As shown in  FIG. 6   e , the community palettes page includes a palette search window  421  and a palette display window  422 . The palette search window  421  includes search menus  385 - 390  similar to the product search window  380 . After the system  10  sorts the community palettes by using the filtering module  65 , the user can view the community palettes in the palette display window  395 . The user can select any of the exiting palettes and modify it according the specific needs of his or her projects. In some embodiments, the community palettes also include e-palettes that are created by other users and are publicly available. 
     In order to view saved palettes or to create a new palette, the user clicks the “my palettes” button  340 . On the “my palettes” page  405  (see  FIG. 6   f ), the user can see any previously created and saved palettes that are located in the palette libraries database  105 . The user can open every palette, view the products in the palette, and add or remove products in the palette. Further, from the “my palettes” page, the user can delete existing palettes, or duplicate palettes and save them under a new name. In addition, the user can create a new palette  45 . After clicking on the “create new palette” button  425  from the “my palettes” page  405 , a new palette window  430  opens up. As shown in  FIG. 6   g , the user enters the required information in the following fields: title  431 , type of project  432 , budget  433 , description,  434 , primary color  435 , secondary color  436 , and tags  437 . The user can specify whether the palette  45  is public or private. 
     In one embodiment, after inputting the palette information, the user is presented with e-palette template options. Based on the inputted palette information, the server  25  generates a list of suggested e-palette template options. The server  25  generates the list by using the received palette information to access the e-palette database  90 . For example, the suggested list of e-palette templates can be displayed in the webpage or included in a drop-down menu. In some implementations, the webpage includes an e-palette preview window. When an e-palette template is selected from the user, a preview of the e-palette template is generated by the server  25  and displayed in the e-palette preview window. A user  40  may select an e-palette template and proceed to customization options by selecting a customize button. 
     The e-palette generating module  70  generates e-palettes for saving into the user&#39;s libraries or providing to a user computer  15 . The e-palette generating module  70  receives the components to build an e-palette based on user selections via the e-palette website as described above, for instance, with respect to  FIGS. 6 and 7   a - g . A portion of the data received includes an e-palette template from the e-palette database  90 . In some implementations, the template specifies the product groups  370  of the e-palette (e.g., flooring, fabric, hardware etc.), the specific products (carpet, laminate, cloth, leather), and the number of products for each product group (two carpets options, three fabric options, one glass option, etc.). In other implementations, the palette template includes only the product groups and a user  40  is able to modify the specific products, number of products, and other characteristics of the e-palette. The specific product associated with the e-palette template are sent from the products database  100  to the e-palette generating module  70 , either by a specific request from the e-palette generating module  70  or automatically by the products database  100  upon selection of a template. The e-palette generating module  70  also receives recipient information and user specified details, such as palette title, type of project, and overriding information, sent from the user interface  15 . 
     In some implementations, the designer user can modify a created e-palette  45  (during creation or after the palette is created) by adding products that are not stored in the products database  100 . For that reason, the user uploads a product and saves it to the system  10  (e.g., in the products database  100 ). In order to upload a new product, the user must upload an image of the product and include information about the product (e.g., title, description, category, manufacturer, color, cost, etc.). 
     After receiving the information to generate the e-palette, the e-palette generating module  70  assembles the e-palette  45 . An exemplary e-palette  45  is depicted in  FIG. 7 . The e-palette  45  includes image of various products (e.g., carpet  505 , hardware,  506 , colors  507 - 508 , fabric  509 , and laminate  510 ). By using the toolbar  500 , the user can further modify the e-palette  45  by adding, changing, or deleting products. The user can also delete or duplicate the created e-palette  45 . Further, by using the palette action buttons  520 , a user  40  can view product specifications, order samples of the products, share the palette, or view project details. In addition, the user  40  can move, layer, resize, and sort the product images displayed on the browser  50  in order to modify the palette  45 . 
     Once the user is satisfied with the generated e-palette  45 , the server  25  proceeds to save and/or deliver the palette  45  as requested by the user  40 . Delivery method options include sending the e-palette  45  as an attachment (to an email address), downloading the e-palette  45  to a user computer  15 , or posting it to a social networking website. 
     Upon receipt of the e-palette  45 , a user  40  views the e-palette  45  via an e-palette reader (e.g., a web browser, specific email application, or other html interpreting device) and a display (e.g., a monitor). The user  40  is also able to save the attached e-palette in a local memory of the user&#39;s receiving device, e.g., a hard drive of the user&#39;s computer. Thereafter, the attached e-palette  45  is operable to be opened by the user without a connection to the Internet  20 , since the file is stored on a local memory device. 
     In some embodiments, the user  40  receives an e-palette  45  on a mobile computing device, a mobile phone, tablet computer, laptop, netbooks, etc. In some embodiments, an e-palette is sent as a text message (e.g., a multimedia message (“MMS”)). 
     In one implementation, the user  40  can order samples for the products included in the created e-palette  45  from the system  10 . When the user clicks on the order samples button  525 , an “order samples” window  600  opens up. As shown in  FIG. 8 , the user  40  can select a shipping address from the drop-down menu  605  or enter a new shipping address. The user can also select the shipping method (e.g., overnight, ground, etc.). When the user hits the submit button  610 , the communication module  80  sends an email to all manufacturers of the products included in the palette  45 . The email includes information about the requested sample(s), address of the receiving party, and the specified delivery method. A record of each sample order is stored into the orders database  121  for tracking purposes, manufacturer invoicing, and reporting. Of course, the user  40  can also order product samples for individual products that are not included in the palette  45  by following a similar procedure and requesting samples from manufacturers via the e-palette website. 
     If a product sample cannot be ordered or delivered (e.g., manufacturers can restrict certain users from ordering samples), the system  10  sends an email to the user  40  including the contact information of the manufacturer. In one implementation, when the user is a manufacturer or a representative, that user will be able to only display products for the specified manufacturer that they work for. 
     Although the invention is described for use with a user interface  15  and with a web browser  50 , in some embodiments, a user interacts with the server  25  as described above using a mobile device, in-store kiosk, or other electronic device with either a web browser  50  or an e-palette software application being executed thereon. For instance, in some embodiments, a user navigates the e-palette website using a mobile computing device using either a web browser or a specific e-palette application that facilitates e-palette generation as described herein.