Proposal Update: Speaker Feedback Tool


We recently posted a proposal for a speaker feedback tool to be baked into WordCamp sites. The proposal included some ideas and mockups, with a call for feedback, suggestions and questions. Thanks to @adityakane, @imath, @andreamiddleton, @hlashbrooke, @karmatosed, @iandunn, @mrwweb, @dimensionmedia, @samsuresh and @wpfangirl for their input on that post.

Based on the feedback from that post, we have some more refined mockups to share with you, courtesy of @karmatosed. In addition to that, we are looking for input on the data storage method here, so check out the mockups and details below.

Front-end views

Initial view before selecting a talk to give feedback on:

Full form view after selecting a talk:

Dashboard views

The following mockups are based on the idea that we would store the feedback in a new custom post type with each feedback item being a separate post in that type.

List table view of feedback items in the dashboard:

Single view of the feedback post in the dashboard:

Considerations

The main decision that needs to be made at this stage is regarding how the feedback data will be stored. The three options are:

#1 Custom post type

This would appear as shown in the mockups above. Feedback would be stored in individual posts within a new custom post type.

Pros:

  • Uses existing WordPress APIs, so no need for custom data structures
  • Easy to extend with further features at a later date
  • Familiar UI

Cons:

  • Some WordCamp sites could get thousands of feedback items for a single event, this could slow everything down and make for a very tedious UI to look through for feedback items.
  • Individual feedback items would require a click through to a new page in order to view them

#2 Comments

This would involve storing the feedback as comments on the session post using a custom comment type and comment meta.

Pros:

  • Uses existing WordPress APIs, so no need for custom data structures
  • Easy to extend with further features at a later date
  • Familiar UI (this would use the edit-comments.php template in the dashboard
  • Dashboard comments view allows for full feedback content to be viewed in the list table, without a new page load
  • Feedback is effectively a comment, so this would be a logical way of storing the data

Cons:

  • Custom comment types and comment meta have historically been tricky to work with (although I think this has been largely fixed in recent Core releases)

#3 Custom database table

This would involve writing a custom data structure in custom database tables – the exact data structure and dashboard UI would still need to be planned out.

Pros:

  • Flexibility of building things exactly how we want it, in the most performant way possible
  • UI can be as optimised as possible

Cons:

  • Lots of development hours for planning and building
  • Dashboard UI would likely be unfamiliar and less predictable
  • Custom database tables on a large multisite instance can be unpredictable

Questions and Feedback

With all of that in mind, please comment with your thoughts on the following:

  1. Which data structure do you think would be a good fit for session feedback?
  2. Is there anything further that you feel should be included in the feedback form for attendees?

#proposal, #speaker-feedback, #tools