# Personal Grocery Manager Designed & Developed by Edison Ling (from Toronto, Canada) Dec/2020 ![](intro.png) ## Introduction This application is inspired by my mother's weekly grocery shopping chores. She has a list of all the household consumeable items in condensed format. She checks the stock the day before grocery shopping and marks on the paper for the items that need resupply. Whenever someone used up the last piece of an item, we were told to mark on the grocery shopping sheet. On shopping day, she would bring the grocery sheets and purchase the required items by store. This web based application is to automate this process. ![](shoplist.png) This web application will be using HTML, CSS, Javacript, Python and SQL programming lanaguages. Using the CS50 finance web application as a starting point, this project will provide a computerized solution with ease of use. ## Feature * Maintain a list of grocery stores * Maintain a list of grocery categories (For better item grouping: eg. meat, vegetable, snacks, cooking, baking, etc.) * Maintain a list of Unit-of-Measure for the grocery items * Maintain grocery items and shopping list * Display grocery shopping list by store * Generate a condensed shopping list by store and category in printable format ## Welcome to Personal Grocery Manager Upon starting the Personal Grocery Manager application, you will be prompted with below login screen. ![Login screen](login.png) If you are a new user, you need to register with a new user name and password as shown below. ![](register.png) After sucessfully register you new user name, you are automatically logged in and ready to use the application. You may change your password any time by clicking the menu. ![](password.png) ## Shopping Cart Once you have sucessfully logged in, you are presented with set of menu selections and current shopping cart content. If you have not entered any shopping data, you will see an empty cart. Otherwise, you will see all the items which you have entered buy quantity. ![](cartEmpty.png) ![](cart.png) You can click on the icon to display the shopping cart in a condensed printable format in a new tab, which can easily be printed using your browser's print function. ![](cartPrint.png) ## Maintain Key Information To reduce duplication of data entry, some of the commonly used key information such as Stores, Item Categories and Item Unit-of-Measure are stored seperately. They should be setup before you enter items information. You need to setup all stores using Store function. The stores can be accessed via a pick list during Item entry. Click button after you made all the changes. ![](store.png) You need to setup all item categories using Category function. The categories can be accessed via a pick list during Item entry. Click button after you made all the changes. ![](category.png) You need to setup all item Unit-of-Measure such as KG, LB, Pack, Each, etc. by using UOM function. The UOM can be accessed via a pick list during Item entry. Click button after you made all the changes. ![Unit-of-Measure](uom.png) ## Item/Product Entry & Update All items that's part of shopping chore should be entered and updated using Item function. For each item, following information are entered and stored: * Item Description: A short description of the product/item. * Category: The category this item belongs to. eg. Meat, Vegetable, etc. * Store: The primary store for this item. * Store2: The secondary store for this item. * Price: The current price of the item. * Q/Min: Mininum quantity of the item should be kept at all times. * Q/Max: Maximum quantity of the item should be kept. * Stock: Quantity of item already in stock. * Buy: Quantity of item need to purchase. * UOM: Unit of measure of the item. ![](item.png) During item entry, you can click the pick list symbol on store field and pick the required store. ![](itemStore.png) During item entry, you can click the pick list symbol on alternative store field and pick the required store. ![](itemStore2.png) During item entry, you can click the pick list symbol on category field and pick the required category. ![](itemCategory.png) During item entry, you can click the pick list symbol on Unit-of-Measure field and pick the required UOM. ![](itemUOM.png) Click button to store the updated data after you have made all the changes. After grocery shopping chore is done, you can use function to prepare the database for the next shopping trip. The function is accessed by scroll down the item entry window. ![](itemReset.png) That's all. Happy computing and shopping!