|
ClipboardSpec
Specification and ideas for the Clipboard Project
IntroductionThe 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 PropertiesBasic WorkflowsClipboard can be used extensively to ease the information flow in OLAT. The possible workflows in which clipboard will be useful:
Another Class of Workflows
Advanced Clipboard Properties
Implementation DetailsExisting Code
Snapshot of the scribbling i did while going through the code :). Code Image Elaborating Work FlowsForum Posts
Screenshot Before: Current Screenshot After: WithClipboard Screenshot Tagging: To be made Member List
Screenshot Before: Current Screenshot After: To be made
Screenshot Tagging: To be made Same as the forum Coding RequirementsHere 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)
Ideasopen questions
Current Activity
ApplicationProject SubTasksStep 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 DesignIn 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 workflow1) 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 TimelinePhase 1: Architecture for the clipboard pluginThis phase will involve finalising the architecture after considering the issues occur while implementing with the current OLAT code base.
Phase 2: General Purpose ClipboardThis subtask will involve the major implementation task.
(Iteration 1 of the spiral model of software development)
Phase 3: Implement customization for a specific workflowExtending 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