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

[Planning] Tag / Topic System Enhancement Project #9668

Open
9 of 15 tasks
Manasa2850 opened this issue May 25, 2021 · 13 comments
Open
9 of 15 tasks

[Planning] Tag / Topic System Enhancement Project #9668

Manasa2850 opened this issue May 25, 2021 · 13 comments

Comments

@Manasa2850
Copy link
Member

Manasa2850 commented May 25, 2021

Separate planning/checklists are kept by @Manasa2850 and @17sushmita at:

These are some of the broad sub tasks in the project:

@17sushmita please do add anything more that you feel like!

@Manasa2850 Manasa2850 added planning Planning issues! outreachy labels May 25, 2021
@17sushmita
Copy link
Member

I think the 7th point was also there in the other project in Outreachy which @TildaDares is working on. And it seems she has opened an FTO for this too. So we should remove it from ours.
And let's add the issues which are still present in Tags and Topic milestones here in the points and some are too old so we need to check if they still exist.

@jywarren
Copy link
Member

This looks great!!! Some notes and thoughts:

Retroactively delete tags added by users who have been banned (@Manasa2850)

This one may be best solved using a migration, that'll execute upon deployment to the live site; example: https://github.com/publiclab/plots2/blob/main/db/migrate/20180705203310_convert_nil_emoji_type_likes_to_thumbs_up.rb

Prevent first-time-posters from tagging work except their own, add appropriate warnings/alerts and/or hide tag form from first-time-posters (@17sushmita)

This one might break up into quite a few subtasks depending on where we identify a need for notification or for "hiding" or "greying out" the tag input. The greying out could actually be done first, as FTOs, and only later we actually lock things on the controller side. After all, first-timers are not likely to be hackers looking to use JavaScript to bypass the rules :-)

Finalize display of tags/topics in sidebar using small "cards" styles - #8684

This one is hard because in JavaScript, we generate the tag HTML on the client side upon adding new tags. But, there is a way to request a pre-rendered HTML template fragment or "partial" from the server, for insertion into the current page, so it'd use the same template instead of having to code it from scratch in JS. Let's copy this idea into the issue and dig into it!

Ability to set timeframe for /tag/____ pages (datepicker needs to be added) #2439

I was thinking on this one and instead of a JS widget library, wondered if we should use this: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date Just an idea!

Of the above, do we start to see some groupings? Maybe some are "bugs" while others are "features"? Some are design related, some are "power tag" specific? (http://publiclab.org/power-tags)

A few more I thought could be added include:

Finally, i wanted to note that as you get into these systems, and start using them and learning about them, you may have lots of ideas or suggestions for improvements or fixes yourselves. Let's be sure to make time to circle back and discuss them as time goes on!

Thanks a ton, both of you! This is really great.

@Tlazypanda
Copy link
Collaborator

Ohh wow, looks like someone did some brainstorming after the meeting 🔥 Great job! @Manasa2850 @17sushmita

@17sushmita
Copy link
Member

This one might break up into quite a few subtasks depending on where we identify a need for notification or for "hiding" or "greying out" the tag input. The greying out could actually be done first, as FTOs, and only later we actually lock things on the controller side. After all, first-timers are not likely to be hackers looking to use JavaScript to bypass the rules :-)

Yes @jywarren , I was thinking in the same direction, first, we should create FTOs for greying or disabling the UI to add tags for first-timers, but also we need to make sure it is blocked from the backend.

I was thinking on this one and instead of a JS widget library, wondered if we should use this: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date Just an idea!

yes, I've used this before. It'll be much easier to use than using JS widget library.

I checked the issues you mentioned, our site is not running so I checked the same thing on unstable site and it is working. I'll try to take a deep look into what's happening under the hood with the blob image on using lazyloading and provide the updates.

And one more thing I wanted to say that there are many issues which are still under discussion some with community members too. We can discuss them parallely while working on the others to avoid waiting for clarity of task after the current task has completed. What say?

@jywarren
Copy link
Member

Sounds great and if you'd like to somehow indicate which issues need more input in the list above I can try to engage some community members in going through them and providing input one by one. Thanks!

@Manasa2850
Copy link
Member Author

@jywarren the ones labeled (DISCUSSION) are the ones which require some community input.

@ebarry
Copy link
Member

ebarry commented Jun 1, 2021

@bhamster07 check out this excitement! so happy that @Manasa2850 and @17sushmita are engaged on this important set of design and functionality upgrades 🙌

@bhamster07
Copy link

Wow, fantastic! Thanks so much, @Manasa2850 and @17sushmita! I'm excited and grateful for the work you're doing on tags and topics 😄

@jywarren jywarren added this to the Tagging and topics milestone Jun 6, 2021
@jywarren
Copy link
Member

Hi @Manasa2850 @17sushmita -- i'm going to start brainstorming a bit more here on possible additions to your projects. Please keep in mind, you don't have to take any particular one up if it's not very related. Just look at some of the options and if you're interested, speak up and I can help untangle them and get you plugged in.

  1. lazy load images using lazyload-rails gem #8043 (comment) - we did something clever here on "lazy loading" images, which I think broke some instances of our image thumbnail grids. Although we could try to do a second clever thing to fix it, my thought is to actually revert the lazy loading for this particular use case, to get the images appearing normally again.
  2. This one is really not related, but is an interesting bug to dig into, related to draft saving in our editor: Research note "save as draft" checkbox is ambiguous, easy to mix up with "draft auto-saving" feature #9569
  3. This is a bit closer to your project theme: Question card design next steps: metadata to display on question cards - design discussion #8731
  4. Here's another a bit outside the scope. Sorry, i'm just digging to find interesting ones! This one is regarding printability of pages and uses @Tlazypanda's excellent separate print layout. There's a range of tasks refining this, if that sounds interesting? Refinements to CSS/styling of Beta print templates #8380

I also wanted to suggest that this one could be a good collaborative project:

Develop a category tree interactive feature at /topic-tree with nested topics in a tree view like: https://www.appropedia.org/Appropedia:Fundamental_category_tree

What i suggest is that one of you take on the server-side work, and the other the client-side work. You could draw a diagram to agree on the specific API call that the client would make when you click on a topic, what it needs to include in the request, and what it needs to return in the response. Then the server side person can write a test for the API using a static request in a test, and the test proves that the server can indeed respond correctly. The client side person likewise can code the project with a static response by storing a sample response at a location in the /public/ folder, like /public/category_tree_response.json and then write the code to request that. Once you both meet in the middle, you can connect up the client to the server. Just be sure to draw out a good diagram you both agree upon first!

@jywarren
Copy link
Member

Ah and i wasn't sure - did someone already claim this one?

Ability to set timeframe for /tag/____ pages (datepicker needs to be added) #2439

Maybe we need to make the list a the top a checklist so we can check them off?

Thanks, everyone! I really appreciate the teamwork here. Great work!

@jywarren
Copy link
Member

Just checking here - i think i heard that @17sushmita @Manasa2850 have discussed some of the remaining tasks, can you just briefly summarize how you've split them up? Thank you!

@Manasa2850
Copy link
Member Author

@jywarren we've written our names next to the issues we've taken!

@jywarren
Copy link
Member

Ah excellent, thank you!

I also wanted to highlight this one which is UI related. Ruth has been working on it for a little while but the breakpoints are causing us some pain on narrower screens: #9708 (comment)

If it's something of interest to either of you please feel free to pitch in!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants