apc-mhs / mustang-mug

The website, backend, and dashboard for the Mustang Mug Cafe
https://mug.apc-mhs.com
1 stars 0 forks source link

Refine menu items in Firestore #39

Closed AndrewLester closed 3 years ago

AndrewLester commented 3 years ago

Add all the menu items in the menu.txt to the items collection in firebase. Use the format given by the existing item ("Mustang Brew").

Further, we should look at this article and other sources to try and minimize our Firestore reads, especially since the menu item data is not likely to change on the daily.

JonathanOppenheimer commented 3 years ago

The menu has changed a lot since I last wrote menu.txt - I've since updated it and it's a lot more complicated now. The form now has a bunch of nested further options off of certain menu items -- Hot Coffee for example brings up a bunch more stuff. Hopefully, this is somewhat clear in the text file

I started some basic organization inside of the Firestore but will leave the bulk of filling out to be done after some research is done to try to optimize this.

A couple of notes: -Existing format is a new 'document' for each menu item with a 'name' field and a 'price' field which are strings and integers respectively. -Some menu items like tea have unique form branches. Not really sure how to address this in Firestore as it does not same format (no price, list in which only one option can be chosen). To try to mirror this we could do one 'document' with a bunch of different fields, but this might not be ideal. -The same sort of thought process went for other collections which are mostly empty but full enough to give you an idea of what I thought best matched the form

JonathanOppenheimer commented 3 years ago

Oh also, it's not reflected in the form but the menu is dynamically updated I believe by administrators just editing the form. Jay gave me the impression that they add new items to the form somewhat frequently (although this may have stopped as they've filled out their inventory) and items are marked as out of stock by simply editing the name to include "- OUT OF STOCK" For example on 5/13/21 some of the Lemonade options were out of stock.

You can of course still order things that are named "-OUT OF STOCK" as the form is a very good and thorough solution

A Firestore solution could be a new boolean field for each menu item named something like "available" -- this would go in hand both with actually ordering and #32

JonathanOppenheimer commented 3 years ago

Partially resolved. Things that still need to be done:

JonathanOppenheimer commented 3 years ago

Tea options are now stored in a map image

JonathanOppenheimer commented 3 years ago

Filters for each item are also stored in maps -- the spreadsheet used to generate these values is available here: https://docs.google.com/spreadsheets/d/1InzGctsj30p7wKCqgGVjR5_RQ6NoXWVfi0eBXdTgsXw/edit#gid=0

@AndrewLester I'm closing this issue - if you see fit to reopen it, feel free to do so.