OPDB Development Roadmap
updated: 10/4/07

OPDB Version 1.1
Goal: Visual customization and login module architecture.
Status: Complete.

OPDB Version 1.2
Goal: Client to host syncing - the ability for one OPDB installation to publish into another.
Status: In progress
Target Release: October 30, 2007
- XML description specification for people, projects, resources, vendors, communities.

OPDB Version 1.3
Goal: Enable users create better entries - better photo handling. Better attachment handling. Better blogging.
Status: not started.
Target Release: Feb 28, 2008

1.    Browse.php Specs    - 01-10-08 (1st rev)
    - Create specification for new browse.php page.
    - allow any to any linking
        • add new elements to screenshot of current UI in photoshop w/ annotations and list describing annotations
        • also put into Google docs spec sheet.
2.    Supertab Specs    - 01-010-07 (1st rev)
    - specifies behaviors and look of supertabs (be very specific)
    - should grey-out and not link when there is no content
    - the current tab should not be a link
    - should indicate (with a number) how many content items are under the tab
    - improve code architecture for tabs and super tabs can be added/deleted
3.    Phototab design    - 01-12-07 (1st rev)
    - Add photo library page. Super-tab. 
    - create the design for the Phototab (show what phototab will look like w/ annotations and spec sheet) 
    - Allow unlimited photo library for project / entry
    - Allow larger images 600 px wide.
4.    Videotab design    - 01-12-07 (1st rev)
    - design how the videotab will look / represent
    - allow integration with youtube (add/link your youtube posted videos)
    - accommodate You Tube videos and Quicktime or other regular video format.
6.    Object-Info Spec   - 01-15-07 (1st rev)
    - Clearly specify and QA info fields for each object type.
    - write a spec for what the different object types will have in their info fields. (Meet with Michael)
7.    Attachments Tab Design    - 01-15-07 (1st rev)
8.    Supertab Justification Spec    - 01-15-07
    - spec for supertabs appear on what object types    
    - basically a definition of what justifies a supertab
    - point of spec is to be a design guideline if they want to extend the system (supertabs should be a way to append information that enhances a project)
9.    Weblog tab design    - 01-15-07
    -permalinks (link to page per entry, date being the link to just that entry)

10.    Consistency across object types. 
    - Allow all objects to have the same linking-tabs. 
    - Ensure visual and UI continuity across all object types.

11.    "Share with a friend" link on browse.php 01-15-07
    - Incorporate link into browse.php page design  - 01-10-08 (1st rev)
    - design the window/ interface for addressing the recipient
    - Design the format of the e-mail that gets sent
---------------------------------------------------------------------------------------------

OPDB Version 1.4
Goal: Improve project edit/linking interfaces and workflow, add ajaxy features to bring us up to par with web 2.0ness
Status: feature definition
Target release: June, 2008

Examples of websites we can reference here:
Yahoo Small Businesses, mouse over suggestions are nice
Cork'd, adding a wine workflow does a good job of telling a story about what is happening next
Flickr, how the view page is very similar to the edit page
LinkedIn, progress bar for a profile does a good job of continually prompting you to improve a profile and even giving you a grade

Features thoughts

Must do a better job of telling the story of how to make a successful entry.

Edit interface should be parallel to view interface, too formlike now
Photo/Image Issues - (for v1.3 phototab?)
Object Info Spec
Photo interface integrated across all photo circumstances
    - not presently in path for upload of weblog photo.
