Git Product home page Git Product logo

qpixel's People

Contributors

artofcode- avatar b-istiak-s avatar boxedfruits avatar cellio avatar charliebrumbaugh avatar codidactbot avatar dani21 avatar dependabot[bot] avatar duncanscode avatar dyaskur avatar galegosimpatico avatar kevinmmansour avatar kritixilithos avatar luap42 avatar mattjbrent avatar meagar avatar mithrandir24601 avatar moshikoi avatar mrhug avatar oaphi avatar quartata avatar rhoxio avatar sarahmccuan avatar sau226 avatar superplane39 avatar taeir avatar trichoplax avatar trilarion avatar vsoch avatar ws909 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qpixel's Issues

Per-category access restriction

A user on Writing Meta suggested a category where people could post their work, either for critique or just to share. A concern is that publishing something, even informally, can impede or even prevent selling that work to a publisher later -- some publishers won't buy what was previously publicly available for free, even if that was an earlier or unfinished draft. The thinking is that restricting read access to the category to signed-in users would suffice. See https://writing.codidact.com/questions/74774#answer-74810.

In thinking about this use case, I realized there's another use case for access-restricted stuff: moderator-only content. On my sites we sometimes wanted to have a place to stash things like templates for our own mod messages, notes about ongoing investigations, and suchlike, and mod chat on SE was terrible for that (and we're not planning chat, let alone private chat, for MVP).

Note that there are two factors here: visibility of the content (can be gated by trust level), and visibility of the category, i.e. even seeing that it exists. For the moderator case there'd be no reason for non-mods to see a tab (and entry in the category list) that they can't access. For the Writing case that's less clear; maybe we want a tab that, if you click on when not signed in, gives you a message about how to access that content. Or maybe it should stay hidden. We need to think more about that part.

Add some indication, after a user clicks "Post" for a comment, that it's being worked on

When a user leaves a comment on a post, the workflow includes typing up the comment and then clicking the "Post" button next to the "Your comment" field.

However, upon clicking "Post", there is no clear indication that the comment is being posted. Especially if the user is on a high-latency connection, there can be a noticable delay during which there is no indication that anything is happening.

I propose that, when clicking "Post", something visible in the UI indicates to the user that the comment is in the process of being posted. I don't have an exact suggestion for how to indicate that; it could be a donut spinner, animated dots, or simply changing the button text to "Posting" while disabling the button for the duration, or something else.

Admin profile editing

Admins (not moderators) should be able to edit profiles on behalf of any other user.

Live Markdown previews

We need to look into a client-side Markdown renderer and render posts as they're being typed so users have a live preview.

Tag listings

There's currently no way to view/sort/search a list of tags, each linking to a list of questions under the tag. We should have that.

Be consistent with "sign in" or "log in"

The button near the top right of the page (on desktop) says "sign in".

The page you get to when you click on it says "log in".

The button near the top right of the page (again, on desktop) says "sign up".

The page you get to when you click on it says "sign up".

The recently added notice on the sign up page says "sign in".

The "forgot your password" page has links "log in" and "sign up".

Once you're logged in, you can "sign out".

Can either please be changed so that it is consistent?

Compare here on Github, which uses "sign up" and "sign in" but does so consistently.

Personally I prefer "sign up" and "log in"/"log out", because even at a glance they actually look different, but either's fine with me.

For "sign in" and "sign up", provide hints about existing accounts on other sites

If you click "sign in" it asks you for an email address and password (quite reasonably), and if you click "sign up" it asks for info and offers to create an account for you. But if you already have an account on a different Codidact site, things are a little confusing: "sign up" won't work because that account already exists, and "sign in" does work but since you've never been here before you might not think to try it.

Could we add the following notices to these pages, above the forms?

Sign up: "If you have an account on another Codidact site, do not create a new account here. Instead, [sign in](link to sign-in page) with that account."

Sign in: "Your username and password are the same on all Codidact sites."

Editing comment and exceeding character limit breaks post functionality

Steps to reproduce:

  1. Post a comment to a post or answer.
  2. Edit the comment to be longer than 500 characters.
  3. Click the Post button.

Expected behavior: alert should notify user that comment is over character limit.
Actual behavior: nothing happens. Comment remains unposted, no notification to user.

