The Augmented Library Milestones

From BenningtonWiki

Jump to: navigation, search

The Augmented Library

Contents

[edit] Design Milestones

Today is 8 January 2009

week target date milestone assigned to notes
1/2 March 4/11 #D1 - Project look and feel Jason, Robert Done
1 March 4 #D2 - Bookmark Design - First Draft Ben, Kyle Done
1 March 4 #D7 - UI Functionality David, Robert Done
2 March 11 #D2.1 - Bookmark Design - Final Draft Ben, Kyle [all] Done
2 March 11 #D8 - UI Wireframes David, Jason Done--edits continue
3/4 March 18/25 #D9 - UI Design Jason, Robert In progress
3 March 18 #D3 - Bookmark Design - Tech Integration Ben, Kyle In progress
4/5 March 25-April 1 #D4 - Bookmark Design - Production Ben, Kyle, Robert In progress
4 March 25 #D10 - Website Wireframe David In progress
5 April 1 #D13 - UI Tech Integration David, Jason In progress -- ongoing and concurrent with other tasks
6 April 8 #D11 - Website Design Robert, Jason, David
5/6 April 1, 8 #D4 - Bookmark Interface Station - Design Ben, Kyle, Robert [all] In progress
7 April 15 #D12 - Website Coding Robert, David, Jason
6/7 April 8, 15 #D5 - Bookmark Interface Station - Production Ben, Kyle
7/8 April 15/22 #D14 - Installation in library All Finalize everything for soft launch
9 April 22 #D14 - Soft launch, testing All

Robert will be involved in each milestone -- focusing more on some dependent on team needs.

[edit] D1 - Project look and feel

Establish style guide for all screen based elements (color palettes, linking conventions, content type delineation etc.)

Tasks

  • Done.Color palettes established.
  • Done.Research UI's that are best practice examples of what we want.
  • JasonIntegration of look and feel with wireframes/functionality for UI.
  • Jason/DavidDefine (textually) UI element states (dormant or not) and transitions (are elements animated and when.)

Question(s)

  • What does the Bookmark brand look like?
  • Is there a logo, wordmark?
  • Is there a system of icons?

[edit] D2 - Bookmark Design - First Draft

Design of Bookmark

Tasks

  • Done.Materials research/experimentation for Bookmark.
  • Done.Define behavior of Bookmark -- LED blinking etc.
  • Done.Draft of Bookmark form -- prep for specs from tech team (week one).

Question(s)

  • How does the bookmark look and feel?
  • How is the Bookmark integrated into the interface station?
  • What functionality does the tech team need to develop (blinking, programable etc.)

[edit] D2.1 - Bookmark Design - Final Draft

Design of Bookmarks

Tasks

  • Define 9 Bookmark forms.
  • Final draft of Bookmark designs/sketches.
  • Begin to identify strategy for production.

Question(s)

  • What are the books associated with the Bookmark forms?
  • Are we going to need to outsource anything -- CNC etc.? If so, where/who?

[edit] D3 - Bookmark Design - Tech Integration

Integrate technology into design.

Tasks

  • Redesign Bookmark to include actual technology.
  • Build functioning prototype
  • Test the prototype for durability, etc.

Question(s)

  • Does the design need to accommodate access to the circuit and/or the ability to replace the battery?

[edit] D4 - Bookmark Design - Production

Bookmark prototype is complete and working

Tasks

  • Order all materials.
  • Produce the Bookmarks.

Question(s)

  • How many do we need?
  • In house production or out source?

[edit] D4 - Bookmark Interface Station - Design

Design Bookmark stations for each floor of the library

Tasks

  • Specify locations for the stations.
  • Define what needs to be included--computer, screen, dock, recharging, storage, etc.
  • Material specifications.
  • Design the physical stations.
  • Prepare for production (plans etc)
  • Integrate Bookmark brand into the design.

Question(s)

  • Are the stations designed for the specifics of each floor or all the same?
  • What is the computer?
  • What is the screen?

[edit] D5 - Bookmark Interface Station - Production