Remember me logged in, cookie sessions keep user logged in even when they leave the page (eval this with university ldap security_
Add 'report a bug/feature' to header next to log in, version bar.  Clicking this opens a quick form that submits a low priority bug to mantis. This allows users an avenue to vent frustration and we might get good data in aggregate (eg. large % users filing bug with a X)

Workflow Improvements
    Creating a project
    Registering for new account workflow
    Linking Tool / Workflow
        - Linking to an existing object. 
        - Linking to an object you need to create because it doesn't exist. 
        - Appropriate annotation features and suggestions for linking each object to object.

General UI Improvements
    - anchor tags for linking tabs, so when you click "resources" tab you don't reload back to the top of the page. 
    - make 'grayed-out' tabs more obvious (dave)
    - use anchors for changing tabs (dave)
        - instead of Ajax async
        - prevents browser from scrolling to the top
    - can we make any given field optional? (dave)
        - user may not care about some data so don't force them
    From edit interface, add '+' to each tab suggesting you can add an item to that tab

Incorporate applicable categories and items from feedback at bottom of document. 

- Edit feature: Allow saving of high res photos (admin can enable/disable high-res).
- Revisit and improve workflow of photo upload process. Make sure photo crop interface is used for weblog also.
- Details TBD based on feedback from universities.
- Consider adding CURL to help protect passwords. - ask dave for more detail.
- Revisit UI for uploading and cropping photos.
- create photo tagging function in enhanced photo editor - this will allow users to tag their images with links to other resources and people associated with the project (think facebook but better)
-



Facebook App V1
Goal: A plugin for people's facebook homepages so they can link their projects from facebook.
Status: Almost Complete.
Target release: January 10 , 2008.


Facebook App V2
Goal: A plugin for people's facebook homepages so they can link their projects from facebook.
Status: not started.
1) Creating an InventionDB account from facebook should automatically associate the facebook account. 
        - This was intended for when a user adds the application but has no projects, and gets the default page saying how to create an inventionDB account.
2) Link at top of iFrame for "view my friends projects"

 
Target release: un-set

-----  2008: we start getting clever with AJAX and Web 2.0 -----

OPDB Version 1.5
Goal: Enable super easy linking between objects in database, and super easy object creation for resources that don't exist.
Status: not started.
Target release: February 28, 2008
- need interaction spec from UI team / planning.
- direct interaction enabled by ajax or comparable.

OPDB Version 1.6
Goal: Global search - ability for an OPDB installation to search and link to objects in other OPDB installations. This compliments the Client-to-Host syncing.
Status: not started.
Target release: March 30, 2008
- need interaction spec from UI team / planning.
- config_global_search.php  file that allows an admin to specify their search domain.
- direct interaction enabled by ajax or comparable.
- This should be a configuration option on the administrators control panel (adding or removing OPDB search domains).

OPDB Version 1.7
Goal: Open source architecture: clean up code base and make robust for open source community.
Status: not started.
Target release: April 30, 2008
- use css and <div> tags instead of tables for page layout.
- remove any unused files.
- apply style guidelines to every file.
- comment throughout.

OPDB Version 1.8
Goal: Open source architecture: Create documentation!
Target release: May 30, 2008
- Create documentation.
- Build out developer website section on openprojectDB.com





Unplaced, Unprioritized, and User Feedback:
This stuff to be reviewed, and scheduled or striked out (with comment):
 