Split main/meta tags

Main and meta currently use the same set of tags. We need to split those up so they use their own distinct sets; this probably means adding a category field to the tags table.

"Unread" notifications for new answers stay unread forever?

Describe the bug

I have two "unread" notifications. They don't go away.

To Reproduce

I'm not sure if this is reproducible at all, but here's what I did

Steps to reproduce the behavior:

  1. Observe new notifications on https://meta.codidact.com/
  2. Click on the inbox and on each notification one by one.
  3. Notice that the counter is still "2"
  4. Reload the page.
  5. Try it again.
  6. Notice that the counter is still "2"
  7. Click on "See all your notifications"
  8. Try it from there.
  9. Notice that the counter is still "2"
  10. Reload page.
  11. Notice that the counter is still "2"

Expected behavior

Number of unread items goes down as I click each one, eventually to 0.

Screenshots
image

Desktop (please complete the following information):

  • OS: Fedora Workstation
  • Browser: Firefox
  • Version: 75.0

Question lists are missing pagination

With the rollout of categories, the question list is missing the pagination controls at the bottom, so only one screenful of questions is available there. This is true for all tabs (questions, age, score, lottery -- though I don't think lottery ever offered more than one page), on both Writing and Outdoors. (Meta doesn't have enough questions to trigger pagination.)

Please restore user names to the question list

The site is now showing gravatars in place of user names. I don't care if we show gravatars alongside that info (though they'd need to be smaller), but I really don't want to lose the names. Names are meaningful to me; hard-to-see blobs of graphics are not.

I realize the name is available in a tooltip, but that's extra work and I don't know how to access it on a touch interface. Maybe reverse it -- show the name as text and let the gravatar (and maybe other stats) appear in the tooltip.

I realize you changed other things, making the answer count and last-activity time huge to line up with the gravatars. You'd have to revert that to make names fit. I'd rather have the meaningful text even at that cost.

Copied from https://github.com/ArtOfCode-/qpixel/issues/61 (oops, wrong repo).

Email subscriptions seem not to be working

Recently I noticed that I haven't gotten any email from my daily "new questions" subscriptions on Writing and Meta. Thinking that recent updates had maybe clobbered them, I recreated them a few days ago. And I'm still not getting email, even though there have been new posts.

I asked around, trying to determine if it's something at my end or farther upstream, and Art hasn't gotten subscription email lately either. I don't know that it's a problem at QPixel's end, but could you check the logs to see if messages are being sent out?

Flag history

Users can currently flag posts and moderators can leave feedback on processed flags, but neither can see a summary of flags per user and the feedback left. That'd be useful to have.

Data import created duplicate entries with different answer counts

From the Outdoors front page:

Screen Shot 2020-04-26 at 11 10 21 PM

The first of the two links to https://outdoors.codidact.com/questions/46971, which has 0 answers (not 3).

The second links to https://outdoors.codidact.com/questions/41874, which has 3 answers (not 0).

I noticed and reported duplicates (in Discord) about a day ago. The examples I found then had different answer counts on the question list and different URLs, but they both had all the answers when I clicked through. I don't know if this means there are two separate problems, or if fixing that caused this somehow. I don't have the previous examples handy, sorry.

"Latest questions" subscription seems to be sending me everything, not just "latest"

Yesterday I got email from new subscriptions for the first time and it included lots of questions. That didn't seem wrong for a first message.

Today I got email from those subscriptions and it still includes...a lot of questions. My subscription for Site Suggestions on Meta includes all three questions, the oldest of which was asked 12 days ago.

Shouldn't "new" mean "new since the last email"? (Or, more precisely, "new within the frequency you specified", even if it doesn't precisely align with when the email is assembled and sent.)

Question list layout emphasizes wrong things at cost of question titles

Recent layout changes have made the main question list on the site much less usable to me. We've now fixed one of them (the avatar change), but apparently we are now enforcing a "table view" style that IMO is misusing the real-estate. Question titles are squished, some stats are huge out of proportion with their value, and some text is now abbreviated:

Screen Shot 2020-03-24 at 7 38 05 PM