Design Bookmark stations for each floor of the library

Tasks

  • Order materials.
  • Build the stations
  • Integrate technology and install

Question(s)

  • What skills and who do we need to enlist to help build?
  • Do we need to set aside budget $ for hiring help?

[edit] D7 - UI Functionality

All UI features defined and prioritized

Tasks

  • Outline all desired features - prioritize!
  • Prep for wireframes build.

Question(s)

[edit] D8 - UI Wireframes

All UI features translated into wireframes

Tasks

  • Wireframes for all UI screens created (illustrator.)
  • Include design specs (screen size, positioning, scale of elements) in prep for design.

[edit] D9 - UI Design

Wireframes translated into design

Tasks

  • Translation of wireframes to designed screens.
  • Close coordination with tech team necessary, so they know what is being designed and what they will need to build.

[edit] D10 - Website Wireframe

Outline of website and wireframe creation

Tasks

  • Create wireframe for each screen.

[edit] D11 - Website Design

Translate wireframe into design

Tasks

  • Create designs in preparation for coding.

[edit] D12 - Website Coding

Translate design into functioning code

Tasks

  • Site created in XHTML with CSS for all positioning etc.

[edit] D13 - UI Tech Integration

Fully functioning interface

  • Work with tech team as they build the UI.
  • Optimize graphics and hand off for insertion into UI by tech team. (sooner is better)

Tasks

  • Modify UI Design based on technical constraints, etc.

[edit] D14 - Installation in library

User interface installed into the library.

  • Everything installed in library and working.

Tasks

  • Install on floors

Question(s)

  • Do we need extra help? Identify help.
  • Do we need electrical/port drops in chosen locations (must be dealt with in prep. for installation)

[edit] D15 - Soft launch, testing

Fully functioning project (bookmarks, interfaces, website)

  • Everything installed in library and working.

Tasks

  • Observe users
  • Make adjustments/fine tune

[edit] Tech Milestones

Today is January 8, 2009

week target date milestone assigned to notes
1 March 4 #T3 - Processing UI elements Hannah Done.
2 March 11 #T1 - Battery-powered Bookmark Rebecca, Jess Continuing to investigate.
2 March 11 #T2 - Bookmark Communication Jess, Rebecca, Hannah Done.
2 March 11 #T4 - Basic Databasing Jess, Joe, Hannah, Luce Done.
4 March 25 #T5 - Draft of Functional UI Jess, Rebecca, Hannah
4 March 25 #T8 - Books and Users Jess, Hannah, Luce
5 April 1 #T9 - Text Entry Rebecca, Jess, Hannah
6 April 8
7 April 15
8 April 22 #T11 - Oceana Investigates All

[edit] T1 - Battery-powered Bookmark

Implementation of working Bookmark physical object, first draft.

  • Battery powered, rechargeable, drives RGB LED, can run three days on a charge.
  • Debug switches to change between five LED patterns.
  • Little or no attempt to integrate design elements, except that it should be the approximate size of final version.

Tasks

  • Done. Figure out how to power an Arduino mini with the 3.7V camera battery.
  • Done. Write a light blinking program (not necessarily RGB LED color cycling) on the Arduino mini and see how long it runs on a Canon camera battery.
  • Done. Find out what the specs say for power profile of the Arduino mini.
  • Done. I'll set up an account on bibliofile that we should all use for development. No svn.
  • Done. Get PWM RGB LED working. See if the power profile of a PWM program differs significantly. Mostly by just seeing how long it runs on a battery charge.
  • Jess See if there are other Atmel chips that would be better to use, size-wise and power-wise.
  • Done. Write a program that fades from one RGB color to another. Give it a source RGB, a destination RGB, and a length of time to fade.

[edit] T2 - Bookmark Communication

Demonstrate communication between Processing and a bookmark.

Setting a pattern. Connect a bookmark to a computer. Use Processing to signal the bookmark to change its pattern. The UI in Processing doesn't need to look anything like the final UI. Just a bunch of hotspots for clicking on, and a static piece of text with the bookmark ID.

