Implementing app rating and comments
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 :-)