Abstract:
Systems and methods for uploading documents to a document database by using an efficient drag and drop interface is provided. The drag and drop interface may include a persistent and movable drop box rendered on an operating system. The drop box may be preconfigured to interface with or access a document database to upload one or more documents. Furthermore, the drop box may be persistently available on a desktop of the operating system. For example, the drop box may be visible and accessible through any other interface, such as a web browser or email client, that may be rendered in the same pixel locations as the drop box. Accordingly, one or more objects may be dragged and dropped for upload to the document database from any other interface or from the desktop. Once the one or more objects have been dragged and dropped over the persistent doe drop element  108 , the one or more documents corresponding to the one or more objects may be uploaded to the database based at least in part on preconfigured destination locations at which to upload.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a Continuation of co-pending U.S. patent application Ser. No. 12/044,300, entitled “SYSTEM AND METHOD FOR DOCUMENT MANAGEMENT”, filed on Mar. 7, 2008, the contents of which are hereby incorporated by reference. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The invention relates to systems and methods for uploading documents to a document database by using a drag and drop interface that includes a persistent and movable drop box rendered on an operating system. 
       BACKGROUND OF THE INVENTION 
       [0003]    Organizations often have reams of data and documents that may be stored across disparate databases and other storage devices. This leads to difficulties in uploading documents because it is often a hassle to operate the various interfaces presented by these disparate databases and devices. Other problems arise when attempting to store documents retrieved from applications such as email clients or web browsers. Oftentimes a user must save documents separately, then upload the documents using the aforementioned variety of interfaces. As a result, various solutions have emerged to help track and manage file upload processes. 
         [0004]    However, conventional systems fail to give the user an easy-to-use, configurable interface that enables access to a variety of databases. For example, the user is left to save documents attached in email, for example, then upload the documents separately. Alternatively, the user must use an email client to save the document into a document database directly while navigating difficult to use user interfaces. These interfaces typically fail to provide the user insight as to where the documents should be uploaded. 
         [0005]    Conventional systems to upload documents to a document database suffer from these and other problems. 
       SUMMARY OF THE INVENTION 
       [0006]    The invention solving these and other drawbacks of conventional systems relates to a system and method for uploading one or more documents using an efficient user interface. 
         [0007]    In some implementations, the efficient user interface may provide a configurable and persistent document drop element (also sometimes referred to as a “doc drop element”) that is movable about a desktop interface of an operating system. The persistent element, which may be or include a semi-transparent icon, may be configured, for example, to interface with a document management database such that information related to the one or more documents may be relayed to the document management database. The persistent element may comprise a persistent area over which an object may be dragged and dropped such as, for example, a sticky icon, hyperlink, window, or other area. The persistent area may be persistently displayed through any other application interface that may be running on the operating system. For example, the persistent area may be continuously visible (although semi-transparent) and accessible even if a web browser, email client, or other application is running on the operating system in which the same pixel space is occupied by their respective interfaces. In other words, the persistent area remains in the foreground of the user interface. This aspect of the invention enables dragging and dropping an object, for example, from any application or from the desktop of the operating system regardless of other applications running on the operating system. The object may be an icon, for example, that represents one of the one or more documents that are to be uploaded. The drag and drop event may be detected by interfacing with the operating system to listen for, receive, and/or process events that may be relevant to the system of the invention. For example, drag and drop events using a mouse may be detected. Other events may be detected such as key entries using a keyboard, pointer device indicating an object, and/or other events. In some implementations, detection of the event may indicate a request to upload the object regardless of whether the event is a drag-and-drop, keyboard entry, pointer device, or other event. Upon receiving the event, data regarding the object may be received from the operating system and/or from the user. 
         [0008]    In some implementations, for example, if the event is a drag-and-drop, the operating system may be queried to determine the nature of the dragged and dropped object. If the object corresponds to a document, for example, the file location of the document on disk may be ascertained from the operating system. Accordingly, the document may be uploaded using the file location to retrieve the source document. In another example, if the event is the actuation of a keyboard short-key, for example, wherein an object is not specified by the keyboard short-key, then a dialog box may be provided to receive input from a user specifying the one or more documents to be uploaded. 
         [0009]    In some implementations, once the source location of the one or more documents has been identified, a dialog box may be provided to receive a document type that may be associated with the one or more documents. The document type may be an alias that serves as a name for the one or more documents. The document type may be predefined and each document type may correspond to a document description that describes the document type. For example, the one or more documents may correspond to documents related to sales data, sales agent, or any other category. Descriptions may also be preconfigured to provide any descriptive labels such as sales data time periods, particular agent data, or any other descriptive label. Furthermore, the destination location and/or the description of the destination location may be searchable to allow easy identification of the destination location. 
         [0010]    According to various implementations, the document type may be communicated to the document management database using an interface associated with the document management. Thus, in operation, for example, the one or more documents may be dragged over the persistent doc drop element for rapid document identification and subsequent upload to the document management database. 
         [0011]    Various implementations of the invention will be apparent to those skilled in the art based on the following drawings and detailed description. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0012]      FIG. 1  illustrates an exemplary system for uploading one or more documents to a database according to various implementations of the invention. 
           [0013]      FIG. 2A  illustrates an exemplary desktop interface, according to various aspects of the invention. 
           [0014]      FIG. 2B  illustrates an example of a persistent doc drop element  108  visible through an email application being displayed on a desktop interface, according to various aspects of the invention. 
           [0015]      FIG. 3  illustrates an exemplary dialog box for receiving input from a user to upload one or more documents to a document management database according to various implementations of the invention. 
           [0016]      FIG. 4  illustrates an exemplary process for user interaction with a doc drop module, according to various implementations of the invention. 
           [0017]      FIG. 5  illustrates an exemplary process for initiating an upload, according to various implementations of the invention. 
           [0018]      FIG. 6  illustrates an exemplary process for uploading one or more documents to a document management database, according to various implementations of the invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0019]    A system and method for providing an interface for uploading one or more documents to a document management database may be provided. 
         [0020]      FIG. 1  illustrates an exemplary schematic diagram of a system  100  for providing an interface to upload one or more documents  104   a - 104   n  to a database  140 . The term document may refer to any dataset such as a word processing document, an image file, a movie file, a sound file, database entry, and/or any other dataset and/or data file. Documents  104   a - 104   n  may be depicted on a desktop interface  102  in a conventional manner as would be appreciated. For example, documents  104   a - 104   n  may be depicted using an icon, textual list, image, and/or other depiction. Furthermore, as used herein, the term document may be used interchangeability with the term “document depictions.” 
         [0021]    According to various implementations of the invention, system  100  may include hardware and/or software modules, such as a doc drop module  130 . Doc drop module  130  may include one or more of the following modules: an operating system (“O/S”) interface module  110 , a drop doc generator module  112 , a user interface module  114 , listener module  116 , a login module  118 , an administrative module  120 , a database interface module  122 , and/or other modules. 
         [0022]    In some implementations, OS interface module  110  may query, interface, or otherwise interact with an operating system of computing device  150 . Interactions may include polling the operating system for resources, detecting hardware events (such as mouse-tracking), determining the file location of one or more documents, and/or other interactions. In some implementations doc drop generator module  112  may generate a persistent doc drop element  108  on desktop interface  102  in conjunction with OS interface module  110 . Doc drop generator module  112  may create a persistent doc drop element  108 , which is semi-transparent, always visible and accessible about the foreground of desktop interface  102 , and may comprise a sticky icon, hyperlink, window, or other area that is movable about desktop interface  102 . In some embodiments, the degree of transparency of persistent doc drop element  108  may be modified, configured, or otherwise varied. Doc drop generator module  112  may be implemented, for example, using any computing language that enables generation of graphical on the operating system. User Interface (UI) module  114  may generate a GUI  106  rendered on desktop interface  102 . GUI  106  may present the user with selectable options and/or otherwise enable users to input data for associated with the one or more documents that will be uploaded to the document management database and options to configure the system. In some implementations, listener module  116  may interface with OS interface module  110  to listen for, receive, and process events that may be relevant to the system. For example, listener module  116  may detect and process events such as drag and drop events using a mouse, key entries using a keyboard, and/or other events. 
         [0023]    In some implementations, login module  118  may authenticate a user accessing the system  100  according to methods well known in the art. Such methods may include, for example, use of a shared secret (e.g., a username, password, etc.), authentication based on an input/output device such as a USB device, biometric identification, and/or other authentication method. In some implementations, administrative module  120  may enable system administrative functions such as, for example, configuring system  100  to interact with particular databases, setting account information (e.g., username and passwords), defining controlled vocabularies used by system  100 , setting the transparency properties of persistent doc drop element  108 , and/or other administrative functions. In some implementations, database interface module  122  may access and/or interface with database  140  to perform database operations such as, for example, insert, retrieve, update, and/or perform other database operations. For example, database  140  may store and retrieve the controlled vocabularies using database interface module  122 . Database interface module  122  may associate persistent doc drop element  108  with a document management database. Although otherwise not illustrated, the document management database may be a third party database, may comprise database  140 , may be part of database  140 , or any other combination. Modules described herein are exemplary and that modules may interface with one another to perform a particular task. Furthermore, one or more modules may be combined and additional modules may be used as appropriate. 
         [0024]    In some implementations, doc drop module  130  may be executed on a computing device  150 . Computing device  150  may be any computing device such as, for example, a server, a desktop computer, laptop computer, personal digital assistant, smart phone, and/or any other computing device. Other configurations and system architectures may be used. For example, although not shown, computing device  150  may be or include one or more servers connected to one or more clients via a network such as a Wireless Area Network, Local Area Network, the Internet, and/or other network or combination thereof. Computing device  150  may be coupled to at least one database  140  that stores system data such as a plurality of document types and associated document descriptions, administrative information, or any other data. Database  140  may be, include, or interface to, for example, an Oracle™ relational database sold commercially by Oracle Corporation. Other databases, such as Informix™, DB2 (Database 2) or other data storage, including file-based, or query formats, platforms, or resources such as OLAP (On Line Analytical Processing), SQL (Standard Query Language), a SAN (storage area network), Microsoft Access™ or others may also be used, incorporated, or accessed. Although illustrated as being separate from computing device  150 , database  140  may be part of or hosted by computing device  150 . 
         [0025]    System  100  may also include a display  101 . Display  101  may be any display known in the art. Display  101  may display desktop interface  102 . 
         [0026]      FIG. 2A  illustrates an exemplary representation of persistent doc drop element  108  on desktop interface  102  according to various implementations of the invention. In some implementations, upon installation of doc drop module  130 , a tray icon  202  may be installed on a tray of the operating system and a shortcut icon  204  may be installed on desktop interface  102  as would be appreciated by those having ordinary skill in the art. Clicking or otherwise selecting tray icon  202  may enable access to system configurations via the administrative module  114 , as described herein elsewhere. One or more documents  104   a - 104   n  may be dragged across desktop interface  102  and dropped at or near persistent doc drop element  108  following imaginary path  203  or other path. Doing so initiates a request to upload the dragged and dropped one or more documents  104 . Persistent doc drop element  108  may be moved about desktop interface  102  following an imaginary path such as, for example, path  205   a - b , or any other path. By doing so, persistent doc drop element  108  may be placed in any location about desktop interface  102  such as, for example, locations  108   a,    108   b,    108   c,  or any other location about desktop interface  102 . 
         [0027]      FIG. 2B  illustrates an exemplary representation of persistent doc drop element  108  as seen through an email application  206  running on desktop interface  102 . Upon initializing email application  206  running on desktop interface  102 , a user interface of the email application  206  may occupy the same pixel locations as persistent doc drop element  108 . Ordinarily, a typical icon will be obscured and inaccessible without minimizing, closing, or otherwise moving the overlapping application. Furthermore, icons in toolbars of an operating system, for example, remain fixed to the toolbar. However, as illustrated in  FIG. 2B , doc drop  208  remains visible, accessible, and movable about desktop interface  102 , maintaining the same functionality as set forth above in  FIG. 2A . Thus, one or more documents displayed or embedded within email application  206 , for example, may be dragged and dropped across email application  206  and/or desktop interface  102  following, for example, imaginary path  207  or other path to persistent doc drop element  108 . In some implementations, a message thread  208  including attached one or more documents  104   a - 104   n  may be dragged and dropped across email application  206  and/or desktop interface  102  following imaginary path  209  or other path to persistent doc drop element  108 . Although described herein as a drag and drop function, any other input method to indicate a request to upload the one or more documents to the database may be used such as the use of quick keys or other hot keys, other mouse actions, and/or other input methods. 
         [0028]      FIG. 3  illustrates an exemplary GUI  106  according to various implementations. In some implementations, GUI  106  may be presented when a request to upload the one or more documents is detected. This detection may result, for example, from a drag and drop into persistent doc drop element  108 . GUI  106  may present one or more input forms to a user and GUI  106  may be implemented using any interface input format such as, for example, a hyper-text markup language form or any other interface input format. For example, if one or more documents are dropped over persistent doc drop element  108  by the user, GUI  106  may present the user with a form to enter data associated with the dropped one or more documents. In this case, because the one or more documents was dropped over persistent doc drop element  108 , a file input entry  302  may be pre-filled with information regarding the source location of the dropped one or more documents. In some implementations, a browse button  304  may be used to change the location of the dropped one or more documents. However, if the request to upload the one or more documents was not from a drag and drop event (but was, for example, the result of a keyboard shortcut key input “F2” or other action), then the user may input the location of the one or more documents using browse button  304  or otherwise provide the source location to GUI  106 . 
         [0029]    In some implementations, the user may then use destination entry  306  to enter an identifier associated with a destination location to which the one or more documents is to be uploaded. If known, the user may enter the identifier into destination entry  306 . If unknown, the user may launch a search for the identifier by clicking or otherwise selecting destination search button  308 . As used herein “button” may be any input indicator such as a form button, hyperlink, or other input indicator. In some implementations, the user may enter a description in to description entry  310 . The description may correspond to a specific destination location for the one or more documents. In some implementations, descriptions may be controlled by the administrator as a controlled vocabulary, as would be appreciated. In some implementations, the description may be entered by the user outside of a controlled vocabulary. The description may be used during searches launched by destination search button  308  to help the user identify an appropriate destination location for the one or more documents. In some implementations, the user may click or otherwise select description selector  312  to select from a list of descriptions. 
         [0030]      FIG. 4  illustrates a process  400  for uploading one or more documents to database  140  according to various implementations of the invention. The described operations may be accomplished using some or all of the system components described in detail above and, in some implementations, various operations may be performed in different sequences. In other implementations, additional operations may be performed along with some or all of the operations shown in  FIG. 4 . In yet other implementations, one or more operations may be performed simultaneously. Accordingly, the operations described are exemplary in nature and, as such, should not be viewed as limiting. 
         [0031]    In an operation  402 , an administrator may configure the system. Configurations may include system functions such as setting/changing passwords, defining destination location controlled vocabularies, associating the system with one or more databases, and/or other system functions. In an operation  404 , a user may initiate a system according to one of various implementations of the invention. After system initiation doc drop module  130  may generate persistent doc drop element  108  onto desktop interface  102  and begin listening for event inputs. As discussed elsewhere herein, event inputs may be drag and drop event inputs, keyboard shortcut key input, or any other input as would be appreciated by those skilled in the art. 
         [0032]    In an operation  406 , one or more event inputs to upload one or more documents may be received and/or detected. Once the one or more event inputs are received and/or detected, a user interface may be generated and provided to the user in an operation  408 . The location of the one or more documents to be uploaded is identified. For example, if the input is a drag and drop of the one or more documents, then the location of the one or more documents that was dragged and dropped is used. In some implementations, the user may input the location of the one or more documents to be uploaded. 
         [0033]    In an operation  410 , the location of the destination may be identified. Identification may comprise the user entering in an identifier associated with the destination location. Alternatively or additionally, the user may initiate a search to find destination locations previously used. A description of the destination location may be included. The description may be entered by the user and/or selected from a list of descriptions. 
         [0034]    In an operation  412 , the one or more documents may be uploaded to the database  140  based at least in part on the destination location. Uploading to the database may include a file copy to a file-based database, image copy of the one or more documents to a document image database, and/or other database upload technique, which are known in the art. Each of the uploaded one or more documents may be assigned a unique document identifier wherein each document identifier is associated with the destination location identifier. The association may be stored in database  140 . Accordingly, the one or more documents may be located by querying the association between the document identifier and the destination location identifier. Thus, uploading to database  140  may include datasets comprising the one or more documents, association, and/or other datasets. 
         [0035]      FIG. 5  illustrates a process  500  for preparing datasets for upload to database  140  according to various implementations of the invention. The described operations may be accomplished using some or all of the system components described in detail above and, in some implementations, various operations may be performed in different sequences. In other implementations, additional operations may be performed along with some or all of the operations shown in  FIG. 5 . In yet other implementations, one or more operations may be performed simultaneously. Accordingly, the operations described are exemplary in nature and, as such, should not be viewed as limiting. 
         [0036]    In an operation  502 , a request may be made to upload one or more documents. If in an operation  504 , the request is based on a drag and drop of the one or more documents over persistent doc drop element  108 , then process  500  may proceed to an operation  506 , wherein the one or more documents is identified based at least in part on the drag and drop. Operation  506  may also include receiving a document type associated with the one or more documents. Returning to operation  504 , if the request is not based on a drag and drop or other method that identifies the one or more documents to be uploaded, processing may proceed to an operation  516 , wherein a document search (“browse file”) is provided. When the one or more document is selected using the document search, processing may proceed to operation  506 , wherein the one or more documents is identified and the destination location is received. 
         [0037]    If in an operation  508  a document type is received, then processing may proceed to an operation  510 , wherein the document type may be validated. If valid, then process  500  may proceed to an operation  512 , wherein a description may be associated with the document type. Process  500  may then proceed to an operation  514 , wherein datasets such as the one or more documents, document type, document description and/or other datasets are conveyed to the document management database. Returning to operation  510 , if the destination location is not valid, then processing may return to an operation  506 , wherein document type is received. 
         [0038]    Returning to operation  508 , if the document type is not received, then processing may proceed to an operation  518 , wherein a document type search may be provided. If a document type is received and has been found in an operation  520 , then processing may proceed to operation  512 , wherein a document description is associated with the document type. Returning to operation  520 , if the document type has been received but not found, then processing may return to an operation  518 , wherein the document type location search may be provided. 
         [0039]      FIG. 6  illustrates a process  600  for uploading datasets to database  140  according to various implementations of the invention. The described operations may be accomplished using some or all of the system components described in detail above and, in some implementations, various operations may be performed in different sequences. In other implementations, additional operations may be performed along with some or all of the operations shown in  FIG. 6 . In yet other implementations, one or more operations may be performed simultaneously. Accordingly, the operations described are exemplary in nature and, as such, should not be viewed as limiting. 
         [0040]    Process  600  may include an operation  602 , wherein the one or more documents may be received with a destination description. In an operation  604 , a unique identifier may be assigned to each of the one or more documents. In an operation  606 , the one or more documents and destination description may be associated with a destination identifier. If in an operation  608  the datasets are to be uploaded to a new destination, then processing may proceed to an operation  610 , wherein a new destination and an identifier for that destination is generated. In an operation  612 , the datasets comprising the one or more documents, destination, destination description, and/or other datasets are associated to one another and uploaded to database  140 . It should be understood that entries comprising the associations may be uploaded to database  140  in a separate or in the same operation. Returning to operation  608 , if a new destination is not to be used, then processing may proceed to operation  612 . 
         [0041]    Although described herein as uploading datasets to database  140 , it should be understood that the invention may use and/or interface with any external database such as a third party document management database to store none, part, or all of the datasets. 
         [0042]    Implementations of the invention including any modules described herein may be made in hardware, firmware, software, or any suitable combination thereof. The invention may also be implemented as instructions stored on a machine-readable medium, which may be read and executed by one or more processors. A machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computing device). For example, a machine-readable storage medium may include read only memory, random access memory, magnetic disk storage media, optical storage media, flash memory devices, and others, and a machine-readable transmission media may include forms of propagated signals, such as carrier waves, infrared signals, digital signals, and others. Further, firmware, software, routines, or instructions may be described in the above disclosure in terms of specific exemplary aspects and implementations of the invention, and performing certain actions. However, it will be apparent that such descriptions are merely for convenience and that such actions in fact result from computing devices, processors, controllers, or other devices executing the firmware, software, routines, or instructions. 
         [0043]    Aspects and implementations may be described as including a particular feature, structure, or characteristic, but every aspect or implementation may not necessarily include the particular feature, structure, or characteristic. Further, when a particular feature, structure, or characteristic is described in connection with an aspect or implementation, it will be understood that such feature, structure, or characteristic may be included in connection with other aspects or implementations, whether or not explicitly described. Thus, various changes and modifications may be made to the provided description without departing from the scope or spirit of the invention. As such, the specification and drawings should be regarded as exemplary only, and the scope of the invention to be determined solely by the appended claims.