Reading the bookmark ID. In response to a request from Processing the bookmark transmits its ID, which is displayed in the UI.

It's unspecified how the physical connection is made. It probably won't look anything like the final version of the dock. USB straight into the Arduino is most likely.

Tasks

  • Done. We'll probably use a two-wire serial interface (pins 0 and 1). Not using USB because we don't want to added circuitry on the Mini. -- Although... we could embed the USB interface in the dock so that the connection to the computer is USB, but the connection from dock to Mini would consist of the four wires TX/RX/+5/GND.
  • Rebecca Extend the RGB cycling program to look for input and respond.
  • Jess Define the serial communications protocol to use between Processing and the bookmark.
  • Done. Learn how to do serial IO in processing.
  • Done. Write the Processing front end.
  • Hannah Come up with a catchy name for Ruby+Processing.

[edit] T3 - Processing UI elements

Full-screen Processing app demonstrating basic UI elements.

  • Stand-along Processing app. Double-clickable fills screen. Doesn't matter what color or what the elements look like. Just show elementary control over fundamental UI.
  • Cycling between images.
  • Moving an image.
  • Clicking and responding.
  • Bonus points if the same program is playable in a windowed browser.

Tasks

  • Done. Get a Processing environment up and running.
  • Done. Not necessary to write a library for animation yet. Just demonstrate that we can do it.
  • There are probably animation libraries already out there. We should be able to steal most of the tech for this milestone.

[edit] T4 - Basic Databasing

Processing talks to the database.

  • It doesn't matter what info we're using. It can be a name or a number that we shove into the database manually. This is to show that we've got Processing retrieving real info from the database.
  • The database will be served by a Ruby app. Communications between Processing and Ruby will be via web protocols (AJAX).
  • The database will be running on MySQL.
  • We don't care what the Processing app looks like. We're not trying to look anything like the Bookmarks app. Just a big number or piece of text on a blank screen is enough.

Tasks

  • Done. Get a basic ramaze app up and running on bibliofile. Probably using a custom port number (7000).
  • Done. Set up a MySQL database for it.
  • Done. Use Sequel for database access from Ruby.
  • Done. Write the ramaze app to serve database info to the Processing front end.
  • Done. Find out what AJAX-like facilities exist in Processing. XML or JSON parsing would be excellent. We may need to write our own async http request and handler.

[edit] T5 - Draft of Functional UI

Processing app exhibiting core aspects of the real UI.

  • Dependent on evolving UI design.
  • Will be pulling real data out of the database. The database schema will look like the real thing.

Tasks

  • Integrate Processing animation from earlier with the databasing and the designed look and feel.

[edit] T6 - Final Bookmark

Final version of the Bookmark physical object and dock.

  • Incorporates all of the design elements and materials.
  • Bookmark is rechargeable and programmable from the dock.

Tasks

  • Ensure that the exposed power terminals on the dark dock are safe to the touch. Power draw meter?
  • Final power saving steps -- shutting down chip parts, slowing it down?
  • Time of day, going to sleep (if possiblé) in the middle of la noche.

[edit] T7 - Final UI

Final version of Processing app, integrating all design elements.

  • Able to create and review comments stored in db.
  • Able to communicate with Bookmark.

Tasks

  • TBD

[edit] T8 - Books and Users

Demonstrate mastery over the library catalog and user database. Includes barcode scanning from Processing.

Scanning a book. User places a book from the library under a scanner attached to the Mac Mini. Processing reads the scanner and displays the name of the book. Processing gets the book name from the Ruby database server.

Logging in. Processing accepts a user name and student ID. Communicates with the Ruby db to determine if the combination is valid.

Tasks

  • Rebecca Get a snapshot of the catalog and user database.
  • Luce Develop a schema in MySQL for items and users. Import the catalog and user db into it. Design it so that it can be merged with future snapshots from the library.
  • OR -- much better would be to develop a way to access the catalog and user db live.
  • Done. Research scanners. Send options to the Design group. Acquire one (not necessarily the final model).
  • Done. Read scans from the barcode scanner.
  • Hannah, Jess Have Processing talk to the ruby catalog and display the name of the book scanned.