-   Visual linking map    - 01-17-07    
- Reduction of features by config file (fred's list email)
- Redo user and admin control panels.
- integration with flicker (link photo libraries)
- Automated registration for OPDB Client to Host syncing.
- Automated registration for OPDB .zip file download that automatically contains a serial number (unique identifier) certificate.
- Project Entry Goodness Meter.
- Redo layout code with <div> tags and remove dependency on tables.
- Wikipedia address on objects? OR maybe search wikipedia.
- Sign-in field does not auto-complete text.
- "unpublish" link should go to control panel anchor to section of unpublished entries.  
- Want to be able to enter projects that I haven't done - just to document into database.
- Want to be able to enter people also.
- Wikipedia link field for entries.
- Want to be able to link projects to projects.
- Want to be able to link vendors to projects.
- Email this to a friend link.
- Address info on Vendor page.
- Show vendors added on home page.
- Login module for no login at all - everyone has access to everything, like wikipedia.
- Anything can connect to anything.
    - every entry type has list of specially recognized connections (i.e. projects<->people w/authorship appear up top in main info).
- Improve attachment handling 
     - to allow all different file types.
     - allow upload of PDF, PNG, XLS, and other attachments.  In general allow for upload of any attachments that aren't executables or scripts.
- Editing
     - Edit tabs/pages should be structured analogous to view pages. 
     - Edit link on browse.php should move to more promiment place and should link to the edit tab for the supertab that is showing (i.e if the page is currently showing the photo tab, clicking edit should take the user to the edit-photos page). 
     - There should be a "access" tab for editing to set who can see a project. 
            -- checkbox: show project on home page of OPDB installation (or by name:  projects.cs.uml.edu)
            -- checkbox: show this project on Facebook (if user has facebook app registered)

- Hope page new feed
     - Updates on latest stuff. 
     - Make sure RSS works.



Unplaced Feedback from BJ at SJSU circa September 2007:

Installation Instructions - (
for v1.8?)
  1. We should consider including information either in the Installation Instructions or the Release Notes regarding the distributions we've tested installation on (e.g., CentOS, MacOSX, etc.).
  2. We should make it more clear how to get the download package (i.e., the Subversion address), since not everyone who installs OPDB will necessarily be familiar with Subversion. That is, we should write something like: cd/wherever; svn co svn://iaserver.macminicolo.net/openProjectDatabase/opdb.
  3. We should consider including more examples, for example, specific console commands or screenshots of console commands for configuring MySQL for OPDB, since this process may not be so easy for the typical "Solaris admin."
  4. Within the Installation Instructions, it might be useful to list what each package ( e.g., Freetype, PHP-GDlib, etc.) does within OPDB and why it's necessary ( e.g., the consequences of not installing these packages). That way, installers who read directions (many don't) will know why the packages are needed, without first installing OPDB and watching it fail.
  5. Although it's a no-brainer, we should remind the installers to actually create a database (it's trivial, but the error happens), since this obviously creates a problem, and list or show screenshots of the error messages that occur if installers omit this step.
  6. It would be helpful to include screenshots (e.g., of console commands) and VNC recorded videos within the Installation Instructions, and other installation documentation.  For example, if someone has a problem installing OPDB, they could more easily email us saying that they performed the steps shown in "Figure X" or "Video Y" and we could more easily help them. A good VNC recorder is " vnc2swf."
  7. When reminding users to enable the config files, we should mention that not enabling them could result in a blank screen, or what other errors manifest themselves by omitting this step ( i.e., it's good to list the errors/results of failing to perform a step within the installation procedures).
  8. Email the Installation Instructions and other documents via URL, whenever possible, and refrain from sending files created/saved in Windows Vista (e.g., Excel, Word, PowerPoint).  Windows Vista uses XML formatting (e.g., *.docx, *.xlsx), which isn't backward compatible without downloading add-ons.
Login Modules (LDAP) - (for v1.4?)
  1. B.J. mentioned that in LDAP, the login name should be "CN" (Common Name) because it's the only setting that's guaranteed to exist in LDAP.  Although it's commonly used, "Email" is not necessarily guaranteed to exist for LDAP systems.
  2. It's important that installers not bind anonymously to the LDAP server. They should bind as a user, and there should be a config option for this.
Installation Package (OPDB v1.X) - (for v1.4?)
  1. We should disable new_user.php, or anywhere new users can be created within the download package, for LDAP systems, since presumably OPDB won't be writing new users to SJSU's or anyone's LDAP database.
  2. We might consider creating an easy way for OPDB admins to change the word "Email:" in the login screen to something customizable, like "Login:", "LDAP:", or anything the admin wants.
It might also be good to move all the installation documentation to a Wiki, so others can edit it.  B.J. likes DocuWiki, which is neat because it doesn't require a database or pseudo-html knowledge (it just uses text files).  He also suggested checking out Drupal, which is a project documentation tool similar to OPDB.


Unplaced feedback from Greg & Scott when bug testing in January 2008:


Syncing Issues - (for v1.3?)
17. (fixed) The sandbox should allow automatic posting into inventiondb.com or another dummy installation of OPDB (the sandbox should have all the latest functionality enabled).

Photo/Image Issues - (for v1.3 phototab?)
5. (fixed) There should be a message to indicate the maximum photo size allowed for uploading because I sit and wait for my photo to upload and nothing happens.
6. A later uploading of an image overrides the previous designation of another photo as the first image, even when you don't specify the later image as appearing first.
7. The "viewable by everyone" option within a project is currently an "all or nothing" option.  For each photo or each resource there should be an independent option to make the information available to collaborators only.  This could be useful if there's some IP involved that isn't good to share with "everyone" but is good to share with "collaborators."
10. (for 1.4) There should be a way to upload photos via URL rather than just by uploading from a hard drive.
15. (revisit this) When organizing his photos at http://sandbox.openprojectdb.org/browse.php?cubeid=2902, we found out that there's no way to order the photos the way we wanted: cat, cat, cardboard box.  When you upload the cardboard box image, it automatically becomes the first image.  We wanted to always have the empty box last, but this was impossible, and it was generally impossible to order the images any way we wanted them.

Login Issues - (for v1.4?)
1. (bug to fix) When changing login email address, send a reminder email to the new email address.

IM Issues - (for v1.4?)
3. (easy feature fix) Add Google Talk / Jabber as an IM client.

Comment Issues - (for v1.4?)
11. (file as 1.4, workflow issue) When I write a comment without being logged in, I'm given the option to log in to make the comment associated with my account.  But when I log in, I'm taken away from the place where I already wrote my comment.  Likewise, when I log out, I'm taken back to the homepage and not the comment page, so I have to renavigate back, which is obnoxious.

URL Issues - (for v1.4?)
12. (bug fix in 1.31) The URL field within a project/resource overflows when it's too long and causes the page to look stretched.  It should be elipsed (...) after a limited number of characters without destroying the link.  See http://sandbox.openprojectdb.org/browse.php?cubeid=2898 for the example.

Resource Issues - (for v1.4?)
14. It took us a while to tell that when adding Greg's cardboard box as a "resource" that other people could edit his resource (this was a feature he wanted, but didn't believe existed, so there should be better explanations that explain what features exist).

