Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Beta Feedback #1

Closed
NoelDeMartin opened this issue Jul 31, 2022 · 18 comments
Closed

Beta Feedback #1

NoelDeMartin opened this issue Jul 31, 2022 · 18 comments

Comments

@NoelDeMartin
Copy link
Owner

NoelDeMartin commented Jul 31, 2022

I just tagged the v0.1.0-beta.0 version, and the app is ready for production! You can start using it at umai.noeldemartin.com.

However, there are still some rough edges I'd like to polish before the initial release. I have started using it myself to manage my recipes, and it shouldn't be long before I release it for real. In part, it will depend on the feedback I get about this version. Do you think it's ready?

If you want, I encourage you to start using it and share your feedback in this issue. But I don't think it's ready for prime time, so I would refrain from sharing it with others.

Here's a list of things I'd like to do before the release:

  • UX/UI fine tunning.
  • Documentation.
  • Stable releases of related libraries (soukai, @noeldemartin/utils, etc.).
  • Publish CRDT vocab (this is ongoing at Add CRDT vocab solid/vocab#69, but seeing how that's going it's very likely that I end up using my own domain).
  • Interoperability review.
  • A11y review.
  • Improve error handling (communicate that the app doesn't work in Firefox private mode, etc.).
  • Rethink proxy mechanism (you'll see what this is if you try to import some recipes from the web).

PS: If you want to try the bleeding edge version, you can get it at umai.netlify.app.

@NoelDeMartin NoelDeMartin pinned this issue Jul 31, 2022
@Vinnl
Copy link

Vinnl commented Aug 1, 2022

Congrats on the beta release! I like the design :)

One interesting thing I already noticed is that if I use https://login.inrupt.com for my Pod, I keep getting sent back to the Identity Provider.

Additionally, when trying to create a Container in a location I choose, it does so using POST, which will fail if the parent Container does not exist yet. Which I suppose is a minor issue, yet it's the first thing I tried :)

It would be nice to be able to press Ctrl+Enter when editing a recipe to submit the form, especially when in a multi-line field like the description.

I created a recipe locally, the connected my Pod. Then in another private browsing session, I created another local recipe and connected my Pod again. Both recipes are visible, but for some reason, it now also lists "Jun's Ramen".

That's all I found in my first few minutes with it, will share more if I run into it. Nice job!

@NoelDeMartin
Copy link
Owner Author

@Vinnl Thanks for taking a look :D.

One interesting thing I already noticed is that if I use https://login.inrupt.com/ for my Pod, I keep getting sent back to the Identity Provider.

Maybe this has something to do with the default behaviour to auto reconnect automatically, and something's not working as expected. Can you try adding autoReconnect=false to the url of the app to see if that gives you some hints? You won't be logged in, but maybe you can see something that tells you what's wrong.

In any case, I'm writing this down to see if I can reproduce it myself later on.

Additionally, when trying to create a Container in a location I choose, it does so using POST, which will fail if the parent Container does not exist yet. Which I suppose is a minor issue, yet it's the first thing I tried :)

This is the first app where I'm actually letting users choose the container location, so I guess I'll be finding more issues like this. I'll see how to do it properly.

It would be nice to be able to press Ctrl+Enter when editing a recipe to submit the form, especially when in a multi-line field like the description.

I'm not sure when it's a good idea to add this type of shortcuts, because I may be messing up with some native behaviours. But I already have some similar shortcuts, and I like the idea, so I added it xD. Hopefully, if I'm breaking something someone will let me know.

By the way, you can try the latest version of the app in umai.netlify.app if you want.

I created a recipe locally, the connected my Pod. Then in another private browsing session, I created another local recipe and connected my Pod again. Both recipes are visible, but for some reason, it now also lists "Jun's Ramen".

Hm I'm not sure why it doesn't show the same recipes in both sessions, does this happen even after reload? I guess you can also try to log out and log in again, but I know that's annoying. These bugs are difficult to reproduce, but if I can reproduce it I'll take a look.

The "Jun's Ramen" recipe is probably there because you added it to your Pod using Ramen a while ago :). It was my idea that the recipe would work with this app as well, thus showcasing interoperability. But as irony has it, it's not working properly because I still have to do some things about that (instructions are not read properly because they have a different format).

@Vinnl
Copy link

Vinnl commented Aug 1, 2022

Can you try adding autoReconnect=false to the url of the app to see if that gives you some hints? You won't be logged in, but maybe you can see something that tells you what's wrong.

One thing I'm seeing is GET requests to https://id.inrupt.com/vincenttest/profile/card, which is weird, since the actual WebID should be https://id.inrupt.com/vincenttest. Possibly you're hardcoding /profile/card somewhere, or Inrupt's server is reporting the wrong WebID.

Hm I'm not sure why it doesn't show the same recipes in both sessions, does this happen even after reload?

I think they did show the same recipes, it's just that there suddenly was a third recipe. But...

The "Jun's Ramen" recipe is probably there because you added it to your Pod using Ramen a while ago

Haha, that explains it xD The perks of being an early adopter :)