To put that in text:

  • Question titles get only a small portion of the page width now; they used to have most of the main (left) column. This makes scanning down the list of question titles feel quite unnatural.

  • The answer count is huge, like the score and the time since last activity. It ought to be smaller and not carving out a vertical slice of the page -- either the text flow we had before (something like "3 answers, last activity 14h ago, Joe Blow" below the question), or maybe a small "3 answers" under the question score, or... something else that conveys info without staking out exclusive horizontal territory.

  • Ditto for the last-activity timestamp -- we absolutely need that, but we don't need it in 72pt. And to the uninitiated, "2d activity" is not very clear I don't think.

  • The user name is separated from the activity; we want to see who did what when.

Please restore the layout we had before the gravatar change was made, even if it means reverting code, and then if we need to rework things because of changes in the design framework, let's discuss the constraints and needs so we can come up with something that works for the community we're supporting as well as for whatever's driving the code change.

Hot questions (really hot posts) from other categories should indicate the other category

The "hot questions" section of the main page on Writing currently shows:

Screen Shot 2020-04-26 at 3 16 40 PM

The first and last of these entries are meta posts, but you can't tell by looking at them. In the future there could be hot posts from other categories (like a blog), and some of those might have titles that resemble those on main Q&A, so going by titles isn't a long-term fix.

Could this list indicate the category if it's something other than the current one? Or, if that would be too weird on meta where things would logically be tagged Q&A, maybe we should just show the category for everything?

Also, the section is currently titled "Hot Questions", but soon we will have things -- that I hope might become hot -- that are not questions. How about "Hot Posts"?

If we can get away from "hot", which is kind of SE-insider jargon, then that's even better, but the obvious label includes "active" and that could cause confusion with the "activity" tab on the question list. So if anybody has any ideas then let's consider them, but in the meantime let's de-questionize it.

Mathjax support

It's been pointed out to me that the Speculative Science site (most immediately), and math/science sites in general, will need support for math. (I know we've discussed this, but I don't remember if we reached any conclusions.) Speculative Science wants to import data that already uses Mathjax, and other sites might also import such content from SE, so it will probably be easiest if we support Mathjax specifically rather than picking some other tool and then having to deal with conversion.

Indicator of new posts in other categories

When categories are updated infrequently (blogs, resources, sometimes meta), it's easy for new posts to fly under the radar. Could we have some sort of indicator in the category tab that there's new stuff, since your list visit, over there? This could be either a count (like"Meta (2)") or just a toggle if there's anything (like "Meta (*)"). This should trigger on new posts but not new comments. Visiting the category should reset it, even if you didn't click through to read the new posts.

Linking an SE account for a site that doesn't have an SE pairing produces a cryptic error

This issue was reported here: https://meta.codidact.com/questions/74780

Codidact Meta does not have a matching SE site, but it's still possible to try to link an account. If you do, you get the error "Couldn't parse client_id".

If we offer the "link SE account" option on all sites, it would be better to catch this and report back something like "This site does not have a matching SE site so you can't link an account".

Even better would be to only offer the "link SE account" interface on sites that have associated SE sites, but I don't know how hard that is. (n.b.: I'm aware of a possible "native" Codidact community, one not coming from SE, so this would apply to them if they move forward.)

Can we improve how we use space on the user profile?

This is a screenshot of (part of) my user profile in a browser that's currently 1168px wide:

Screen Shot 2020-04-06 at 11 12 30 PM

The "user" part is laid out in three (uneven) columns:

  • avatar plus rep
  • name and "about"
  • external links and two site tools

This section of the page is further compressed by the presence of the right column that also appears on other pages on the site.

To me, the "about" column looks very squished, and there's a lot of empty space in the other two columns. The right column is also more oriented toward questions than profiles, though perhaps we'll fill it with more user-focused stuff later.

I don't want to ask for big changes when we'll probably be redesigning this page later anyway, but it seems that if we could combine the two sparse columns, we could have more room for the "about" text while still having everything on the page. Could we move the links and tools under the avatar (adjusting the width some), or move the avatar to the top of the column with the links/tools, or put the links/tools below the "about" text somewhere, or... something?

Add network support