Control Panel Issues - (for v1.4?)
18. (to be addressed in 1.4) The short description field within the control panel cuts off the number of characters unexpectedly--there's no warning or saving of characters beyond a certain point, nor is there any recommendation about when to start using the "long description" rather than the "short description."  The "long description" should be directly underneath the "short description" box and the number of characters left should be mentioned.

19. (fix in 1.4) Changing the "name" field in the OPDB control panel changes the "by" name listed at http://inventiondb.com/browse.php?cubeid=2926, but not the "by" name listed at http://inventiondb.com/listBox_projects.php.  Same with the sandboxed version.

Browser Issues - (for v1.5?)
2. Open outbound links in a new browser tab rather than the same browser tab.

Buddy/Collaborator Issues - (for v1.5?)
4. (think more about this) Once someone is linked as a buddy, only the creator can edit the buddy description.  Both people within the buddy relationship should be able to edit the buddy description.  There should also be a check box that allows people to approve or disapprove a buddy relationship, because it's public.  For example, once you create a buddy link, there's a choice to write in what kind of buddy this is.  Since you can say anything you want, and the other person can't do anything about it and its published to the world, there's nothing to stop someone from being creepy and describing a relationship and "lovers" without even knowing the person.
8. (bug to fix in 1.31) When you click the option to "edit" a "buddy" a new database link is created rather than editing the already existing relationship.  This should not be--the original relationship should be modified.
9. (bug fix in 1.31) The show my persons link doesn't do anything when editing a buddy relationship.  This should not be.  You shouldn't be able to add the same buddy multiple times.  There should be some check to prevent this from happening.
13. (fixed) You cannot add a collaborator for a resource by searching the database, or by searching within your friends.

Conceptual/Overall Vision Issues - (for v1.5?)
16. The concept of "open project" needs the option to be more wiki-like in that anyone should be able to add to and edit a project, if users allow this option.  That would be more powerful and more broadly useful than having the software just be "closed project, open source" as it is now.  Then, if you're collaborating on a solution to fusion, you might actually be able to find it with the combined help of other people.