@timbl
Copy link

timbl commented Aug 3, 2022

Basically a great app, in a very good place, and very nice to use.

Funny .. when I started using using it with an iPod I had just Jun's Ramen in my initial cookbook. But then when I also used a laptop chrome I found "Jun's Ramen" but also "Fish Pie" as well as the recipient I had added myself.

The import from NT Cooking seems to be very good. It missed the link to another recipe in one of the ingredients. Would have been cool to import both and link them in the cookbook.

I lost my first import because I pressed "Import from Web" and then "scan" and saw a beautiful recipe, but didn't see I had a choice of "cancel | Create Recipe". I feel I have created a recipe. Maybe label the button "cancel | Save Recipe", make the save button have a big green check mark icon? Make the whole recipe be at 66% opacity until saved?

When I follow a link to a single recipe in umai as a viewer, then I don't see a link "back to cookbook".. which is reasonable .. but should there be link in the same place to "All Tim's Cookbook" or something.

Great that you seem to be using the type index .. I see an entry for schema:Recipe .. Excellent

For me I didn't see where to to chose the location of the cookbook, I just chose to log in and use Solid, and that worked fine.

Excellent job.

@NoelDeMartin
Copy link
Owner Author

Thanks for the nice words @timbl :D

The import from NT Cooking seems to be very good. It missed the link to another recipe in one of the ingredients. Would have been cool to import both and link them in the cookbook.

Yeah linking recipes to one another is something I'd like to do eventually, but not sure when. To be honest, I don't think it's happening anytime soon, I have other priorities :/.

Adding multiple recipes at once is tricky though. In my initial approach, I supported adding multiple recipes because after you clicked the "Create Recipe" button, they were added to your POD directly. But after some tests, I realized that wasn't great because some recipes have malformed data (or names that are too long, etc.). So now, after you click the "Create Recipe" button, you get a form which you have to submit. It's more work for adding a recipe, but I think it's worth it. But then, I'm not sure how I'd approach adding multiple recipes :/. I'll think about it.

I lost my first import because I pressed "Import from Web" and then "scan" and saw a beautiful recipe, but didn't see I had a choice of "cancel | Create Recipe". I feel I have created a recipe. Maybe label the button "cancel | Save Recipe", make the save button have a big green check mark icon? Make the whole recipe be at 66% opacity until saved?

Thanks for the feedback, I'll see what I come up with to make that more clear.

When I follow a link to a single recipe in umai as a viewer, then I don't see a link "back to cookbook".. which is reasonable .. but should there be link in the same place to "All Tim's Cookbook" or something.

