rax: (vulpix is not pleased)
[personal profile] rax
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

(no subject)

Date: 2011-12-21 03:34 pm (UTC)
From: [identity profile] rax.livejournal.com
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!

(no subject)

Date: 2011-12-22 05:03 am (UTC)
From: [identity profile] meguroco.livejournal.com
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."

December 2022

S M T W T F S
    123
4567 8910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Powered by Dreamwidth Studios