Unplaced feedback from Scott when adding an LED project on March 15, 2008:
  1. (will be addressed in 1.4) I want to add a resource to my project by clicking a plus sign next to the resource tab within my project.  Not the resource tab at the top of the screen.
  2. (file as bug in 1.3) I added "CD" as a resource, but it wouldn't let me name it "CD" because it didn't have at least 3 characters.  How strange.  I added a period.
  3. (will be addressed in 1.4) It took me 5 minutes to figure out how to attribute my CD resource to my LED light project.  It should just do this automatically when I click a "+" sign on the resource tab.
  4. (a feature thought for 1.4) Images should be uploadable via URL.
  5. (will be addressed in 1.4, ajaxyness) Page shouldn't refresh everytime I switch tabs.  Page should just just toggle between "display:none" and "display" for the <div> for each tab.
  6. (this should be fixed for 1.3, idea: remove default uneditable text and prepopulate the text field with suggested text) The "share project" feature should allow me to edit the default email message, since it doesn't apply to what I want to say.  I didn't "find" my project.  I made it.


(will be addressed in 1.4) add a new photo dialog should be at the top as well as the bottom.admin options for photos should be on same page as normal photos page, not just in admin interface.
  •  Elaborate.  AI: Scott


consider view options by item, not just on project level (see item 7 in Greg's list above)
  •  Elaborate.  AI: Scott


(will be addressed in 1.4) add link to image already on the web option, not just image upload.(will be addressed in 1.4) revisit image ordering options(will be addressed in 1.4) Good idea. add issue 1 as bug, email a reminder to new email address with email address change(will be addressed in 1.4)  michael: Add Admin test interface... includes C2H testing, email engine testing, returns reports. Links from system admin page.(will be addressed in 1.4) add gchat/jabber as IM client option dropdown(will be addressed in 1.4) fix 12, url overflows and causes page ugliness
  • displayed URL should truncate:  http://docs.google.com/a/openp...
  • hyperlink should remain full URL


(will be addressed in 1.4) why can anyone edit any resource? we should have a simple control mechanism for this (without closing off the concept of "open project" (see #16 in Greg's feedback above)).  
  • in edit interface there should be design on top to clearly indicate how edit permissions apply to the object. 
  • Michael thinks resources and vendors should remain editable by anyone. 


  • We should consider revision history, or at least automatically connect the editing person as a contributor... maybe with a system message when saving ("Your name will be added as a contributor to this resource.  OK, No Thanks."




Unplaced feedback from Michael when adding an MP3 Player project on March 21, 2008:
  1. [social] Adding certain types of object links should require "acceptance" by the other party. For example, if I add another user to my project, it should require that user to confirm. I think this should be the case for connecting to any object that does not have public edit access. So connecting a project to a project would require confirmation by one of the authors of the receiving project. Connecting a project to a resource would not require confirmation b/c resources are publicly editable. 
  2. [viewer workflow] Every link needs to have suggested association notes (like how do you know this person on facebook), and should also allow write-ins. 
  3. [design suggestion] The white frame for the body should maintain a minumum vertical dimension for every page. Ok, to grow for longer content, but should not get shorter than page-height (600 px?) when content is shorter.
  4. [edit workflow] OPDB 1.4 Need to have Edit tabs identical to supertabs on the browse.php page. These tabs should show: info, weblog, images, attachments, video. (video should be broken out from attachments). 
  5. [edit workflow] Linking should have it's own Edit tab. (I think.  Opinions?)
  6. OPDB 1.4  EDIT / VIEW switch. 

    1. [design suggestion] There should be a visual toggle switch, perhaps like in iPhoto (or similar to iPhone aps), that switches into edit mode or save mode. OR maybe a frankenstien switch. Perhaps there should be a sound effect on switching.
    2. [edit workflow] Switching into edit mode, should always go to the right place, based on the context of what you are viewing. So if you are viewing videos on a project, then it should take you to the edit function for the video tab.
    3. [edit workflow] The same should be true for switching from edit mode to view mode... if you are editing videos, and switch to view, it should show you videos in view mode.
    4. [edit workflow] Switching from edit to view should save changes.  




       
              5. Add a cookie to remember a logged in user. 
    
Unplaced feedback from Dr. Furman at SJSU in April 2008:
  1. [feature request]  Dr. Furman asked if we could add a feature, by which students could place code in a folder structure in OPDB similar to the windows environment.  For example, if a group is developing an application, folder “App-1” would represent the entire project and sub folders  “student-1”, “student-2”,… would correspond to files added by each team member on that project.
  2. [feature request] SJSU is also interested in a version control feature for code development.