Book club utility

I’m just going to throw a wild one.

Description of your request or bug report:

An utility within learnnatively that allows you to host book clubs, on-site and off-site.

For off-site, try to be a neutral tool that might give you extra perks if you have a learnnatively account, but not forcing on them to register or sign-up as a guest to be useful.

For on-site, maybe integrate it with discourse?. This is not really a rush, as I’m guessing depending on when this is implemented, most book clubs would be off-site.

Potential things this utility would have:

  • One or more users would have control over the book club hosted.
    – Book clubs would be either single-book or series wide.
    – The host of the book club decides if or what tools they need. For example, if the book club is coming from a blogger or a place where discussion is not very convenient, have the option to do it within the utility. This way the book clubs can be hosted literarily anywhere, even static pages.
  • Calendar feature.
  • Files feature (For Vocab sheets and other things that might be required by such book club)
  • Stats of people that joined
    – Shows how many people joined, how many people caught up, reading speed if the information has been inputted…
    – Allow people to join without forcing them to register. Give them a token?
  • In case of an off-site book club, show latest replies within the book club page, if the book club is hosted in a supported platform.
    – For example, use the discourse API to pull recent replies to a book club thread.

Trello link:

FROM BRANDON:
STATUS: APPROVED

Next Steps:
Create two trello tickets, Book V1 (w/o off site handling), BookV2 (offsite-handling). Latter put in ‘speculative’

I’d love to support book clubs! However, it doesn’t really make sense to prioritize on-platform integration before book clubs exist in the forums (you can run a book club in the discourse forums w/o platform integration)… so this probably won’t happen for a while. Certainly in the plans though and I like everything you mention.

Additional things I’d like:

  • a page to view and search book clubs
  • allow you to sign up for a book club on the main site.
  • showcase discussions / book clubs on book page

Only thing I don’t like about the proposal: request for ‘off-site’ book clubs and allowing non-natively users. How would that work? You need to discuss for book clubs and if you’re discussing on discourse, you need a natively account…?

4 Likes

The idea is to be able to used as a toolbox.
Using the toolbox for off-site should require as less hassle as possible, and not feel like a substitution IMHO.
If people then find that having a learnnatively account has it’s merits, then it’s a way to increase the user base.

For example, let’s say I own a website that allows comments, or a forum.
I can link to the toolbox, which will show a fancy calendar which up to which page/chapter/volume, access to the spread sheet files, and how many people signed up.

As for not requiring an account, I guess the easiest is to require one indeed, but there are options.

For example:

If you are a guest, you can request a one-time token. The website gives you a string that you can save anywhere. With that you can access to limited features, such as join the book club as a guest, create a basic profile with a display name (used only for book club utility purposes) and submit pages read for statistics, and such things.

I remember seeing this kind of authentication in places, but I can’t recall a specific example right now.

Not sure if I was able to explain the concept properly, it’s a bit hard to describe.

Ah! I see. Yes I think that could be interesting.

That will probably be a much further out goal however - i’d have to replicate / tailor build a lot of functionality (polls, calendar… etc). I don’t think i’d ever do your one time token idea (at that point, it becomes more confusing than requiring a natively account), but I understand how allowing functionality for an off-site book club could be useful.

V1 however, will simply showcase book clubs on the site and rely on a lot of discourse functionality (polls) / google functionality (sheets) for running the book clubs.

(@Megumin does this mean we should break up these requests?)

It depends on how you feel more comfortable / implementing it.

It can be done as a checklist within the same trello card, the inconvenience is that the card will be there for a long time, until all the checklist is cleared.

A suggestion would be:
Create a Book clubs V1 with the basic functionality you mentioned then create a V2 in the Speculative column until it’s more defined/discussed/researched.

1 Like

Yes I like breaking them up. So does that mean this thread gets two trello links?

We don’t have threads for the Speculative features, but it can be linked anyway in this case.

Ok, I edited the post description. Is this how we should do this? :slight_smile:

It works for me, whatever it’s easier for you!

I’ve created both cards in the trello board. I’ve labelled them as Major because it’s functionality that doesn’t exist yet? Feel free to change the scope if you think it fits more in another label.

Some ideas to add about book club pages:


High quality mockup courtesy of paint :rofl:

  • Natively levels: some clubs read within specified levels, so it would be useful to allow users to choose the level range for the club; for those that don’t, the lowest and highest levels can be taken from the club’s reading list.
  • Browse by level: like lists and media pages, a filter by level would be useful to find clubs that read within a suitable range.
  • (Browse by) Book type: allow clubs to select the type of books they read, and allow users to browse by type.
  • Image(s): perhaps the book currently being read, or maybe several items like lists, displaying current and previous reads?
  • Join button: you receive notifications regarding the club (nominations open, voting, etc). Perhaps you can open to select more options, such as which notifications you want to receive, how often, and so on. Maybe an option to just bookmark the club without joining, so you can access it easily from your profile?
  • Tags: tags from items on the clubs book list, percentages reflecting averages? Can be good indicators of the types of content read by the club.
  • Members: similar to the number of people reading on books, display the number with a link to the profile images. Perhaps more info, such as join date, books/pages read with club, ratings for club books?
  • Bookshelf: currently reading, upcoming, previously read (possibly also nominated, although these wouldn’t be included in stats, book club’s level range, etc); similar to ‘my books’, users able to filter/sort by as they like.
  • Discussion: like recent forum topics on dashboard; home thread pinned. I guess all threads will have to be tagged with the book club name?
  • Stats: some like user stats (books/pages read, pie chart by book type/level, etc), others book club specific (users over time, users reading/finished per book, members’ cumulative pages read, leaderboard for users that have finished books with the club)
  • Polls: view and vote on any open polls (via discourse? or have a Natively poll function and only those joined the book club can vote?)
  • Member activity: progress updates on club books (pages read, reviews, etc)
  • Club ratings: display the average rating of book club members below books on club page?
  • Lists: featured lists related to book club or that may be of interest
  • Recommendations: this PR, showing books similar to ones read by book club and/or books that appear on the lists of many members.
  • Collaborators: like lists, able to add/edit book club pages, bookshelves (I feel like this is important so that if the club creator goes AWOL, the club can still continue rather than just dying).
  • Calendar: schedule nomination period, voting period, reading period; sync with user’s profile calendar so they can view all club activity in one place.
  • Reminders: ability to schedule reminders to club leader(?) to post weekly threads, set up polls, etc.
  • Invites: ability to invite users to club.
  • Active/Inactive: could be as simple as :green_circle: or :white_circle: displayed next to the club name.
  • “Formal”/Informal: to distinguish between clubs that vote and read books in succession and those that focus on a single book/series
  • Scheduled/unscheduled: to distinguish between clubs that follow a reading schedule and those that don’t
  • Nominations open/Voting: view clubs that are currently accepting nominations or those that are voting on the next read; possibly a status the club creator/collabs can select/update, or perhaps schedule using the calendar to auto-apply to the club page?
  • Suggested clubs: on club browse page, display clubs that you haven’t joined but share books with (compare club bookshelves with user bookshelves, the more books they have in common, the higher they’re recommended). Maybe a “don’t recommend this club again” option for those that don’t interest you.
  • Hide book club: for example, advanced users may not want to see book clubs for beginners, or there may be clubs that focus on a certain genre that you have no interest in.
  • Select book club leader: mentioned in “Collaborators”, but the creator may go AWOL or just “graduate” from their club (for example, setting up a beginner’s book club and after a while feeling that they are beyond that level), so the ability to select a “leader” would be useful so someone else could take on the responsibilities that aren’t automated (calendar reminders sent to new leader rather than original creator).
  • Roles: creator (created club), leader (automatically creator, can be changed to collab), collabs (added by creator/leader), members. Creator/leader/collabs all have same permessions to edit club, leader receives admin/calendar reminders. Adding books to bookshelves limited to creator/leader/collabs, or members can add books too? Perhaps members can’t add to reading/upcoming/read(/nominated), but can add to a general suggestions/recommended bookshelf.

Ideally, book clubs would eventually become completely automated, with the site able to set up polls, add books to shelves, create reading schedules, and so on, eliminating the need for a club leader to do admin.

Will add more if/when I think of them. :slightly_smiling_face:

11 Likes

I’d add a request for permissions

Public/Semi-Private/Private:

  • Visible and able to join instantly
  • Visible but has to request invite.
  • Private, only visible to those added manually by the creator of the book club.

Reasoning for permissions:

This would allow to do book clubs with friends or even in a teaching scenario, where a class could set up a book reading schedule.


Problems:

If discussions are outsourced to discourse, it might require a lot of permission integrations.
Maybe if the book club is set to private, fall back to a basic, LN engine powered basic discussion.

5 Likes

Lots of good stuff here. I will say that we’ll start with a more basic version before adding all these things in, but I think it’s good to get these ideas down! :slight_smile:

You could potentially leverage personal messages as private discussion topics. But yes, this definitely wouldn’t be in V1.

I would imagine that you’d just have a schedule which would auto create the threads.

I think thread creation is one of the unfortunate chores as a book club leader which the platform should really be doing.

I love your mockup btw :laughing:

6 Likes

That didn’t cross my mind but it should then be a bit easier?
If the book club is set to private, just create a private group thread and link there.
I’d say no separate threads per week or make it an option.

Wouldn’t make sense to create a gazillion of threads for a very small book club

4 Likes

BTW I once created a book club page generator (for the home thread and weekly threads, and for updating the previous week and the home thread when the following week is generated). It doesn’t integrate with Discourse because it was written for the WK forums and they don’t like to give out access to the Discourse API, but this could easily be added.
The code is a bit of a mess right now, but happy to provide it as is and/or help make it more usable. You can find it here: GitHub - NicoleRauch/WaniKaniBookClubGenerator: Generates the weekly posts for the WaniKani book clubs.

8 Likes

Oh wow, very cool! Yeah, I’ll definitely be poking around that code and maybe dm’ing you
when I get to this :laughing:.

The list of configurations is a good summary too of potential data that might need to be stored about a book club.

I don’t know if anyone has other sites that formally support Book Clubs like we’re planning to, but if you do, it’d be interesting to see! I know StoryGraph says they were adding formal book club feature this month or so, but don’t know if that actually happened.

Granted, our book clubs are pretty well structured already, so don’t know how much there is to glean, but always interesting :slight_smile:

6 Likes

Please feel free!
Unfortunately when I started out with this project, I picked plain JavaScript because I wanted other people (i.e. WK Book Club hosts) to be able to install this as easily as possible and run it on their own computers, so I did not even use external libraries (which let me avoid the “npm install” step). But after a while I realized that actually nobody used the script, and so I started switching to TypeScript, which is still halfway done only iirc :woman_shrugging:
Happy to talk you through and explain the process at some point!

6 Likes

Wow, I love this mockup bibliothecary! You put a lot of work into it.

3 Likes

That’s why you go the UserScript route like I did for my Discourse forum book club manager script, and then you a whole one other person trying it out =D

5 Likes