Yeah, the viewer is supposed to be for other people who may or may not have a POD. Something I already want to do (probably before the release), is show an "import to my cookbook" button. And I'd also like to show somthing like "recipe by Timbl", but I have to see how easy it'd be to get the webId of the owner without including it in the document itself (or maybe I should just add schema:author, but I'm not using it yet).

For me I didn't see where to to chose the location of the cookbook, I just chose to log in and use Solid, and that worked fine.

Yeah, if you already have a cookbook (meaning, a container storing recipes), it doesn't ask you to create a new one. Which makes me wonder, how come @Vinnl saw it if he also had Jun's Ramen from before 🤔.

@NoelDeMartin
Copy link
Owner Author

@Vinnl Re: login.inrupt.com

One thing I'm seeing is GET requests to https://id.inrupt.com/vincenttest/profile/card, which is weird, since the actual WebID should be https://id.inrupt.com/vincenttest. Possibly you're hardcoding /profile/card somewhere, or Inrupt's server is reporting the wrong WebID.

I've been looking into this, and it seems like id.inrupt.com webId documents don't follow the format I expected. It tries to get /profile/card because it falls back to that if what users introduced to log in is not a webId. I do that because some users may not even know what a webId is, for example for solidcommunity people may introduce username.solidcommunity.net instead of username.solidcommunity.net/profile/card. This is something we discussed in the forum, and hopefully it'll standardize at some point.

The issue with id.inrupt.com should be fixed in the next Beta release where I change my current implementation to see if a document is a webId or not.

@timbl
Copy link

timbl commented Aug 6, 2022

but should there be link in the same place to "All Tim's Cookbook" or something.

Yeah, the viewer is supposed to be for other people who may or may not have a POD.

All the more reason to have a link from each Recipe to the cookbook (not THEIR cookbook, the cookbook Recipe is in), even for people who are not logged in, for the important case when the cookbook is public.

That means you need 2 things

  • a URL for another person's view of my cookbook in the viewer.
  • A link to that from unmai view of each recipe in that cookbook

That's important for people getting benefit from Solid as a place to tel the world about their stuff. I would link to it from my home page. (I'm insisting a bit as that as the equivalent things are still missing from Media Kraken and I miss them there!)

@NoelDeMartin
Copy link
Owner Author

@timbl I see, I think I understand what you mean but I'm not sure how I'd do it in Solid at the moment.

Right now, I can share an individual recipe because I've added the ability to change the visibility from private to public of that recipe within my app. But if I try to share the link to the cookbook as well (the container with the recipes), that container will be private, right? And even if I want to change the permissions of the container in my app, I don't know a way to make a container partially public (only listing public documents, without exposing private ones).

I guess an alternative to that would be to have two cookbooks, the one with my private recipes and the one with my public recipes. But that complicates the code a lot. For example, changing a recipe from public to private wouldn't only mean changing the permissions, it'd also mean moving the document from one container to another and that means that even the url of the recipe would change (so technically it wouldn't even be the same recipe anymore).

Maybe there's a third way, and that's the one you're alluding to, which is creating lists of recipes (which are not containers, just documents pointing to other documents). This is one I've thought about, and I'd like to implement eventually. I also like it because it's more flexible than containers, for example the same recipe can be in more than one list. But I still have to explore this option, both because it complicates the UI and because I'm not sure how to make this type of data properly. I also don't like that there's no "single source of truth" anymore, if a recipe is deleted or moved, these lists need to be updated as well. And I could do it in my app, but if the documents are updated outside of my app the lists won't stay in sync.

Thanks for insisting on this, maybe I'll take another look and I can come up with something decent before the initial release.

That's important for people getting benefit from Solid as a place to tel the world about their stuff. I would link to it from my home page. (I'm insisting a bit as that as the equivalent things are still missing from Media Kraken and I miss them there!)

Yeah, this viewer feature actually came up from your suggestion in Media Kraken: NoelDeMartin/media-kraken#25

I'm doing it this app for the first time, and I'll probably add it to Media Kraken next. In Media Kraken there is already a viewer, but it's a "secret feature" because it isn't linked anywhere.

