lakesare / memcode

Spaced-repetition: with real formatting.
http://memcode.com
MIT License
339 stars 73 forks source link

Feature: Select multiple quills by content in learn list #171

Open goninja808 opened 1 year ago

goninja808 commented 1 year ago

AS a user of Memcode, WHEN "/learn" screen present me a list of elements of a course, I should be allowed to search TEXT present in some of them in order to SELECT them for learning / unlearning. Simplest minimum design could be to have simple "search" field (same used to search course) to select in "/learn" specific tag / text ... "#xxx#", "xxx". Same search could allow to select/learn/unlearn all elements if submitted empty. For instance, would be useful to select a kind of knowledge "#core knowledge#", a level of complexity "#easy#", or a step in training "#newcomer#".

goninja808 commented 1 year ago

first use-case/example FLASHCARDS TO LEARN as default

Scenario: User access list of quills of course ("/learn") for FLASHCARDS TO LEARN When the user fills a search field and submit it via enter (or side button) correspond to "learn" individual quills previously in unlearn or learn states Then the quill with corresponding content in the list are marked as "learn"

second use-case/example LEARNED FLASHCARDS as optional

Scenario: User access list of quills of course ("/learn") for LEARNED FLASHCARDS When the user fills a search field and submit it via enter (or side button) correspond to "unlearn" individual quills previously in unlearn or learn states Then the quill with corresponding content in the list are marked as "unlearn"

third use-case/example IGNORED FLASHCARDS as optional

Scenario: User access list of quills of course ("/learn") for IGNORED FLASHCARDS When the user fills a search field and submit it enter (or side button) correspond to "ignore" individual quills previously in learn or unlearn or ignore states Then the quill with corresponding content in the list are marked as "unlearn"

In the third use-case/example, in the same way, elements marked as ignored come back to unlearn state if unignore button is used individually. Less restrictive search would produce for left 'unignore' individual quills to return to unlearn state. (perhaps could be more adequately called FLASHCARDS TO IGNORE).

lakesare commented 1 year ago

Hm, so you'd like bulk "learning" based on a search query match. It's possible to implement this functionality as you suggest it, but the more long-term solution is connected to the following 2 pieces of functionality:

Before embarking upon these tasks, however, I would implement groups of courses, because there is a chance that groups of flashcards within the course won't be as needed if our courses have some more structure to them.

goninja808 commented 1 year ago

Thank you for your prompt reply, Evgenia. I would say that the "group of courses" functionality is certainly the best idea for very organized people around a known / defined syllabus. You know your users better, it is perfect if they use the application as content providers wanting to organize in a pre-structured way.

I am more than happy if you think that it can be a priority to make quill selection a bit more flexible : My idea of "tags" or "text" based search at that precise level was kind of "quick win" proposal for any user wanting to learn "all at once" (select empty) or to "divide to conquer" with tags representing steps, difficulties or sections.

If I wanted to participate and propose an implementation of such solution would it be ok to have your help and how would I proceed for the benefit of your team work ? Making a fork to modify only previously segregated component structure would be ok ? Do you have coding style rules or preference : would it be with some specific pattern or design to follow?

Best Regards, Jason Gonin

Le mar. 18 oct. 2022 à 18:13, Evgenia Karunus @.***> a écrit :

Hm, so you'd like bulk "learning" based on a search query match. It's possible to implement this functionality as you suggest it, but the more long-term solution is connected to the following 2 pieces of functionality:

  • bulk learning (it's been requested multiple times, people clearly feel the need for it, and it's easy to implement)
  • groups of flashcards within the course (this has been requested many times too, e.g. see #5 https://github.com/lakesare/memcode/issues/5)

Before embarking upon these tasks, however, I would implement groups of courses, because there is a chance that groups of flashcards within the course won't be as needed if our courses have some more structure to them.

— Reply to this email directly, view it on GitHub https://github.com/lakesare/memcode/issues/171#issuecomment-1282650427, or unsubscribe https://github.com/notifications/unsubscribe-auth/AWGIM62I7QXUTEQKRNTU5ELWD3ED3ANCNFSM6AAAAAARHMQBQU . You are receiving this because you authored the thread.Message ID: @.***>

lakesare commented 1 year ago

If I wanted to participate and propose an implementation of such solution would it be ok to have your help and how would I proceed for the benefit of your team work ?

Yep, absolutely! We can have a call discussing the functionality/what kind of work you'd like to do. In general ask any questions in Slack, I'll be quicker to respond there.

Making a fork to modify only previously segregated component structure would be ok ?

Yep! Making a fork to modify anything is ok, just discuss the functionality with me if it's something major/not an obvious bug.

Do you have coding style rules or preference : would it be with some specific pattern or design to follow?

We have eslint, and we follow a particular folder structure - you should be good if you just imitate the existing structure.

lakesare commented 1 year ago

Price assignment (re: memcode#requesting-a-feature)

Search on the /learn screen + bulk learning all found flashcards + bulk ignoring all found flashcards: $150