free2z / zuu

Zkash User Universe
https://free2z.com
MIT License
15 stars 6 forks source link

[Feature Request] New Bar/Menu/Lists #11

Closed Edicksonjga closed 1 year ago

Edicksonjga commented 2 years ago

Improvements when reading a zPage

Barra-Progreso

zPage search improvements

Mejoras-En-El-Buscador

New zPage lists

Listas-De-zPage-Leidas-No-Leidas

As I promised before, the suggestions I post will also be added on this site, there are several features that from my point of view could bring a lot to the reading user and even to the creators who at some point are engaged in reading other zPage.

I previously posted on Twitter that it would be great to have IDs for headings and didn't post it here because something tells me it's already in the plans.

Thanks for the great work you guys are doing with Free2z!

skyl commented 2 years ago

There are potentially several issues here that might be better broken down into multiple issues. Some I like more than others.

Add a reading progress bar to tell readers how much they have read and how much they have left to read.

I'm not likely to implement this. I would just use the native browser scroll, for me on the right in desktop and mobile works well enough. This is not a make-or-break feature that would differentiate F2Z from other sites. Also, I'm hoping to get more people to start doing viewing keys and goals. So, it would be a little noisy and confusing IMO to have a goal progress and a reading progress. Like your picture has both - here 0% is read and 2% of the goal is achieved:

Screen Shot 2022-05-26 at 4 06 53 PM

I'm hoping to open-source Free2z - probably after we do the security audit - so, at that point, someone might be able to contribute this feature. I'd prefer something unobtrusive like maybe a little percentage/progress widget in the lower right instead of at the top? Also, per-user page state (how much has each user read of each page?) can be a sort of n^2 problem if we want to persist state for each user for each page.

Add a button to go to the end or the beginning of the zPage

This one of the longer pages: https://free2z.cash/zcash-crypto-world-tour - I can go to the top and bottom really fast with just the native scroll. This is another thing I could imagine accepting contributions for. But, I need to concentrate on infrastructure and security, backend, legal compliance and all sorts of fun stuff like that. So, I don't see working on this for a while, if ever. More reason to open source though so others might be able to contribute improvements like this.

Press and hold the go to home button to open a menu with options. Mark as unread Donate Share

I do like the idea of a speed-dial, perhaps once scrolled down where you could quickly get to all page actions. https://mui.com/material-ui/react-speed-dial/ - so, when you scroll to the bottom you could quickly get the donate/upvote/downvote/etc. I also like the "mark as read" idea. But, a strange point is that I guess if the page gets updated it becomes unread again? Also, this will only work for logged-in users. We won't be trying to track unauthenticated users reading status (even though we might be able to do something with localstorage). I still think these are relatively high-effort items that I won't be able to get to any time too soon.

Add list of zPage read and zPage unread. Button to switch between lists. Button to clear the list. Menu with options and reading progress bar.

I do like the idea of read versus unread and maybe a star to come back and read later. I try to use the site as much as possible and one thing is that, yes there are some pages that I have already seen and would like to kinda' hide them from my default view so I can just look at the new/unread stuff. I think read/unread could be a good vehicle for this. But, I also want to think about what it all might looks like with 1,000, 10,000 ... 1,000,000 pages ... marking things as "read" would be a drop in the bucket maybe ... I still like it though, read/unread and maybe "starred" for things that you want to come back to later (whether you have read them or not ... maybe you just want to check back on the progress or donate when you have gotten back to your wallet or sth ...).

At scale I think what might be more valuable is using time as a factor in the f2zscore ranking. So, a simple thing might be to divide by time since last updated / created. Right now the f2zscore is simply amount of donations to F2Z (times 3 if "verified"). But, I'm going to multiply more if there is a viewing key, a goal, a poll, connected social accounts, overall score of the creator ... and I will perhaps multiply by (5/numdays) where numdays is perhaps days_since_created+days_since_updated ... this way newer stuff with interactive features will rise to the top and overall creator clout will become more important. Adding the element of time will also make things more dynamic day-to-day. I think as the amount of content grows, this dynamic ranking will deliver interesting new stuff. Maybe even 100/numdays - that way something brand new gets a 100X boost over something ~3 months old πŸ€” ... I think I like that!