@angelo-v
Copy link

angelo-v commented Aug 10, 2022

Hi Noel, once again a very nice and good looking app.

I am facing some issues with my existing recipies.

  1. I used the http://schema.org prefix (non-http) which was not recognized. But I can change that
  2. I am organising the recipes in the "SolidOS"-way, like /cookbook/my-pasta/index.ttl, so that I have a folder per recipe where I can also put images. This is not recognized, but I am willing to change that as well and just put all the images in under /cookbook/images
  3. Listing works fine that way, but I am getting errors when trying to edit an existing recipe:
    at Proxy.<anonymous> (https://umai.noeldemartin.com/assets/main.57eb3d27.js:105:22458)
    at tryCatch (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.20b0d252.js:4:823)
    at Generator.invoke [as _invoke] (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.20b0d252.js:4:3070)
    at Generator.next (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.20b0d252.js:4:1445)
    at asyncGeneratorStep (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.20b0d252.js:5:13881)
    at _next (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.20b0d252.js:5:14106)

I guess this is due to missing metadata like createdAt. Would help if umai would work without them or just add them when missing.

I will try to migrate all my recipes in mid-term, but stop for today.

Oh, and the error also occurs with the example ramen recipe as well. Perhaps I am having an old version of it from a former test? The instructions there are also a big plain text list that do not show up in the app.

Anyway really nice work. It is a beta of course and I expect such things to happen, especially with my hand-crafted and web-imported data :D

@angelo-v
Copy link

One last thing: If I change the data on server side (like adding a description e.g.) it is not enough to reload the app, or force a re-sync, I have to clear site data via dev tools, reload, relogin to apply the changes

@NoelDeMartin
Copy link
Owner Author

Thanks @angelo-v for your feedback :).

I won't address all your comments one-by-one, but most of them are things I intend to work out before release (or at least take a look, if something is too difficult to support maybe I won't). That's what I refer to as "interoperability review" in the list of things to do.

The only thing I wasn't aware of is the /cookbook/my-pasta/index.ttl structure. Maybe it's as easy as reading everything inside the cookbook container, including deeply nested documents. I was assuming that everything would be a document at the root of the container.

I'll know more about this after taking a look, but my current idea is that recipes should at least show up properly. What I'm not sure about is what should happen if they are modified. Should I "fix" the format (what's the correct format anyways)? Should I respect the current format (how difficult would that be to implement)? etc.

@timea-solid
Copy link

timea-solid commented Aug 15, 2022

Hei you. Cool App you made again, I am really impressed! Some feedback:

  1. Probably you are aware it does not work on Firefox I get 'Uncaught (in promise) DOMException: A mutation operation was attempted on a database that did not allow mutations. main.57eb3d27.js:208:17608'
  2. On the 'Create your cookbook' you have the text 'In order to store recipes in your Solid POD, we need to create a container.' I would prefer to not have the word 'container' confuse me -> maybe just stick with Cookbook.
  3. I love how you let the user select the location where to create the container (maybe in this setting you can say 'Container'
  4. I love the 'What does this mean?' sections! 😍
  5. Each recipe layout looks great! (it worked perfect for me)

@NoelDeMartin
Copy link
Owner Author

Thanks @timea-solid for your feedback :D

Probably you are aware it does not work on Firefox

Yeah, you're probably using private mode which doesn't support IndexedDB :/ I have to show a better error message (as I already do in Media Kraken). This issue comes up often enough that I'm wondering if I should try to make it work with localStorage or something... but I'm not sure if it's a good idea, I'll think about it.

On the 'Create your cookbook' you have the text 'In order to store recipes in your Solid POD, we need to create a container.' I would prefer to not have the word 'container' confuse me -> maybe just stick with Cookbook.

Yeah you're right, I'll try not to mention advanced terms in the basic UI :). I've changed this for now, but maybe at some point I'll do an overall review of the text.

By the way, this app is prepared to be translated to other languages (unlike Media Kraken, where texts are hard-coded). So maybe I'll translate it to a couple of languages. But I also have to think about this (how to manage translations for languages I don't speak, how to show language switcher in the UI, etc.).

