codidact / qpixel

Q&A-based community knowledge-sharing software
https://codidact.com
GNU Affero General Public License v3.0
388 stars 68 forks source link

Expose a network profile #284

Open cellio opened 3 years ago

cellio commented 3 years ago

Also here: https://meta.codidact.com/questions/279409 Also here: https://meta.codidact.com/posts/281602 (indirectly)

You have a network account, and a profile on each community that you've visited while logged in. But there's nothing that ties them together; to see your posts (or other information) on a community you first have to visit that community and then click on your user link.

Can we add a network profile that, at minimum, lists and links to your community profiles? This network profile would also be a good place to attach network-wide preferences when we get to them, and also a link to your SE network profile (to support data import). And we have a request for a unified subscription list, which could be made available here. (I'll file a separate issue for that. This current one is about enablement -- we need a network profile at all before we can do stuff on it.)

The network profile should be linked from the community profile and publicly visible.

ArtOfCode- commented 3 years ago

This is a good one for someone new - either new to developing, to Ruby, or to the project. It's nice and isolated, with few changes required to existing views. It'll involve creating a new controller action and a view to go with it, plus linking to it from a few places.

Trilarion commented 2 years ago

I would be interested in working on this issue. However, I have no experience with Ruby yet (data scientist with Python, Java experience in daily work). Therefore I would need to find free time, get into Ruby, get into QPixel and into this issue. This would probably take a bit of time.

However, it's marked as good first issue and I like the proposed feature.

I will come back with more feedback once I'm more into it. But if you happen to come around implementing the feature before that, that would be fine with me too.

cellio commented 2 years ago

Welcome! Take a look, and please let us know if you need guidance.

Trilarion commented 2 years ago

Setting up rails and this project with all required dependencies is quite a bit of work. I ended up compiling ImageMagick by myself, but finally I got to the "Set up QPixel" part of the README and

rails db:create

fails with

Cannot load database configuration:
Could not load database configuration. No such file - ["config/database.yml"]

I guess one has to rename config/database_sample.yml or so. Maybe the README could be adapted a bit.

One of the problems was that the Gemfile specifies Ruby 2.6.6 while I had Ruby 2.7.0. Why does the project need Ruby 2.6.6?

Trilarion commented 2 years ago

Found an updated version of that text at:

How to set up a new (development) instance of Codidact/QPixel

ArtOfCode- commented 2 years ago

That guide has more detail than the README, so that should work for you @Trilarion.

We don't specifically need 2.6.6, but that's the version it's built with so that's the version that's guaranteed to work, at least in theory.

Trilarion commented 2 years ago

Sorry, this time connecting to Redis is the problem. Made a post about it.

Trilarion commented 2 years ago

Now an error with the donation functionality. See https://github.com/codidact/qpixel/issues/747 and https://collab.codidact.org/posts/285410

Trilarion commented 2 years ago

I'm now more or less through with the setting up of an development instance. I asked on meta about a design and I can start doing first steps. Will write again, if there is something notable to show. It might take a while because I need to better insights into Rails and QPixel first.

For sure there is the issue of the routes, because I would like to have network profiles on codidact.com/users/12345 and I'm not sure how to get there. You'll probably have to help me there.

ArtOfCode- commented 2 years ago

@Trilarion the routes will be a tricky one. codidact.com is currently a static site, not served by QPixel. I think for the moment we'll need to create the network profile as a route on each site (/users/12345/network, possibly) and as and when we move codidact.com to become part of QPixel then we can redo it.

cellio commented 2 years ago

/users/12345/network on each site seems ok; it'll have the local color scheme but be clearly labelled as the network profile. Should we use something like network.codidact.com as our "qpixel but not a specific community" place, either as a stopgap or permanently? Or would that create more problems because it's not a community but would need DB access?

luap42 commented 2 years ago

We already have the technical concept of "fake communities" for exactly that @cellio; the problem is just that there is not much that comes with such fake communities right now, we'd probably have to build some functionality to allow global admins to put arbitrary (static) pages on such sites and to show the network, not the (not very useful) local profile there.

cellio commented 2 years ago

Understood. In that case, I agree -- do it on the community for now with a /network suffix, and when we work out what we need to do to host it on codidact.com, we can move/redirect then.

Trilarion commented 2 years ago

Ok, so for this issue I will do with /network suffix and later it can be changed. A software like QPixel that allows for multiple communities on multiple domains should probably have a dedicated part for network stuff (overview of existing communities with statistics, customizable network dashboards and network profiles, maybe even network wide search).

cellio commented 2 years ago

@Trilarion how's this going? Is anything blocking you that we need to address? Thanks.

Trilarion commented 2 years ago

Hi, no nothing is really blocking me. I got a bit of experience with Ruby and this project with other issues but then I lost motivation and free time. Otherwise this should be straight forward except for the additional routes to reach the network profile (as discussed above), basically very similar to the user profile of each community. I didn't do anything yet and cannot promise that I will start with this issue (that's why I unassigned me to not block anyone else). If my interest returns, I will get back.

cellio commented 2 weeks ago

The merged PR minimally addresses this. We have hopes to do more; should we leave this issue open or close it and create new ones for follow-on work?

Oaphi commented 2 weeks ago

@cellio let's keep it open as an overarching issue - imo, that's better for bookkeeping purposes than a bunch of linked together issues. We aren't in a rush to close as many as possible :)

cellio commented 2 weeks ago

Makes sense. I'll remove myself as assignee to signal that I'm not "claiming" the next steps (I just had the first PR).