We need qpixel to be able to support a network of sites, as opposed to the single site it currently supports. That's a fundamental change, so this is a lot of work and potentially pretty complex. Some concerns in no particular order:

  • We need to be able to keep our URL structure - we have writing.codidact.com that must keep working, so this must support setting community scope by Host header.
  • (relatedly) We will use 3rd-level domains (XXX.XXX.TLD) for sites, but we will not use a second-level for "instance scope" as with Core; this means that all 3LDs must also be able to run queries not scoped to a single community (for things like reporting).
  • We will need MANY tests for this. We have a decent test suite already, but we'll need to have plenty more to make sure this works.
  • Most database tables will need a community field added to them (integer FK to a Communities table). Users should be shared across communities.
  • Database seeds script will need to be updated to add seeds once for each community, rather than just once.

No posts are created during the seed

Currently when trying to seed the posts table it will fail because the post_type_id is not set.

Changing

- post_type_id: <%= PolicyDoc.post_type_id %>
to
- post_type_id: 3

in db/seeds/posts.yml

fixes the problem, but I don't know if that's the way it should be fixed.

Alert users when they are getting close to or exceeding the character limits

When a user exceeds the character limit for a post, answer, or comment, there is currently no indication of anything wrong until they attempt to post. It's unpleasant to write several paragraphs and then be told "sorry, too much."

When a user is close to the character limit for a post, answer, or comment, there should be a visual cue letting them know how many characters are left or by how many they exceed it.

This warning will clearly communicate when a user is near the limit so there is no frustration after submitting the post and only then learning that it needs to be rephrased or broken into multiple parts.

Off-by-one error with comment length limit

I tried to post the following comment, which according to the tracker was exactly 500 characters:

"Thank you both for explaining that background. If we have separate categories for photo/video/CV, then within the first two at least we'd still have a mix of technical and artistic, right? Will the former drown out the latter? Or is the idea that each of these categories would be small enough that the artistic posts would still be seen? Are there questions that would apply to both, so having to choose photo vs video would fragment the questions? A good ontology (category & tag) will be critical."

It neither posted nor emitted an error message, which I think is the current expected behavior for comments that are too long. When I edited to remove one character (499/500), it posted.

Since the UI reports "X/500", that implies to me that you can actually go up to 500. It seems the current maximum length is actually 499.

Tag wikis

Tags currently have no short or long description. We should have both of those - the short description to be used to provide context and usage information, the long for more detailed descriptions, as on SE.

Edit Profile -> Website link incorrectly gets https protocol added to it, each time save is clicked

Describe the bug
"https://" gets prepended to the Website link field every time you click save on the edit profile page.
If you start out with codidact.org, when you click save it will become https://codidact.org, but then when you click save again, it will become https://https://codidact.org, each time save is clicked it will continue to prepend another https://.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Edit Profile
  2. Enter a value in the Website link field, e.g. https://codidact.org
  3. Click save
  4. The value is now https://https://codidact.org

Expected behavior
The URL will either be what the user entered, verbatim, or it will check if the protocol is already specified in the specified URL.

Post history diffs

We need a preferably client-side solution to highlight differences in post history. We already have before/after, but the specific changes are not highlighted.

Can't create new tags

I tried to tag a question on Codidact Meta as status-completed. The tag doesn't exist, but the tags section allowed me to add it as usual. When I submitted the edit I got this error:

Screen Shot 2020-04-28 at 11 55 49 AM

Ok, I get that my new tag isn't in a tag set yet (and doesn't even exist), but until we have tag sets, can we allow tag-creation in the usual way? Or if that's hard, I guess we need to raise the priority of the new "create tag" workflow.

Until we have the new workflow (and maybe even after that), it seems reasonable to assume that any new tag being created is to be added to the current category's tag set. A category has only one tag set, so we don't have to worry about resolving ambiguities there.

We could also mitigate my specific problem by creating the status tags on Meta, but with the new Outdoors site we might have people wanting to create new tags there, too.

Can sites advertise the rest of our network?

I told a Writing user about the new Outdoors site, and the person said words to the effect of "hey great -- I never would have known that from looking at your site". That's true; each of our sites looks like a standalone site, and unless you find your way to codidact.com, you'd never know there are others. Ok, right now there are just two plus meta, but we hope that'll change soon -- and even the two ought to know about each other.