@NoelDeMartin
Copy link
Owner Author

NoelDeMartin commented Aug 15, 2022

Hey everyone! Thanks for all the feedback thus far, it's been very useful :D.

I just released a new beta version (v0.1.0-beta.1) improving some things that have been mentioned in this thread:

  • As suggested by @timbl, I've finally implemented a way to see all public recipes. Keep in mind that this is not retroactive, if you already have a public recipe it won't be listed until you edit the permissions again. You can see an example of how this works with my recipes.
  • You can now import recipes to your cookbook from the viewer.
  • The app should work now with login.inrupt.com (Thanks for pointing that out @Vinnl!).
  • General UX/UI improvements.

(I still haven't worked on interoperability which would solve some of the problems that @angelo-v pointed out, but I'll definitely take a look before the initial release)

@NoelDeMartin
Copy link
Owner Author

Hello again!

I just released another version (v0.1.0-beta.2) improving a couple more things:

  • Reviewed most of @angelo-v's comments on interoperability. The only things I haven't done yet are handling http:// schema links, and detecting server-side changes.
  • Improved error handling a bit more. If you were facing some weird issues, you should get more details as to what's going on now.
  • Improved accessiblity. I'm not sure how usable the app is overall, but I've done my best to make it accessible using WAI aria roles and accessibility checkers.
  • Fixed uploading images. Turns out this didn't work in the production build, but it worked in development.

With that, I think most of the bug fixes and overall improvements I had in mind are done. Now I'll start with some housekeeping tasks like releasing stable versions of dependencies and writing documentation. Maybe I'll release another beta or two, but I think I'm very close to the first stable release.

Again, thanks everyone for the feedback thus far!

@angelo-v
Copy link

Very nice, my other recipes could now be found. I used schema:url to link to the original page of my recipes, but this link does not show up in umai. You seem to be using schema:sameAs. I am not sure which one is better. I try to not mix up recipes and webpages as one and the same, but schema.org is more relaxed about those things.

But what you definetly should not do is use a string as the object of schema:sameAs, instead use a URI (not "http:/..." but <http:/....> in turtle). Umai seems to expect a string and does not show the link when it is a URI.

@NoelDeMartin
Copy link
Owner Author

Hi there!

I've kept working on the feedback from this thread, and also added a couple more improvements (I couldn't help myself!). So unless a serious bug comes up, this version (v0.1.0-beta.2) will be the last before release.

Here's what it includes:

  • A bunch more interoperability fixes from issues raised by @angelo-v. I think now I've handled all your comments :).
  • A servings selector. It may be a bit clunky, but I think it's a good experimental feature to put out that makes the app a lot more interesting.
  • A languages selector. So far it only has the three languages I speak (English, Spanish, and Catalan), although I haven't translated the entire application yet.
  • Unlisted recipes. They will be public, but only people with the link will be able to see them (fully public recipes will link to a list with all the public recipes when viewed using Umai).
  • A settings modal with a bunch of things to configure.

Having said that, the only thing that's left now is the actual releasy stuff. Preparing documentation, releasing stable versions of the dependencies, etc.

@NoelDeMartin
Copy link
Owner Author

Finally, Umai v0.1.0 has been released! 🎉️

If you started using the beta a long time ago (thanks!), I suggest that you clear all the data from your browser storage to get a clean slate. I did fix some bugs that you may or may not have run into, but I did not apply a backwards compatible fix because I didn't consider the app stable yet.

And that's it! Feel free to share it with others now, and let me know how it helps you become a better cook. 👨‍🍳️

Thanks to everyone who participated in this thread! 🙇️

@NoelDeMartin NoelDeMartin unpinned this issue Mar 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants