rax: (vulpix is not pleased)
Rax E. Dillon ([personal profile] rax) wrote2011-12-20 11:28 pm

pkmncollectors feedback spec

If you don't care about pkmncollectors, you can ignore this post. LJ's fuckage is the impetus for making a new feedback system, but really pkmncollectors needed one anyway. I feel nervous about writing this myself (god I am so fucking rusty it is embarrassing) but I have done things like this many years ago and also Krinn said she would help and she is way better at this stuff sooooo... this should be possible. Basically we want ebay feedback, but not on ebay, and tied to openID. Here's what I think it needs to be able to do. 

OPENING PAGE:
  • "this is the pkmncollectors feedback system, blah blah text"
  • form: enter openid username, get list of feedback for them on new page
  • form: go to "insert feedback" page using openID login
FEEDBACK DISPLAY PAGE:
  • provide the total number of positive, negative, and neutral feedbacks at a glance
  • display a table of all of the feedback that exists for that user
INSERT FEEDBACK PAGE:
  • your openID should already be determined
  • you enter a username
  • radio buttons: positive, neutral, negative
  • comments section (optional)
  • link to transaction (optional)
CONFIRMATION PAGE:
  • it says "yup, your feedback worked!"
  • maybe just do the feedback display for that user so you can confirm it yourself with your very own eyes and/or screenreader and/or perl script
FEEDBACK DATABASE:
  • feedback giver openID
  • feedback receiver openID
  • positive/neutral/negative status
  • edited to add once I started working: buy/sell/trade!
  • comments for transaction
  • link to transaction
  • edited to add once I started working: date!
BACKEND:
  • for now, just run this on autumnfox.akrasiac.org
  • probably this can be done in sqlite, it's like one table, oh look python and sqlite are already friends
  • have someone make sure I wasn't a complete idiot about security
  • like every language has openID modules but probably I only care about python and/or apache
THINGS TO CONSIDER FOR FUTURE VERSIONS:
  • banned users
  • what if someone is lj user rax but twitter user rax also uses pkmncollectors?
  • some way to delete feedback without having database access (maybe a separate beefier mod interface)
  • spin off onto its own VM or just onto sunyshore
  • pretty pictures of plush pokemon
  • other stuff

[identity profile] paperoid.livejournal.com 2011-12-21 08:42 am (UTC)(link)
Reading this, seems like you've got all the necessary bases covered. Though a general question is how to deal with the practice of revising feedback. Many users will leave negatives and adjust them to neutrals after things get fixed up. I think being able to edit previous feedbacks is a bit too much to ask, but having the option to delete previous ones should definitely be implemented later.

[identity profile] entirelycliched.livejournal.com 2011-12-21 12:29 pm (UTC)(link)
In my personal opinion, the ability to revise feedback isn't totally necessary. If a user deems it necessary to leave negative feedback, they had a negative experience, period. Just because they finally get their item or proof of shipment several months later doesn't make the experience they went through even neutral. Neutral means shipping was really slow without explanation, payments were delayed without reasonable cause, etc. When I am considering buying something from someone, if they have negative feedback that I view as legitimate, I personally skip the purchase regardless of whether or not the feedback was revised. I think many people feel the same because no one wants to fight a battle for what should be a simple transaction.

[identity profile] rax.livejournal.com 2011-12-21 11:40 pm (UTC)(link)
I think for a version 1 at least it's reasonable to require mod input to take things back? There might be cases where you'd want to do so ("my housemate took the package to her room and sat on it for a month, oops") aside from negotiating with the seller, but they seem exceptional enough to handle specially for now, probably?

[identity profile] entirelycliched.livejournal.com 2011-12-22 06:11 am (UTC)(link)
Well, the thing is that I have never witnessed someone leave negative feedback without making multiple attempts to get in contact with the person. If a mistake like your example is made, the seller would then either provide proof of shipment or look for the package when prompted.

On ebay, you can respond to a negative feedback to give your version of what happened and whether or not you issued a refund/made an attempt to correct the transaction. But regardless, a bad experience that warrants negative feedback (especially since people are so reluctant to leave it) cannot be undone... the stress, frustration, and confusion all still occurred.

[identity profile] rax.livejournal.com 2011-12-21 03:34 pm (UTC)(link)
Last night I dreamed about making the database have a table of usernames and then a table for each usernames, but I don't think that's a version 1 feature; if pkmncollectors gets to 10000 transactions in a couple of years, then the database might hit 40MB of RAM in two years as it is now, maybe (if each transaction is 4K which is unlikely). It's always possible to change this later; I don't think it's worth doing right now. If you know more about databases and think I'm wrong, let me know!

[identity profile] meguroco.livejournal.com 2011-12-22 05:03 am (UTC)(link)
So, my boyfriend was reading over this, and he asked me to drop a reply to this, since he doesn't have an LJ account YET (I will force him to make one, one day, haha...):

"This seems like a pretty reasonable spec and you are thinking the same as I am as far as sqlite + Python is concerned. I've never worked with OpenID before (aside from using it to login to things myself) but it seems a reasonable idea.

As far as the database schema goes, I would caution against 1 table per user. Something more like:

One table for users
One table for feedback with two foreign keys to the user table (person leaving feedback, person receiving feedback)

That schema is a lot more scalable than creating an entire table for every user in the system.

If you already have an Apache server that can run Django or something I could look into doing this over my vacation with my family in the next two weeks. It sounds like an interesting project."

[identity profile] rax.livejournal.com 2011-12-21 05:39 pm (UTC)(link)
Hmm, what about buy/sell/trade?
eredien: Dancing Dragon (Default)

[personal profile] eredien 2011-12-22 02:41 am (UTC)(link)
I think having a database like this is a very good idea. As [livejournal.com profile] paperoid said, the ability to revise feedback is important.