Expected Result:

Having a way to read and submit ratings and comments for all the apps in f-droid, like all the other proprietary stores do

Client changes:

A switch to disable everything in the settings (if you want)

In the app page:

A list of reviews (with the relative rating) at the bottom of the page (more recent first), with basic pagination ("load more") so maybe, put all the app versions under a tab (like links and permission) to save space for the comments

An input form to send the review and rating If the user is not logged, option to log in or register (email, nickname and password)

Showing the rating of every app in the app list and search results would be great (requires fdroidserver changes?)

Fdroidserver changes:

None, the comment system will and must be separate from fdroidserver, otherwise it will become a problem if we start having a dozen of reviews for every app, as if it wasn't already pretty slow. Comments will be fetched from the server

Maybe only the rating can be put inside the repository, but this can be done at a later stage i guess.

Rating mode, choose from:

like/dislike

percentage/100

X/10

X/5 stars

star like github

Moderation

Ability to report reviews by every user, with an adequate "report" or "flag" button near every review

Reported messages can be put on a rss feed for moderators

For administration:

OR the report button bans user and deletes all posts if pressed by a privileged user

^ maybe with different client side gui to send a command to delete a specific post or ban the user

OR using whatever option a possible user management framework offers us (web interfaces, and things like that)

For user registration: captcha or email activation?

Warning: I'm not an android developer, the client side needs to be done by someone else

I can do the backend, choose from node.js, python or maybe c++. Keep in mind that I'm not very fluent with python, if you really want this in python time may stretch and additional review may be required. Keep in mind also that this will be separate from fdroidserver, so a possible node.js implementation won't be "another dependency for fdroidserver"

Communication with the client can be done via an usual http/json RESTful api

An rss feed for the comments of a specific app will be useful for developers

For the database, i think sqlite is adequate, putting the reviews on http-served text files can be an option too if you want to do it "the unix way ™ "

Let me know if this makes sense

ETA: by 2020 :-)