The present invention relates in general to data processing systems and in particular to computer inventory systems.
Kitchens within homes and/or restaurants typically include storage areas for different perishable goods, including, but not limited to, fruits, vegetables, meats, milk, flour, bread, and seasonings. Conventional inventory systems, such as computer spreadsheets, enable a user to track the amounts of various goods that are stored within a kitchen. However, it can be difficult for users of conventional inventory systems to know the condition of goods stored in a kitchen, and perishable items can expire prior to use, thereby creating waste. The replacement of expired perishable goods also increases inventory-related costs.
Disclosed are a method, system, and computer storage medium for a kitchen inventory based on expiration of goods. A spreadsheet displays a kitchen inventory that includes item names corresponding to multiple currently stored goods. The inventory also includes multiple quantities, expiration dates, remaining time values corresponding to a difference between the expiration dates and a current date, and status values corresponding to the remaining time values. If the currently stored goods change, the spreadsheet updates one or more quantities and expiration dates based on input from a user, a Radio-Frequency Identification (RFID) reading device, and/or a bar code reading device. If a user requests a recipe, the spreadsheet searches a recipe database for one or more suggested recipes that include one or more of the stored goods having expiration dates in proximity to the current date and outputs one or more suggested recipes. If a user requests a shopping list, the spreadsheet generates a list that includes needed quantities of one or more ingredients in relation to the currently stored goods.
The above as well as additional objectives, features, and advantages of the present invention will become apparent in the following detailed written description.
The invention itself, as well as a preferred mode of use, further objects, and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
The present invention provides a method, system, and computer storage medium for a kitchen inventory based on expiration of goods.
With reference now to
Computer 100 is able to communicate with server 150 via network 128 using network interface 130, which is coupled to system bus 106. Network 128 may be an external network such as the Internet, or an internal network such as a Local Area Network (LAN), an Ethernet, or a Virtual Private Network (VPN). In one embodiment, server 150 is configured similarly to computer 100.
Hard drive interface 132 is also coupled to system bus 106. Hard drive interface 132 interfaces with hard drive 134. In one embodiment, hard drive 134 populates system memory 136, which is also coupled to system bus 106. System memory 136 is defined as a lowest level of volatile memory in computer 100. This volatile memory may include additional higher levels of volatile memory (not shown), including, but not limited to, cache memory, registers, and buffers. Data that populates system memory 136 includes Operating System (OS) 138, application programs 144, kitchen inventory 137, and recipe database 139. Kitchen inventory 137 includes the quantities and expiration dates of multiple goods stored within a pre-defined area. Kitchen inventory 137 may include perishable and/or non-perishable goods. An exemplary kitchen inventory 137 is illustrated in
OS 138 includes shell 140, for providing transparent user access to resources such as application programs 144. Generally, shell 140 (as it is called in UNIX®) is a program that provides an interpreter and an interface between the user and the operating system. Shell 140 provides a system prompt, interprets commands entered by keyboard 118, mouse 120, or other user input media, and sends the interpreted command(s) to the appropriate lower levels of the operating system (e.g., kernel 142) for processing. As depicted, OS 138 also includes graphical user interface (GUI) 143 and kernel 142, which includes lower levels of functionality for OS 138. Kernel 142 provides essential services required by other parts of OS 138 and application programs 144. The services provided by kernel 142 include memory management, process and task management, disk management, and I/O device management.
Application programs 144 include browser 146 and spreadsheet 148. Browser 146 includes program modules and instructions enabling a World Wide Web (WWW) client (i.e., computer 100) to send and receive network messages to the Internet. Computer 100 may utilize HyperText Transfer Protocol (HTTP) messaging to enable communication with server 150. Spreadsheet 148 performs the functions illustrated in
Within the descriptions of the figures, similar elements are provided similar names and reference numerals as those of the previous figure(s). Where a later figure utilizes the element in a different context or with different functionality, the element is provided a different leading numeral representative of the figure number (e.g., 1xx for
With reference now to
According to the illustrative embodiment, a user of spreadsheet 148 may manually input one or more item names 215 into kitchen inventory 137. The user may input quantity 220, which corresponds to an amount of an item currently available. For each good, quantity 220 may include different units based on the type of the item and/or a commonly-acceptable method of measurement for each item. For example, quantity 220 may be a numerical count value (e.g., 6 items), a weight value (e.g., 0.5 pounds), or a volume value (e.g., 2 gallons). The user may also manually input expiration date 240 corresponding to each item. If a good is a non-perishable good, expiration date 240 may be a default value (e.g., “N/A” or a blank value). Spreadsheet 148 may automatically update time left 245 on a periodic basis by subtracting current date 235 from expiration date 240 for each item. Time left 245 may include a specific number of days (e.g., 3 days) that must elapse before a good expires. In one embodiment, time left 245 may include a general time value (e.g., more than 3 months) for one or more goods. If a good does not have an expiration date (e.g., salt), expiration date 240 and/or time left 245 may include a default placeholder value, such as “Not Applicable” (N/A). An exemplary method of updating kitchen inventory 137 is illustrated in
In an alternate embodiment, one or more items may include RFID tags. Each RFID tag may include information corresponding to the name of the item, the quantity of the item, and/or the expiration date of the item. A RFID reading device, such as RFID reader 117 (
According to the illustrative embodiment, spreadsheet 148 automatically updates status 250 for each good based on the value of time left 245 and/or quantity 220. Status 250 may include multiple pre-defined values (e.g., “Good”, “Use Soon”, “Out”, and “Expired”). Spreadsheet 148 may use one or more pre-defined time threshold values to determine when to change the value of status 150. For example, if milk will expire in more than 5 days, spreadsheet 148 may define status 150 of the milk as “Good”. However, once the milk will expire in less than 5 days, spreadsheet 148 may update status 150 to “Use Soon”. Similarly, spreadsheet 148 may change the value of status 150 if quantity 220 is above a pre-defined quantity threshold value when time left 245 approaches the pre-defined time threshold value (e.g., if 10 gallons of milk are left that will expire in 7 days). Kitchen inventory 137 may thus help prevent a user from consuming items too slowly. If quantity 220 is equal to 0, or if quantity 220 is below a user-defined threshold value, spreadsheet 148 may display time left 245 as “0” and/or display status 250 as “Out”. An exemplary method of updating kitchen inventory 137 is illustrated in
Turning now to
At block 310, spreadsheet 148 determines whether or not a user wishes to add one or more new goods and/or update one or more quantities 220 of currently stored goods. In one embodiment, spreadsheet 148 may use GUI 143 and one or more input devices coupled to I/O interface 116 (e.g., keyboard 118 and/or mouse 120 of
At block 320, spreadsheet 148 determines whether or not a user wishes to generate one or more recipes from recipe database 139 (
At block 335, spreadsheet 148 determines whether or not a user wishes to generate a shopping list that includes goods that are currently out of stock (i.e., goods with an “Out” value of status 250) and/or goods included in a suggested recipe that currently have a value of quantity 220 that is less than the required quantity for the suggested recipe. If a user does not wish to generate a shopping list, the process terminates at block 345. If a user wishes to generate a shopping list, spreadsheet 148 generates a shopping list that includes one or more goods that are currently expired, out of stock, and/or goods having quantities that are insufficient to complete a suggested recipe, as depicted in block 340. The process subsequently terminates at block 345.
The present invention thus provides a method of updating a kitchen inventory based on expiration of goods. Spreadsheet 148 (
It is understood that the use herein of specific names are for example only and not meant to imply any limitations on the invention. The invention may thus be implemented with different nomenclature/terminology and associated functionality utilized to describe the above devices/utility, etc., without limitation.
In the flow chart (
While an illustrative embodiment of the present invention has been described in the context of a fully functional computer system with installed software, those skilled in the art will appreciate that the software aspects of an illustrative embodiment of the present invention are capable of being distributed as a program product in a variety of forms, and that an illustrative embodiment of the present invention applies equally regardless of the particular type of media used to actually carry out the distribution. Examples of the types of media include recordable type media such as thumb drives, floppy disks, hard drives, CD ROMs, DVDs, and transmission type media such as digital and analog communication links.
While the invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.