labrocadabro / communitytaught

MIT License
78 stars 31 forks source link

[Feature Request] Community View #47

Closed coltonehrman closed 3 weeks ago

coltonehrman commented 8 months ago

Would be nice to have a community view incorporated into the app. My initial thought was being able to see who else is also currently taking the same class/course as I am.

labrocadabro commented 8 months ago

This is something I've been trying to work out for quite some time. A quick solution to make the site a bit less lonely would be to show some summary statistics - how many people are currently taking each class, for example. But I wanted to have some way for people to find others around the same class and in a similar time zone for group projects, study groups, accountability partners, etc. I do think it needs to be opt-in, and ideally it should somehow integrate with the discord so that all actual conversations take place there.

I'm open to any specific suggestions on how to implement this.

nmpereira commented 8 months ago

Dont know if you want to mention this publicly, but out of curiosity, how many people are using the site? Which class has the most people on it, and what does that number look like?

If it is a 2-3 digit number vs if it is a 4-5 digit number, the UX for this feature might look very different. Would like a magnitude for what we're working with so I can suggest a solution.

I was thinking of a component (this can be opt-in, in the settings, so as to not distract) where you can see how many people are in the current class, and a list of names/discord handles (also opt-in, a user would have to say that they do want to be on that list). This can further be filtered to only include users with recent activity (say past 2 weeks, which would make the list a lot less overwhelming, and likely make it a 1-2 digit number)

labrocadabro commented 8 months ago

To be perfectly honest, I don't have much data on usage. I can tell you that since its creation in Oct 2022, there have been about 9500 signups, but that's about it. When I made the site it wasn't an official project, and I didn't feel it was appropriate for me to track any more information than absolutely necessary to make the site run. I don't even record when accounts were created.

It would also be possible to use the progress data to count how many people in total have completed each video/homework item, but I'm not sure how helpful that would be, since it doesn't have any timescale (again, I made a conscious decision not to track this information). It's impossible to tell how many people are currently working on the class and how many are inactive.

The project is undergoing some changes as it will be official and part of the 100devs website for the next cohort. I'm not sure exactly what that will entail yet, but it could mean we have more data to work with for a feature like this.

nmpereira commented 8 months ago

I understand that it might not be in scope until the migration/more information, but to throw out an idea...

When a user clicks on "watched", the db would also save the timestamp of when the user does so. We can use the last 1 or 2 weeks of users who have completed X class and guesstimate that they are on X+1 class. If there's no activity past 1-2 weeks, then they don't get counted, therefore they don't show up.

Based on how many people are in X+1 class, we can show a count/list of users or something to display who's currently doing that class.

This would also make it so that we wont need timestamp data from past users, just future ones. Its just for motivation for one to do the class if there a lot of people doing the classes with you and also possibly find other people who are on the same class as you.

labrocadabro commented 8 months ago

It's a good idea. We'd have to go with an anonymized count, since the only unique identifiers I store for users are the document ID and their email address. Once is too impersonal, the other too personal. :)

The current class for each user is stored, so you could use that as the starting point for checking which users to include in the count.

In order to avoid "there are no other users" showing up on every class, it's probably best to first add the extra db information, then add the count say 1 month later.

I do need to discuss this with Leon to get his position on features vs privacy, however.

ThirDecade2020 commented 7 months ago

This feature would be a great addition to the site and an interesting conversation about db storage and user data. I am looking through issues now should future integration impact our decision on which ones to make an attempt on at this time or in other words will the site/code look different after integration in a meaningful way? Thanks!

labrocadabro commented 7 months ago

Immediately, no. The site will remain fundamentally the same, although I hope to modify the design to better match the main site. In the long run... I'm not sure yet. There are a lot of details that need to be worked out, and I won't have an answer for a while.