But, I think read/unread and starred (per-user state) could also be useful. These are relatively non-trivial problems though - the read/unread state is per-user and therefore not really cacheable and can't be returned from the main page (anonymous) page listing. Sooo, yeah, it invites a bit of an engineering problem as at scale you can imagine 1,000,000 users and 1,000,000 zPages - this is 1,000,000,000,000 possible User-zPage state rows ... OTOH I could store the user's stuff on the client but then it wouldn't follow them from one device to another ... I think I'm talking myself out of stars and read/unread status πŸ˜„ ... simplicity at the UI-level lends itself to simplicity in the backend, simplicity in the infrastructure ... still, I'll think about it. But, I want to get the core/global/anonymous features right before I invite a 1,000,000,000,000-row uncacheable table in πŸ˜„ . Stars and read/unread are a cool idea - I'll think about it; but, it won't be the top priority any time too soon. OTOH, each user only needs a few rows for what they have starred and what they have read ... so, maybe there is a place for it ... still non-trivial to mash together the public zpage state with the user-specific zpage state - especially on a listing page ...

Menu with options

I do like the idea of being able to do the page actions from the listing. I have left room for this kind of stuff - share, upvote, downvote, donate ... I think that's a yes - I'll make some more things you can see and do on the listing. Seeing your mockup with the progress bar makes me think more about the progress of the goal rather than the individual user's reading progress. The goal progress is globally cacheable and it would be cool to see what someone is asking for and how much they have raised from the listing page ... another thing that I would like to see from the listing is the number of comments a page has...

I usually work in small Kanban notes so I'm going to boil this down to a couple of those:

Listing page improvements: https://github.com/free2z/free2z/projects/1#card-82470983 f2zscore ranking improvements: https://github.com/free2z/free2z/projects/1#card-82471015 read/starred: https://github.com/free2z/free2z/projects/1#card-82471071 anchor/deeplinks to headings: https://github.com/free2z/free2z/projects/1#card-82471256 anchor links to comments: https://github.com/free2z/free2z/projects/1#card-81327112

Thanks for the feedback! I'm going to track these items on the Kanban board. But, I'll leave this open in case someone wants to pick some other stuff out of these suggestions once I open source the code.

Edicksonjga commented 2 years ago

First of all, thank you very much for your answers.

I'm not likely to implement this. I would just use the native browser scroll, for me on the right in desktop and mobile works well enough.

Wow... notice that I had not noticed what you mention and yes, when opening from the browser on the mobile or desktop we have that bar that in addition to being used to scroll also serves as a reference.

...it would be a little noisy and confusing IMO to have a goal progress and a reading progress. Like your picture has both - here 0% is read and 2% of the goal is achieved...

Yes, it can be confusing while you are at the start of the zPage, but when scrolling the Goal bar is no longer visible, also the progress bar/widget can be displayed only while scrolling, if it remains visible all the time it can distract the reader.

I'd prefer something unobtrusive like maybe a little percentage/progress widget in the lower right instead of at the top?...

In principle the design was circular with the percentage below and to the right as you mention. Ah, it is clear that I am not a designer, I just try to express some ideas graphically so that they can be understood. πŸ˜‚πŸ˜‚

image

So, I don't see working on this for a while, if ever. More reason to open source though so others might be able to contribute improvements like this.

Great, I'm sure others will help with the implementation of functions when releasing the code and of course it is important and you should focus on those features you mention, I wish you much success.

I do like the idea of a speed-dial, perhaps once scrolled down where you could quickly get to all page actions. https://mui.com/material-ui/react-speed-dial/ - so, when you scroll to the bottom you could quickly get the donate/upvote/downvote/etc.

The basis of these suggestions is to offer the reader ease of access to existing functions and others, before I was thinking of a top bar with the main options and that this is made visible with some action anywhere in the zPage, since the options within the zPage are only visible from the top of the page, but I love the idea described in the link you provide. Regarding the other aspects of the suggestion, everything in due time, from the rush only remains the tiredness and if you liked it for sure you will get the solution or someone will contribute after releasing the code.

I do like the idea of read versus unread and maybe a star to come back and read later.

image

I laugh a little at what you say because originally the design had a Favorites option, then I changed it to Pin and in the end I removed it, but I thought the Favorites option could contribute to the positioning of the zPage.

About the Mark as read options, it is an option that becomes visible only if you have viewed the zPage, hence the reading progress bar that would indicate that yes, you have viewed the zPage (although I like what you comment about making the Goal bar visible in that part), using the function sends the page to the Read list, but I understand that it can be a problem to store all this.

To conclude, thank you very much again for allowing us to leave suggestions on this site, sorry for the length of the suggestion and the answer hahahaha.

Long live Free2z and keep the improvements coming (Concentration πŸ‘πŸ½).

Edicksonjga commented 1 year ago

I'll close this one because of the three suggestions two have partially been added:

I'm sure that over time the three dot menu will get more options.

Β‘Muchas gracias! πŸ‘