Misc

[edit] T9 - Text Entry

Develop a touch-screen (or mouse-driven) onscreen keyboard. Use it to enter text into a text edit box.

Input. User can bring up the onscreen keyboard. Presses or mouse clicks are recognized and entered into a text box.

Editing text. Text can be edited in the text box. Basic editing actions are handled: backspace, cursor positioning, deleting. Text box shows word wrap. Has vertical scroll bar?

Tasks

  • Rebecca Research onscreen keyboard designs. Coordinate with Design folks on final look.
  • Joe Implement a dynamic text box.
  • Rebecca Implement onscreen keyboard.

[edit] T10 - Scrolling List UI Element

Draw a list in a box with a vertical scroll bar.

Tasks

  • Tasks necessary to get to the milestone.

[edit] T11 - Oceana Investigates

  • Oceana's Exploration. Oceana first walks up to the computer. She clicks on a hex, and it's message appears. She then continues to click on the book title. By doing this the message itself stays the same, but all the hexes in the background change to the ones that relate to the book title previously clicked on. Along with that, all the hexes in the background turn purple because she is only viewing a book.
  • Oceana Logs In. She clicks on the log in option, a text entry field comes up along with the keyboard. She either types in her info or she scans her id card. She might also just scan her id without clicking log in.
  • Oceana Browses. She is now able to look through the messages and books, browsing around. She then continues to pick up a book and then scans it. A new message dialog comes up if a message hasn't been left for that book before. She then is able to save the message.

Notes

  • 'Help' and 'About' should work by this time, which she can browse.
  • Tags, bookmark related things, and related messages in the log in won't work.
  • We wish to have scrolling in the messages, but are not making it a main priority.
  • Clicking log in closes an open Message. Scanning an id without clicking log in leaves the Message up.

Tasks

  • Hexes need to represent real messages.
  • Load the db with messages for a few select books.
  • Message needs to show real info for a given db message.
  • Selecting hexes by clicking on items in the Message (title, author, etc.).
  • Cloud needs 'invisible' selection rules: last 100 messages. Others?
  • Whatever the db needs (media type, etc.).
  • Patron db, connected to log in.
  • Entering and saving messages.
  • Scanning a book flow.

[edit] Tn - title

Short statement of the milestone.

  • Specifics of the milestone.
  • More specifics.

Tasks

  • Tasks necessary to get to the milestone.

[edit] Project Milestones

[edit] P1 - title

Short statement of the milestone.

  • Specifics of the milestone.
  • More specifics.

Tasks

  • Tasks necessary to get to the milestone.

[edit] P2 - title

Short statement of the milestone.

  • Specifics of the milestone.
  • More specifics.

Tasks

  • Tasks necessary to get to the milestone.
int ledPinOne = 7;                 // LED connected to digital pin 7
int ledPinTwo = 8;                 // LED connected to digital pin 8
int ledPinThree = 9;                 // LED connected to digital pin 9

void setup()
{
  pinMode(ledPinOne, OUTPUT);      // sets the digital pin as output
  pinMode(ledPinTwo, OUTPUT);      // sets the digital pin as output
  pinMode(ledPinThree, OUTPUT);      // sets the digital pin as output
}

void loop()
{
  digitalWrite(ledPinOne, HIGH);   // sets the LED on
  delay(1000);                  // waits for a second
  digitalWrite(ledPinTwo, HIGH);   // sets the LED on
  delay(1000);                  // waits for a second
  digitalWrite(ledPinThree, HIGH);   // sets the LED on
  delay(1000);                  // waits for a second

  digitalWrite(ledPinOne, LOW);    // sets the LED off
  delay(1000);                  // waits for a second
  digitalWrite(ledPinTwo, LOW);    // sets the LED off
  delay(1000);                  // waits for a second
  digitalWrite(ledPinThree, LOW);    // sets the LED off
  delay(1000);                  // waits for a second
}
Personal tools