Eventually we'll design some sort of cross-site navigation, but for now, could we find a place to add some text? Something like "This site is part of the Codidact network. See a list of our other sites (link)." One place to put this would be in the right column, below the "ask" button and above the hot links.

Alternatively, and until the list gets long, maybe we could actually list them (using our JSON API).

"Not Found" page says to contact administrator at invalid email address

I noticed that on Writing Codidact, the "Hot Posts" sidebar has one Meta question, three Q&A questions, and one untagged "Terms of Service" which points at https://writing.codidact.com/questions/39221

Following that link (at least without having signed in) leads to a "Not Found" page.

That page, in turn, includes this sentence:

If you believe you encountered this page in error, or you want to report a fault, you can contact the administrator at [email protected].

While example.com is good for, well, examples (it's reserved for the purpose by RFC 2606), it doesn't make a particularly useful email address for someone to use to try to contact a live human.

I believe that, if it's to be there, the email address should be changed to a valid one which reaches a live human being.

Can't edit old question; error "Not all of this question's tags are in the correct tag set."

I'm trying to edit a question on Writing Codidact tagged: editing world-building psychology-of-writing.

When I have made the edit and click "Save Changes", I get an error message back:

The following errors prevented this post from being saved:

  • Not all of this question's tags are in the correct tag set.

This looks like the same error as in #46, but whatever was done to fix that doesn't seem to have worked for this other question on main Q&A.

Desktop Firefox 68.7.0 on Debian GNU/Linux.

Better import functionality

The import script currently available (in scripts/import) has limited functionality: it can only import by tag, by user, or everything. We need to be able to fulfil more granular requests than that.

For ease of implementation, the easiest way to do this may be to change the script to accept a link to a Stack Exchange Data Explorer query, which should return the IDs of posts to be imported; the script should then find those IDs from the data dump (and API, where necessary - it's much slower) and import the relevant data.

Tags on imported questions don't link correctly.

Tags that were imported,

https://outdoors.codidact.com/questions/tagged/5/paragliding
https://outdoors.codidact.com/questions/tagged/5/bears

are not showing up correctly when you click on them, while tags on questions that have been created since, do show up with a tag page and link to those questions, but not to questions that were tagged with the same tag in the imported content.

This shows correctly for the new question,

Can't log in unless cookies are allowed, results in 500 Internal Server Error

NOTE: The details are wrong. It's not Javascript, it's site-specific cookies. See the discussion in the comments.

Describe the bug

Trying to log in to a Codidact site results in a 500 error unless Javascript is enabled.

To Reproduce

Steps to reproduce the behavior:

  1. Have an account on a Codidact site, such as Writing Codidact.
  2. Go to https://writing.codidact.com/ and sign in. Note that signing in works properly.
  3. Sign out. Use a plugin such as Noscript or uMatrix to disallow Javascript from writing.codidact.com.
  4. Near the top right of the page, click "Sign In"
  5. Enter the e-mail address and password associated with the account, leave "Remember me" unchecked, and click "Log in"

Actual result:

A text/plain response with the following body:

500 Internal Server Error
If you are the administrator of this website, then please read this web application's log file and/or the web server's log file to find out what went wrong.

Expected behavior

Returning to the front page of the Codidact site, having been logged in or a message is displayed indicating that Javascript is required.

Screenshots

Not applicable.

Desktop (please complete the following information):

  • OS: Debian GNU/Linux - Buster, up to date
  • Firefox 68.7.0 ESR

Additional context

Nothing known relevant; ask if it's needed.

Docker (Compose) deployment options?

Not much detail needed, I believe :)

Wrapping this software up in a Docker container will surely make development, testing and deployment easier. At first glance, three containers are required: a Redis, a MySQL, and the last one for this app itself.

The Dockerfile would be pretty straightforward: Install necessary software from APT repository and RubyGems, then ENTRYPOINT /usr/src/app/bin/rails. A custom script to initialize the application by reading environment variables and generating the configuration files at the first start is also in need.

With all those stuff ready, a docker-compose.yml should be easy to work out.

The Dockerfile file from Charcoal-SE/metasmoke would be a good point to start at, although it's missing some best-practices for Docker.

Ideas?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.