Sunday, March 11, 2018

SOTU-db Goals

Today's post will lay down some goals for the SOTU-db project and give a more thorough development update.


Goals for this blog:

  • document the development process
  • encourage self-reflection and accountability
  • practice explaining the project to a casual audience
This blog will serve as a resource for SOTU-db itself by documenting the design process and decisions that go into the product. At the same time the blog will help with my own development as a project leader and communicator by encouraging me to work reflectively, diligently, and transparently. On that note, see the "Development Update" section at the bottom of this post for the latest on the project's progress!

As for SOTU-db itself, the goals here can be split into "product goals" and "process goals." Product goals speak to what we want the finished product to do, or attributes we want it to have. Process goals describe processes, skills, and tasks that will go into the creation of SOTU-db and are more oriented toward my own development as a researcher and developer. These goals are further broken down by priority: goals that make up the "minimum viable product" are marked in bold text. Other goals are simply bulleted.

Product goals (objectives for finished digital project):

  • Create web interface with search at the forefront
  • Interactive cards to encourage user exploration and playful engagement
  • Search texts and generate basic visualizations of how frequently terms appear over time
  • Run more complex textual analyses like topic modeling, 
  • Interface allows many options and variables for interacting with data
  • Users can make documents that contain the text of SOTU addresses with certain topics, parts of speech, etc highlighted
  • Users will have a way to visualize the audience reaction to recent SOTU addresses
  • Each address will have an authoritative, digital edition

Process goals (objectives for learning):

  • Create and publish an interactive digital project
    • including UI design, and incorporating HCI best practices
  • Encode a document into TEI with a custom schema
  • Document the process of creating/cleaning datasets and all major project milestones through a blog or other documentation
  • Practice universal and accessible design practices throughout the project lifecycle
  • Create visualizations for texts in Processing
  • Gain experience and comfort with using Git and GitHub, including:
    • Running project website from GitHub pages
    • Using command line and Git as part of regular workflow
    • Using GitHub as master repository for all digital resources
  • Gain experience with textual analysis and scholarship using familiar texts
  • Learn to outline and code the user interface for this website
  • Explore textual analysis through R
  • Learn more about topic modeling and how it can be made useful to the average user
  • Create a schema and encode a text according to TEI guidelines
  • Use digital tools (Voyant) and languages (R) to work with familiar texts
  • Create meaningful visualizations around trends within and across documents
  • Figure out how to host, and how to handle user interaction (searches)

Development Update

This will be a straightforward and concise update on progress over the past several days. A separate blog post will be made with more information about the project's overall trajectory.
  • Requirements document: draft complete, available on GitHub (in documentation folder)
  • Personas document: draft complete, available on GitHub (in documentation folder)
  • Prototype screens: worked through some more prototype screens in Justinmind (in wireframes folder)
  • Speech plain text: created .txt files of text of each address, 1790-2006. Now have a total of 216 objects in library (in speeches-gutenberg folder)
All of the above are available on the SOTU-db GitHub repository.

The next steps are to begin to figure out how to get the web structure of the product built and published. I'm currently using GitHub Pages with Jekyll to run the project website, but I don't think this infrastructure will work for the actual project itself (I also need to update all the information and timeline on the site - that will be a goal for this week). It would probably be possible for me to create some basic HTML version of what I envision, but this might not be worth the effort since the final product will need to rely on much more than static HTML pages. Figuring out how to put the pieces together will definitely be a learning process! The goal is to have minimum viable product up and running by May 1! Stay tuned to this blog for more updates coming soon!