SlideShare une entreprise Scribd logo
1  sur  44
MULTI USER WHITEBOARD
WEB APPLICATION
I AM,
• Andun S.L. Gunawardana
• Co- Founder, Sith Solutions (Pvt) Ltd Sri Lanka and emoJot USA
• Undergraduate of Computer Science and Engineering Department
University of Moratuwa, Sri Lanka
• GSoC 2013 Student – Apache OpenMeetings
• Contributor – Apache WicketStuff, Apache Synapse, Apache Airavata,
Apache Axis2
• Software Engineering Intern @ WSO2 - A GSoC Mentoring Organization
Contributor for WSO2 ESB – World’s fastest ESB, WSO2 Identity Server,
WSO2 Application Server, WSO2 Clarity Framework

• Premier interest in SOA, Middleware and Cloud
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
WHAT IS APACHE OPENMEETINGS

http://openmeetings.apache.org/
WHAT IS APACHE OPENMEETINGS
• Apche Openmeetings provides video conferencing, instant
messaging, white board, collaborative document editing and other
groupware tools using API functions of the Red5 Streaming Server
for Remoting and Streaming.

• OpenMeetings is initiated as a separate Google Code Project
(http://code.google.com/p/openmeetings/) and later it joined
Apache
WHAT IS APACHE OPENMEETINGS
WHAT IS APACHE OPENMEETINGS
• All the groupware features of Apache OpenMeetings are designed
inside a one major component called Room. Users can create
rooms with number of groupware tools and share them among
group of people. People who enter these rooms can use these
groupware tools in their collaborative work.
WHAT IS APACHE OPENMEETINGS
WHAT IS APACHE OPENMEETINGS
• Features
• Audio and Video Conferencing
• Meeting recording and Screen sharing
• File Explorer
• Moderating System
• Multi-Whiteboard and Chat
WHAT IS APACHE OPENMEETINGS
• Features
• User and room management
• Private message center
• Plan meetings with integrated calendar
• Polls and Votes
• Backup
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
WHAT IS A MULTI USER WHITEBOARD WEB
APPLICATION?
• White board provides drawing, writing, Drag n' Drop, Resizing, Adding Images
(Drag n' Drop from File-Explorer), Adding Symbol(s)/Cliparts .

• Can add a wide range of document formats (PDF, DOC, ODT, PPT etc.)
WHAT IS A MULTI USER WHITEBOARD WEB
APPLICATION?
• Save Content, Load from Saved Content
• Zooming, Navigating
WHAT IS A MULTI USER WHITEBOARD WEB
APPLICATION?
• Multiple Users Simultaneously
• Synchronization of Content Manipulation

• Many Instances of Whiteboard
WHAT IS A MULTI USER WHITEBOARD WEB
APPLICATION?
WHAT IS A MULTI USER WHITEBOARD WEB
APPLICATION?
WHAT IS A MULTI USER WHITEBOARD WEB
APPLICATION?
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
HOW THE WHITEBOARD IS BUILD USING GOOGLE
CLOSURE AND APACHE WICKET
• Whiteboard is a commonly used component in web application
development
• It is really useful if there is a generic whiteboard component which
is integrated to our development – A Reusable Component
• Considering that we have developed a generic whiteboard
component using Google Closure Library and Apache Wicket web
application development framework in my Google Summer of
Code Project
HOW THE WHITEBOARD IS BUILD USING GOOGLE
CLOSURE AND APACHE WICKET
• We used the JavaScript based whiteboard which is developed
by Andrey Bogdanov (https://github.com/bay73/whiteboard)
• It is build using Google Closure Tools. Google Closure Tools is a set
of tools to help developers build rich web applications with
JavaScript. It was developed by Google for use in their web
applications such as Gmail, Google Docs and Google Maps.
HOW THE WHITEBOARD IS BUILD USING GOOGLE
CLOSURE AND APACHE WICKET
• Prime target of my project was Apache OpeMeetings 3.1.0 release.
• Earlier versions of Apache OpeMeetings has been developed using
Openlaszlo Framework and Flash.

• 3.0.0 onwards, Apache OpeMeetings is completely developed
using HTML5, Apache Wicket
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
WHAT IS APACHE WICKET?
• Apache Wicket, commonly referred to as Wicket, is a lightweight
component-based web application framework for the Java
programming language
WHAT IS APACHE WICKET?
• XHTML part of a web page in Wicket,
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd"
xml:lang="en" lang="en">
<body>
<span wicket:id="message" id="message">Message goes here</span>
</body>
</html>
WHAT IS APACHE WICKET?
• Java part of the same web page in Wicket,
package org.wikipedia.wicket;

import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;

public class HelloWorld extends WebPage {
public HelloWorld() {
add(new Label("message", "Hello World!"));
}
}
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
WHY APACHE WICKET?
• Less technologies
There are just two technologies: Java and XHTML.

• Separation between layout and logic / JSP-free
In Wicket all the logic is in Java-code which makes it compile-save, unit
testable and debugable

• Refactoring capabilities / Keep the business logic up-to-date
WHY APACHE WICKET?
• Components
Every web application is developed as components. The logic for a
business aspect is encapsulated in a component or in some
components which can interact with each other. Components are
reusable. Thus saves development time and avoids duplicated code

• Pure Object-Orientation
• No session wasting and safe flows
In classic MVC applications everything was stored in the session. The
developer forget to cleanup the session and it got bigger and bigger.
Nobody knows what's in it. This can cause performance and security
leaks
WHY APACHE WICKET?
• Free and Open Sourced product which has a highly dynamic and
very big developer community
• Higher quality and stability
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
THE MULTI USER WHITEBOARD
• Hosted in WicketStuff repository. Which is the main repository for reusable
Wicket Components.

• https://github.com/wicketstuff/core/wiki/Whiteboard
• Initial version of the Whiteboard provides,
• Draw basic geometric shapes like point, lines, circles, rectangles, curves, arrows
• Insert pictures & background images
• Basic manipulations like zooming, moving, undo
• Save/Load content
THE MULTI USER WHITEBOARD
• Integrated via Maven
<dependency>
<groupId>org.wicketstuff</groupId>
<artifactId>wicketstuff-whiteboard</artifactId>

<version>6.11</version>
</dependency>
THE MULTI USER WHITEBOARD
• Can be added to web page with two lines,
XHTML,
<div wicket:id="whiteboardContainer"></div>

JAVA,
Whiteboard whiteboard = new Whiteboard("Unique Id for
Whiteboard","whiteboardContainer", "JSON String representing a saved Whiteboard.
Can be null", "Location of the Pictures Folder. Relative to Context Root. Can be null",
"Location of the Background Images Folder. Relative to Context Root. Can be null");
add(whiteboard);
THE MULTI USER WHITEBOARD
• Can be added to web page with two lines,
XHTML,
<div wicket:id="whiteboardContainer"></div>

JAVA,
Whiteboard whiteboard = new Whiteboard("Unique Id for
Whiteboard","whiteboardContainer", "JSON String representing a saved Whiteboard.
Can be null", "Location of the Pictures Folder. Relative to Context Root. Can be null",
"Location of the Background Images Folder. Relative to Context Root. Can be null");
add(whiteboard);
THE MULTI USER WHITEBOARD
• Whiteboard content is represented in JSON
{"background": {
"height": 326,
"width": 595.0481927710844,
"left": -297.5240963855422,
"type": "Background",
"url": "http://localhost:8080/Documents/gmaps.jpg",
"top": 163
}, "elements": [
{
"id": 5,
"p2": 4,
"color": "",
"p1": 3,
"trace": false,
"hidden": false,
"label": "",
"type": "PencilCircle“
},
}
THE MULTI USER WHITEBOARD
• Synchronization of Content, Save Content, Load Content
functionalities use the JSON representation
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
DEMO
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
WHAT IS NEXT ?
• Adding,

• Doc Sharing capability on Whiteboard
• Adding complex drawing functionalities
• Adding graph tools
MY AGENDA
What is Apache OpenMeetings
What is a Multi User Whiteboard Web Application?
How the Whiteboard is build using Google Closure and Apache Wicket
What is Apache Wicket?
Why Apache Wicket?
The Multi User Whiteboard
Demo

What is Next?
Useful Urls
USEFUL URLS
• https://github.com/wicketstuff/core/wiki/Whiteboard

• https://github.com/wicketstuff/core/tree/master/jdk-1.6parent/whiteboard-parent
• http://www.googlemelange.com/gsoc/proposal/review/google/gsoc2013/an
dunslg/5747559595245568
• https://github.com/wicketstuff/core
THANK YOU!

Contenu connexe

Tendances

Introduction to Drupal, Wayne Eaker, Nov 11, 09
Introduction to Drupal, Wayne Eaker, Nov 11, 09 Introduction to Drupal, Wayne Eaker, Nov 11, 09
Introduction to Drupal, Wayne Eaker, Nov 11, 09 Lunch Ann Arbor Marketing
 
Introduction to Drupal
Introduction to DrupalIntroduction to Drupal
Introduction to Drupalsdmaxey
 
What is Drupal? An Introduction to Drupal 8
What is Drupal? An Introduction to Drupal 8What is Drupal? An Introduction to Drupal 8
What is Drupal? An Introduction to Drupal 8Suzanne Dergacheva
 
Deployer - Deployment tool for PHP
Deployer - Deployment tool for PHPDeployer - Deployment tool for PHP
Deployer - Deployment tool for PHPhernanibf
 
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017Rob Reynolds
 
Running a Successful Open Source Project
Running a Successful Open Source ProjectRunning a Successful Open Source Project
Running a Successful Open Source ProjectRob Reynolds
 
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...Acquia
 
What is WordPress Introduction to the CMS
What is WordPress Introduction to the CMSWhat is WordPress Introduction to the CMS
What is WordPress Introduction to the CMSthe-colab
 
WHAT IS HTML5? (at CSS Nite Osaka)
WHAT IS HTML5? (at CSS Nite Osaka)WHAT IS HTML5? (at CSS Nite Osaka)
WHAT IS HTML5? (at CSS Nite Osaka)Shumpei Shiraishi
 
Modern Software Management on Windows with Chocolatey and Puppet
Modern Software Management on Windows with Chocolatey and PuppetModern Software Management on Windows with Chocolatey and Puppet
Modern Software Management on Windows with Chocolatey and PuppetRob Reynolds
 
Microsoft PT TechRefresh html win8.1
Microsoft PT TechRefresh html win8.1 Microsoft PT TechRefresh html win8.1
Microsoft PT TechRefresh html win8.1 Alexandre Marreiros
 
Microsoft Azure in der Praxis
Microsoft Azure in der PraxisMicrosoft Azure in der Praxis
Microsoft Azure in der PraxisYvette Teiken
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Ryan Cuprak
 
Meet The Family (Philippines Remix)
Meet The Family (Philippines Remix)Meet The Family (Philippines Remix)
Meet The Family (Philippines Remix)Beau Lebens
 
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)Howard Greenberg
 
OpenNTF Webinar, October 2020
OpenNTF Webinar, October 2020OpenNTF Webinar, October 2020
OpenNTF Webinar, October 2020Howard Greenberg
 

Tendances (20)

Introduction to Drupal, Wayne Eaker, Nov 11, 09
Introduction to Drupal, Wayne Eaker, Nov 11, 09 Introduction to Drupal, Wayne Eaker, Nov 11, 09
Introduction to Drupal, Wayne Eaker, Nov 11, 09
 
Introduction to Drupal
Introduction to DrupalIntroduction to Drupal
Introduction to Drupal
 
What is Drupal? An Introduction to Drupal 8
What is Drupal? An Introduction to Drupal 8What is Drupal? An Introduction to Drupal 8
What is Drupal? An Introduction to Drupal 8
 
Deployer - Deployment tool for PHP
Deployer - Deployment tool for PHPDeployer - Deployment tool for PHP
Deployer - Deployment tool for PHP
 
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
Software Management with PowerShell DSC and Chocolatey - PowerShell Summit 2017
 
Drupal
DrupalDrupal
Drupal
 
Looking into HTML5 + CSS3
Looking into HTML5 + CSS3Looking into HTML5 + CSS3
Looking into HTML5 + CSS3
 
Running a Successful Open Source Project
Running a Successful Open Source ProjectRunning a Successful Open Source Project
Running a Successful Open Source Project
 
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
 
What is WordPress Introduction to the CMS
What is WordPress Introduction to the CMSWhat is WordPress Introduction to the CMS
What is WordPress Introduction to the CMS
 
WHAT IS HTML5? (at CSS Nite Osaka)
WHAT IS HTML5? (at CSS Nite Osaka)WHAT IS HTML5? (at CSS Nite Osaka)
WHAT IS HTML5? (at CSS Nite Osaka)
 
Modern Software Management on Windows with Chocolatey and Puppet
Modern Software Management on Windows with Chocolatey and PuppetModern Software Management on Windows with Chocolatey and Puppet
Modern Software Management on Windows with Chocolatey and Puppet
 
Microsoft PT TechRefresh html win8.1
Microsoft PT TechRefresh html win8.1 Microsoft PT TechRefresh html win8.1
Microsoft PT TechRefresh html win8.1
 
Microsoft Azure in der Praxis
Microsoft Azure in der PraxisMicrosoft Azure in der Praxis
Microsoft Azure in der Praxis
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
 
Meet The Family (Philippines Remix)
Meet The Family (Philippines Remix)Meet The Family (Philippines Remix)
Meet The Family (Philippines Remix)
 
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
September-2021 OpenNTF Webinar: Domino Online Meeting Integration (DOMI)
 
OpenNTF Webinar, October 2020
OpenNTF Webinar, October 2020OpenNTF Webinar, October 2020
OpenNTF Webinar, October 2020
 
Beginners Guide to Drupal
Beginners Guide to DrupalBeginners Guide to Drupal
Beginners Guide to Drupal
 
Boot strapandresponsiveintro
Boot strapandresponsiveintroBoot strapandresponsiveintro
Boot strapandresponsiveintro
 

Similaire à Reusable Whiteboard Wicket Component for Apache Openmeetings

Exploring pwa for shopware
Exploring pwa for shopwareExploring pwa for shopware
Exploring pwa for shopwareSander Mangel
 
Open Source Junction: Apache Wookie and W3C Widgets
Open Source Junction: Apache Wookie and W3C WidgetsOpen Source Junction: Apache Wookie and W3C Widgets
Open Source Junction: Apache Wookie and W3C Widgetsscottw
 
13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...AEGIS-ACCESSIBLE Projects
 
Html5 workshop part 1
Html5 workshop part 1Html5 workshop part 1
Html5 workshop part 1NAILBITER
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum SlidesAbhishek Gupta
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeededm00se
 
Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Commit University
 
MOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEMOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEVishal Mittal
 
CloudEngine at Dev8D 2011
CloudEngine at Dev8D 2011CloudEngine at Dev8D 2011
CloudEngine at Dev8D 2011Nick Freear
 
VAST 8.0
VAST 8.0VAST 8.0
VAST 8.0ESUG
 
HTML5: the new frontier of the web
HTML5: the new frontier of the webHTML5: the new frontier of the web
HTML5: the new frontier of the webIvano Malavolta
 
Rave in Context @ ApacheCon 2011
Rave in Context @ ApacheCon 2011Rave in Context @ ApacheCon 2011
Rave in Context @ ApacheCon 2011Sander van der Waal
 
Neev Open Source Contributions
Neev Open Source ContributionsNeev Open Source Contributions
Neev Open Source ContributionsNeev Technologies
 
Mihai tataran developing modern web applications
Mihai tataran   developing modern web applicationsMihai tataran   developing modern web applications
Mihai tataran developing modern web applicationsITCamp
 
HTML5 Trends + Cascade Server CMS by Uzo Okafor
HTML5 Trends + Cascade Server CMS by Uzo OkaforHTML5 Trends + Cascade Server CMS by Uzo Okafor
HTML5 Trends + Cascade Server CMS by Uzo Okaforhannonhill
 
HTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentHTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentTilak Joshi
 
WEB DEVELOPMENT.pptx
WEB DEVELOPMENT.pptxWEB DEVELOPMENT.pptx
WEB DEVELOPMENT.pptxRajnirani18
 

Similaire à Reusable Whiteboard Wicket Component for Apache Openmeetings (20)

Exploring pwa for shopware
Exploring pwa for shopwareExploring pwa for shopware
Exploring pwa for shopware
 
Open Source Junction: Apache Wookie and W3C Widgets
Open Source Junction: Apache Wookie and W3C WidgetsOpen Source Junction: Apache Wookie and W3C Widgets
Open Source Junction: Apache Wookie and W3C Widgets
 
13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...
 
Html5 workshop part 1
Html5 workshop part 1Html5 workshop part 1
Html5 workshop part 1
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
 
Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta
 
Html5 phillycc
Html5 phillyccHtml5 phillycc
Html5 phillycc
 
MOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEMOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITE
 
CloudEngine at Dev8D 2011
CloudEngine at Dev8D 2011CloudEngine at Dev8D 2011
CloudEngine at Dev8D 2011
 
VAST 8.0
VAST 8.0VAST 8.0
VAST 8.0
 
HTML5: the new frontier of the web
HTML5: the new frontier of the webHTML5: the new frontier of the web
HTML5: the new frontier of the web
 
Os php-wiki1-pdf
Os php-wiki1-pdfOs php-wiki1-pdf
Os php-wiki1-pdf
 
Rave in Context @ ApacheCon 2011
Rave in Context @ ApacheCon 2011Rave in Context @ ApacheCon 2011
Rave in Context @ ApacheCon 2011
 
Neev Open Source Contributions
Neev Open Source ContributionsNeev Open Source Contributions
Neev Open Source Contributions
 
Mihai tataran developing modern web applications
Mihai tataran   developing modern web applicationsMihai tataran   developing modern web applications
Mihai tataran developing modern web applications
 
HTML5 Trends + Cascade Server CMS by Uzo Okafor
HTML5 Trends + Cascade Server CMS by Uzo OkaforHTML5 Trends + Cascade Server CMS by Uzo Okafor
HTML5 Trends + Cascade Server CMS by Uzo Okafor
 
HTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentHTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web Development
 
Always on! ... or not?
Always on! ... or not?Always on! ... or not?
Always on! ... or not?
 
WEB DEVELOPMENT.pptx
WEB DEVELOPMENT.pptxWEB DEVELOPMENT.pptx
WEB DEVELOPMENT.pptx
 

Dernier

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Dernier (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

Reusable Whiteboard Wicket Component for Apache Openmeetings

  • 2. I AM, • Andun S.L. Gunawardana • Co- Founder, Sith Solutions (Pvt) Ltd Sri Lanka and emoJot USA • Undergraduate of Computer Science and Engineering Department University of Moratuwa, Sri Lanka • GSoC 2013 Student – Apache OpenMeetings • Contributor – Apache WicketStuff, Apache Synapse, Apache Airavata, Apache Axis2 • Software Engineering Intern @ WSO2 - A GSoC Mentoring Organization Contributor for WSO2 ESB – World’s fastest ESB, WSO2 Identity Server, WSO2 Application Server, WSO2 Clarity Framework • Premier interest in SOA, Middleware and Cloud
  • 3. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 4. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 5. WHAT IS APACHE OPENMEETINGS http://openmeetings.apache.org/
  • 6. WHAT IS APACHE OPENMEETINGS • Apche Openmeetings provides video conferencing, instant messaging, white board, collaborative document editing and other groupware tools using API functions of the Red5 Streaming Server for Remoting and Streaming. • OpenMeetings is initiated as a separate Google Code Project (http://code.google.com/p/openmeetings/) and later it joined Apache
  • 7. WHAT IS APACHE OPENMEETINGS
  • 8. WHAT IS APACHE OPENMEETINGS • All the groupware features of Apache OpenMeetings are designed inside a one major component called Room. Users can create rooms with number of groupware tools and share them among group of people. People who enter these rooms can use these groupware tools in their collaborative work.
  • 9. WHAT IS APACHE OPENMEETINGS
  • 10. WHAT IS APACHE OPENMEETINGS • Features • Audio and Video Conferencing • Meeting recording and Screen sharing • File Explorer • Moderating System • Multi-Whiteboard and Chat
  • 11. WHAT IS APACHE OPENMEETINGS • Features • User and room management • Private message center • Plan meetings with integrated calendar • Polls and Votes • Backup
  • 12. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 13. WHAT IS A MULTI USER WHITEBOARD WEB APPLICATION? • White board provides drawing, writing, Drag n' Drop, Resizing, Adding Images (Drag n' Drop from File-Explorer), Adding Symbol(s)/Cliparts . • Can add a wide range of document formats (PDF, DOC, ODT, PPT etc.)
  • 14. WHAT IS A MULTI USER WHITEBOARD WEB APPLICATION? • Save Content, Load from Saved Content • Zooming, Navigating
  • 15. WHAT IS A MULTI USER WHITEBOARD WEB APPLICATION? • Multiple Users Simultaneously • Synchronization of Content Manipulation • Many Instances of Whiteboard
  • 16. WHAT IS A MULTI USER WHITEBOARD WEB APPLICATION?
  • 17. WHAT IS A MULTI USER WHITEBOARD WEB APPLICATION?
  • 18. WHAT IS A MULTI USER WHITEBOARD WEB APPLICATION?
  • 19. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 20. HOW THE WHITEBOARD IS BUILD USING GOOGLE CLOSURE AND APACHE WICKET • Whiteboard is a commonly used component in web application development • It is really useful if there is a generic whiteboard component which is integrated to our development – A Reusable Component • Considering that we have developed a generic whiteboard component using Google Closure Library and Apache Wicket web application development framework in my Google Summer of Code Project
  • 21. HOW THE WHITEBOARD IS BUILD USING GOOGLE CLOSURE AND APACHE WICKET • We used the JavaScript based whiteboard which is developed by Andrey Bogdanov (https://github.com/bay73/whiteboard) • It is build using Google Closure Tools. Google Closure Tools is a set of tools to help developers build rich web applications with JavaScript. It was developed by Google for use in their web applications such as Gmail, Google Docs and Google Maps.
  • 22. HOW THE WHITEBOARD IS BUILD USING GOOGLE CLOSURE AND APACHE WICKET • Prime target of my project was Apache OpeMeetings 3.1.0 release. • Earlier versions of Apache OpeMeetings has been developed using Openlaszlo Framework and Flash. • 3.0.0 onwards, Apache OpeMeetings is completely developed using HTML5, Apache Wicket
  • 23. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 24. WHAT IS APACHE WICKET? • Apache Wicket, commonly referred to as Wicket, is a lightweight component-based web application framework for the Java programming language
  • 25. WHAT IS APACHE WICKET? • XHTML part of a web page in Wicket, <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" xml:lang="en" lang="en"> <body> <span wicket:id="message" id="message">Message goes here</span> </body> </html>
  • 26. WHAT IS APACHE WICKET? • Java part of the same web page in Wicket, package org.wikipedia.wicket; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; public class HelloWorld extends WebPage { public HelloWorld() { add(new Label("message", "Hello World!")); } }
  • 27. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 28. WHY APACHE WICKET? • Less technologies There are just two technologies: Java and XHTML. • Separation between layout and logic / JSP-free In Wicket all the logic is in Java-code which makes it compile-save, unit testable and debugable • Refactoring capabilities / Keep the business logic up-to-date
  • 29. WHY APACHE WICKET? • Components Every web application is developed as components. The logic for a business aspect is encapsulated in a component or in some components which can interact with each other. Components are reusable. Thus saves development time and avoids duplicated code • Pure Object-Orientation • No session wasting and safe flows In classic MVC applications everything was stored in the session. The developer forget to cleanup the session and it got bigger and bigger. Nobody knows what's in it. This can cause performance and security leaks
  • 30. WHY APACHE WICKET? • Free and Open Sourced product which has a highly dynamic and very big developer community • Higher quality and stability
  • 31. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 32. THE MULTI USER WHITEBOARD • Hosted in WicketStuff repository. Which is the main repository for reusable Wicket Components. • https://github.com/wicketstuff/core/wiki/Whiteboard • Initial version of the Whiteboard provides, • Draw basic geometric shapes like point, lines, circles, rectangles, curves, arrows • Insert pictures & background images • Basic manipulations like zooming, moving, undo • Save/Load content
  • 33. THE MULTI USER WHITEBOARD • Integrated via Maven <dependency> <groupId>org.wicketstuff</groupId> <artifactId>wicketstuff-whiteboard</artifactId> <version>6.11</version> </dependency>
  • 34. THE MULTI USER WHITEBOARD • Can be added to web page with two lines, XHTML, <div wicket:id="whiteboardContainer"></div> JAVA, Whiteboard whiteboard = new Whiteboard("Unique Id for Whiteboard","whiteboardContainer", "JSON String representing a saved Whiteboard. Can be null", "Location of the Pictures Folder. Relative to Context Root. Can be null", "Location of the Background Images Folder. Relative to Context Root. Can be null"); add(whiteboard);
  • 35. THE MULTI USER WHITEBOARD • Can be added to web page with two lines, XHTML, <div wicket:id="whiteboardContainer"></div> JAVA, Whiteboard whiteboard = new Whiteboard("Unique Id for Whiteboard","whiteboardContainer", "JSON String representing a saved Whiteboard. Can be null", "Location of the Pictures Folder. Relative to Context Root. Can be null", "Location of the Background Images Folder. Relative to Context Root. Can be null"); add(whiteboard);
  • 36. THE MULTI USER WHITEBOARD • Whiteboard content is represented in JSON {"background": { "height": 326, "width": 595.0481927710844, "left": -297.5240963855422, "type": "Background", "url": "http://localhost:8080/Documents/gmaps.jpg", "top": 163 }, "elements": [ { "id": 5, "p2": 4, "color": "", "p1": 3, "trace": false, "hidden": false, "label": "", "type": "PencilCircle“ }, }
  • 37. THE MULTI USER WHITEBOARD • Synchronization of Content, Save Content, Load Content functionalities use the JSON representation
  • 38. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 39. DEMO
  • 40. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 41. WHAT IS NEXT ? • Adding, • Doc Sharing capability on Whiteboard • Adding complex drawing functionalities • Adding graph tools
  • 42. MY AGENDA What is Apache OpenMeetings What is a Multi User Whiteboard Web Application? How the Whiteboard is build using Google Closure and Apache Wicket What is Apache Wicket? Why Apache Wicket? The Multi User Whiteboard Demo What is Next? Useful Urls
  • 43. USEFUL URLS • https://github.com/wicketstuff/core/wiki/Whiteboard • https://github.com/wicketstuff/core/tree/master/jdk-1.6parent/whiteboard-parent • http://www.googlemelange.com/gsoc/proposal/review/google/gsoc2013/an dunslg/5747559595245568 • https://github.com/wicketstuff/core