brendt / rfc-vote Goto Github PK
View Code? Open in Web Editor NEWA community project for voting on PHP RFCs
Home Page: https://rfc.stitcher.io/
License: MIT License
A community project for voting on PHP RFCs
Home Page: https://rfc.stitcher.io/
License: MIT License
The externals.io rss feed is not really ideal for synchronization of the rfcs sense the link to the rfc in question is not always inside the email when it's being announced for voting and the title doesn't always start with [VOTE] either.
I propose to instead crawl the wiki.php.net/rfc page once a day within a queued job this way we could also crawl the entire rfc content so that the user reading the rfc never actually needs to go the actual php.net page to read it?
This also opens up the possibility to create rfcs which is still in the discussion phase this way the community could start voting the rfcs long before the actual internals voting starts.
It should be rather easy sense the php.net wiki page doesn't heavily rely on javascript.
thoughts @brendt?
We can change a navigation bar to something like this:
Here are some things that we can do related to the nav bar:
nav
HTML elements instead of the regular div
.We can make this dark blue as the main accent color and use it for other elements to make it look more consistent with colors.
I'd like to hear what others think about this.
RFCs will be synced automatically, but we still want admin screens to set
What happens if an argument gets many upvotes, and then gets edited?
So that reputation is updated automatically
Much of the value of this platform comes not from the vote counter (which is a basic poll), but from the arguments, and upvotes on those arguments. This data gives much better insights in how the community feels, instead of a simple yes/no vote.
That's why we propose to make some changes:
Open questions:
Possible problems to overcome:
TODO
Thinking about how arguments could look.
Full markdown is maybe an overstretch, but I think external links or code snippets could be an interesting option
Related to #1
Sometimes, because of rounding, the percentages of yes/no don't add up to 100%
Add the link https://rfc.stitcher.io in this repo's "About" section!
An RSS feed for all the published RFCs
You should be able to view a user's profile. It should list
Whenever you hover over a username in the arguments, you should be shown a popup with its relevant user data: name, avatar, social links, reputation
echo 'hi'
Doesn't work properly
Also affects arguments highlighting/sorting
Some places still need proper meta tags:
We need to send emails to confirm a user's email address in following scenarios:
Maybe it makes sense to list three other RFCs at the bottom of every RFC page, so that people can keep browsing without going to the homepage.
I think we need to consider how we handle self-voting. I don't think you should be able to unvote your own argument, but I think it makes sense that, when you make an argument, it counts as a vote. Let's say it's a free vote on top of your limited amount.
What do you think if we use Route::view
method instead of single responsibility controllers that return only one view?
For example, instead of:
<?php
namespace App\Http\Controllers;
final readonly class AboutController
{
public function __invoke()
{
return view('about');
}
}
Use this:
// web.php
Route::view('/about', 'about');
It looks cleaner and removes redundant controller files.
tl;dr:
The concept of "yes" and "no" is pretty important in this project. However, I feel it's important to no associate any negative connotation with the "no" side, as "no" arguments are equally valid.
For example, it doesn't make sense to style "no" as a downvote, thumbs down or something with -
: you're actually voting for a "no" argument, not against it.
For counters, it would be nice if we have another icon or way of visualising the amount of yes and no votes, without using the downwards arrow.
For the vote button on arguments, we now distinguish solely by color. This might not be user friendly enough. I think there should be more distinction between yes and no arguments.
Users who've added a website, github profile or website can get verified. Verified means an admin manually approved them, indicating these accounts are legit.
Arguments support markdown, it makes sense to have some kind of editor like https://github.com/Ionaru/easy-markdown-editor
Depending on a user's reputation, they should be able to make multiple arguments per RFC. Every user starts with 1 argument though.
A page explaining what this project is about, should also contain a link to GitHub. Should be reachable via the home page, but also via RFC pages, since they'll often be linked directly on social media.
RFCs should have two fields: teaser and description
The teaser is used on the homepage, the description on the detail page.
The teaser can only be X-amount of chars long (we'll have to check what looks good on the homepage)
The description should support markdown
Right now, meta images are rendered and re-rendered during the request, which is inefficient. It makes more sense to have them render as a queued job, and serve the previous iteration of the meta image. We could then also dispatch this job on RFC creation, meaning there'll always be a meta image available immediately.
When there's an existing argument for a user, their argument should always be the first in the list.
Furthermore, the argument form should be hidden. A user can choose to edit its argument, which will reopen the argument form.
The meta image of an RFC page should contain the current vote bar, so that people on social media immediately see the current progress.
Allow users to
Users should be able to undo their vote
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.