My favorites | Sign in
Project Logo
          
Search
for
Updated Jun 05, 2008 by mayankjain20
ClipboardSpec  
Specification and ideas for the Clipboard Project

Introduction

The objective of this project is to implement a clipboard in a webapplication. This functionality will allow the users to search, navigate through the webapplication and collect information in the clipboard. The clipboard information can then be reused for other functionalities thus making the workflow extremely simple and intuitive.

The challenge in the project will be to make the clipboard architecture generic. It should be general enough to be used for general purpose data collection activities and still maintaining its customizability for specific workflows. Thus allowing new workflows to be incorporated easily into the system.

The aim of this project is to elaborate a clipboard concept to be used within OLAT and demostrate a prototype with a choosen workflow.

Details

Basic Clipboard Properties

Basic Workflows

Clipboard can be used extensively to ease the information flow in OLAT. The possible workflows in which clipboard will be useful:

  1. Forum Posts
  2. Member List
  3. Learning Resources
  4. Participant Groups
  5. Bookmarks
  6. Test Questions

Another Class of Workflows

Advanced Clipboard Properties

Implementation Details

Existing Code

Snapshot of the scribbling i did while going through the code :). Code Image

Elaborating Work Flows

Forum Posts

  1. Copy Post to Clipboard
  2. Paste Post to Clipboard
  3. Tagging what is pasted to clipboard: Screenshot (like delicious plugin)

Screenshot Before: Current

Screenshot After: WithClipboard

Screenshot Tagging: To be made

Member List

  1. Copy a participant information to clipboard
  2. Parse Information
  3. Paste the participant information as required - Invitations for other courses, sending private message
  4. Tagging what is pasted to clipboard: Screenshot (like delicious plugin)

Screenshot Before: Current

Screenshot After: To be made

  • Checkbox on left - Like GMail
  • Menu for copying on Top - Like GMail (Select all, Copy selected to clipboard)

Screenshot Tagging: To be made Same as the forum

Coding Requirements

Here I am listing issues which are to be considered for the clipboard. I have not yet documented the solutions I have for the below. (needs more thinking)

  1. Support for pasting heterogenous content on to clipboard ?
  1. What to paste back ? How much to paste back ?
  1. Where will the paste buttons be ?
  1. I want to modify the content on clipboard before pasting it ?
  1. I want to tag the clipboard content ?
  1. I want to save and retrieve the clipboard session ?

Ideas

open questions

Current Activity


Application

Project SubTasks

Step 1: Design and Architecture for the clipboard plugin

Step 2: General Purpose Clipboard

Step 3: Implement custom clipboard for a specific workflow

Step 4: Generic functions to make clipboard implementation easy for other workflows.

Step 5: Documentation

Architecture Design

In this section, I am proposing a possible approach to this project. We can also explore other possible approaches as suggested by the community and the mentor.

The clipboard system using this approach would look something similar to Google Notebook to the end user. Here I present some architectural issues which will be suitably refined in the design and analysis phase of the project.

General Purpose Clipboard (Step 2 above)

Main Techonologies Involved: Javascript, AJAX, MYSQL

1) Floating text box on the right bottom corner of the webpage.

2) It will be easily minimizable, removable. (Similar to google chat window)

3) User can copy paste content to it.

4) Tagging of content will be allowed - The content added to clipboard this way

will be tagged as "GENERAL".

5) The floating box will autosave clipboard session(data) back to the server at

regular intervals and also on certain events (like page transition). This will be AJAX based thus requiring javascript to be enabled in the user's browser.

6) Database support for the Clipboard - Tables will be added to the database to store the

clipboard session information.
Table_Name: Clipboard_session Fields: session_id, tag_id, user_id, text, created_at, updated_at

Table_Name: Clipboard_tags Fields: tag_id, tag_type, tag_name (tag_type = {"PREDEFINED", "USERDEFINED"}

7) The clipboard information can be reused by the user easily by copy pasting it from the clipboard.

Customizing the General Purpose Clipboard for specific workflow

1) For each customization a prespecified tag of tag_type = "PREDEFINED" will be added to the Clipboard_tags table. e.g:- For users workflow the tag_name="User" and tag_type="USERDEFINED" will be added to the Clipboards_tags table automatically.

2) The VIEWS (of MVC), containing the workflow to be customized, will have a generic button which will allow the user to automatically add the workflow information to the clipboard with the workflow tag_type="PREDEFINED" and tag_name="USER". The above allows the user to navigate through the webapplication and collect the workflow information across many views and add it to the clipboard.

3) All the workflows which need to use the information collected will have a small button allowing them to retrieve information of the specific tag(eg:- tag_name="USER") from the clipboard.

Implementation Timeline

Phase 1: Architecture for the clipboard plugin

This phase will involve finalising the architecture after considering the issues occur while implementing with the current OLAT code base.

Phase 2: General Purpose Clipboard

This subtask will involve the major implementation task.

  1. Phase 2.1: A simple Prototype allowing the basic functionalities to give a proof of concept
  1. Phase 2.2: Extending the basic functionalities from phase 1.

Phase 3: Implement customization for a specific workflow

Extending the basic functionalities from phase 1.

Phase 4: Testing and Bug Fixes and GUI and other Improvements

Phase 5: Make Generic functions to make clipboard implementation easy for other workflows.

Phase 6: Documentation


Sign in to add a comment
Hosted by Google Code