Try the CheeseWiz, my homemade cheese-tracking web app

www.cheesewiz.app

In an ongoing attempt to keep my programming skills current I’ve created a cheese-tracking web app I’ve called the CheeseWiz (or CheeseWizard). It’s intended to be used to keep track of cheeses that you’ve tried and liked although if it somehow became popular I’d like to add stuff like recommendations, popular cheeses, and public lists that you can share. You don’t need to create an account to tool around but you will need to create one if you decide to make updates and keep track of your favorites. I hope you find it useful!

This is strictly a resume-boosting project and I have no plans on monetizing it; I suppose that could change if it became popular enough to out-grow the AWS server I have it parked on. I’m a back-end engineer and the UI is a bit ugly but I think it’s usable. I’ll be updating it as I learn CSS and the like. If/when I support uploading pictures new users will need to submit a verified email address but I’d probably just grandfather Dope members.

If you find any bugs or have any suggestions I’d love to hear them!

Thank you for this; I will have to set it up and try it out at home soon.

It’s a great idea, I’ve lost track of just how many cheeses I’ve tried over the decades.

Does it have a function to track cheeses by age? My range of cheddars runs from day old curds to a 30 year old specimen.

Currently no, although I’m very open to suggestions on how to do this. (I’m open to any suggestions that make CheeseWiz more usable.)

You could create a personal list of cheeses (My Lists). I plan on making lists re-orderable (the UI is done but the back-end needs implementation). You could create a list and then manually order them by age.

The problem is how do I store the age of the cheeses in a way that’s sortable? Ages can be in months or years and have ranges (I’m not telling you anything you don’t already know; just laying out the problem). “3-5 months”, “ten months”, and “2 years” are valid ages; how do I write an algorithm to sort them?

I’ll have to think about it; one possibility is to allow only numbers, “month[s]”, and “year[s]” as text and then try to parse it into months.

Or maybe you’re looking to keep track of individual cheeses? E.g. you have two wheels of cheddar from the same producer, one 5-years and one 10-years and want to keep a personal inventory. CheeseWiz doesn’t currently do that although I’m open to the possibility.

BTW, in case anyone’s wondering, Deeg did ask permission before posting this.

There’s a saying in the programming world, “Good programmers write good code. Great programmers steal good code.”. Sorting data that can be expressed as months or years, with numbers spelled out or in numerals, is a problem that comes up often in all sorts of applications, and so there are standard libraries for dealing with it.

Store all date ranges as (numeric) days, then they will sort just fine. You might have to implement a conversion routine for the data entry so months, years, quarters get stored properly, and the reverse to get them to display as desired. I can even envision a routine that converts days into months or years for large values, but weeks for small ones.

You might have to change “3-5 months” to “4 months” if you can accept that.

Qadgop, I’ve got some ideas to do what (I think) you want so if you’re willing to work with me (and likely put up with some bugs) I’ll implement it. My current thought:

CheeseWiz has the concept of a “purchase” (it’s in the DB but not in the UI). I could add something like “date of cheese” to a purchase and a flag indicating you still have the purchase. Then you could list cheeses you still own and it would be easy to sort by the date of the cheese.

A word to the wise: as obvious a name as that is for the app, if this project gets even slightly beyond the stage of sharing with a few random Dopers, you might get an unwelcome letter from lawyers for Kraft Foods.

Perhaps us Dopers could help you come up with a clever and less infringing name.

The Kraft product is spelled ‘Cheez Wiz’,
I think if the OP sticks with ‘CheeseWizard’ he’ll be fine.

IANAL, just my opinion.

I guarantee you that an IP lawyer would not agree.

Ok. I’m sure you know more than me. I was just thinking aloud.

IANAL, either, but as a publisher and holder of copyrights and trademarks, I’ve had enough experience with IP issues (including a situation in which I agreed to drop a trademarked name) to know that CheeseWiz or CheeseWizard are probably close enough to Cheez Whiz to raise concerns.

Trademarks give the owner exclusive rights to the names, logos, and other signs (all known as “marks”) of a company and/or its products. Infringement does not merely consist of using exactly the same mark, but of using marks that are similar enough that they might cause confusion in the minds of the public. Different companies can hold the same mark if they are in completely different businesses, such that confusion between the brands would be unlikely.

So Deeg might be able to argue that because his product (a computer app) is not generally in the same area of business as Cheez Whiz (a food product), it does not infringe. However, Kraft could counter that it does, because the app deals with cheese (its business), and Kraft is also in the app business.

I could be wrong, and Deeg is free to consult an actual attorney. I just thought an early warning was in order.

Thanks Comma; if I ever decide to make money off it I’ll consider changing it.

I’ve updated the app to keep track and manage cheese purchases, which can be sorted by age. The UI is clunky but I think it’s reasonable for now.

I’ve updated to the latest Ionic/Angular versions and now the slider on the cheese detail page has issues. Le sigh. Trying to keep up with all the latest versions of node, npm, Angular, TypeScript, webpack, etc. is madness.

I suspect that an app-maker like Deeg would probably win in court, if it ever came to that. But the legal fees and such would likely bankrupt you long before that.

Next thing to add is a recommendation feature. If you liked X you will like Y, Z and M. Of course you’ll need user input from that, but **QtM **can probably give you a ton of input :slight_smile:

If I ever get enough ratings I’d like to try it. Creating a recommendation algorithm would be interesting. It does open me up to emails like “You dumb-ass! Your app recommended cheese and I hate X!” Something to look forward to!

I know some of you are from Wisconsin and I don’t have a lot of cheeses in the DB from there. If someone can point me to a web site of public domain information with Wisconsin cheeses I could look into writing a crawler to import them. I did that with vtcheese.com.