Skip to main content

Web 2.0 some features ... some concepts ...

Web 2.0 Features


Objective

The objective of this document is to provide the insight to the web 2.0 features and general requirements associated with the feature. The document also attempts to provide information on the Semantic markups, Mashups, Tableless design.

Pre-requisites
Web application development experience, HTML/XHTML/DHTML/Java scripting/DOM knowledge
UI development experience
Ability to provide user’s perspective to enable good user experience

Below listed are some concepts that will be handy while designing Web 2.0 sites.

Rich user experience

The richness is very subjective. The idea here is to enhance the look and feel, experience of the User interface so that the users of the web site are emotionally connected which would result in long lasting association. In today’s world, sustaining and increasing the user base are the biggest challenges; to make it much more difficult, the competition is severe.

Semantic markup

Traditional usages of HTML tags which are meant for presentation of the content do not provide any meaning to the content embedded within the tags. The idea of semantic markup is provide meaning to the embedded content. The semantics can be achieved through RSS format, embedding XML in the script or through XHTML.

Tableless design

It is a method of designing web pages without using HTML tables for page layout designing. Instead of HTML tables, CSS are used to arrange elements and text on page.


Mashups

Mashup is a web application that combines data from more than one source to derive a information or to provide integrated web service. Client mashups process the information at HTML page through javascript/DHTML. The server side mashups process the information at the server side and presents the information after server side processing.


Widgets

Widget (Web widgets) is a portable chunk of reusable code that can be embedded and executed within HTML page without additional compilation. HTML widgets can be built using DHTML, JavaScript. Widgets are used to add dynamic content. They are also often referred to as modules, snippets, plug-ins.

Web API

Web APIs are the information exchange interfaces over HTTP designed to exchange resource based information. Web APIs are a kind of web services, where the response can be in JSON format, XML format, PDF format, PNG format.
The APIs are exposed as http URL in GET or/and POST methods. This kind of web APIs usually do not need infrastructure that is needed to host web services of SOAP like. These kind of web apis are used to develop Mashups.

Content syndication (Feed generation and aggregation)

The Web 2.0 has opened up web communication through simple XML syndication. Through this XML the web application can transmit and receive information. RSS and ATOM are the popular formats. The information from other sources through RSS/ATOM can be processed to derive aggregated feed.

Component syndication

Here, the owner of the component will syndicate the component so that business affiliates can use the same component in their web applications.
Example:
A video player owned by a company X, can be syndicated with other affiliates or partners. This opens up the feasibility of revenue generation through partner sites.

Web 2.0 Features list

Feature Description
1 Rich appearance
2 Feed generation
3 Feed aggregation
4 Notification
5 Voting
6 Rating
7 Forwarding
8 Video hotspots
9 Image hotspots
10 Bookmark content
11 Trackback
12 Tagging
13 Chatting
14 Commenting
15 Content syndication
16 Component syndication
17 Widgets and Web API

Requirements Description
1 Rich appearance
1.1 Well thought UI layout that supports skinning
1.2 Well thought good looking UI component design that supports skinning (personalization)
1.3 Should support configurability
2 Feed generation
2.1 Ability to Generate RSS/ATOM feeds
2.2 Ability to read RSS/ATOM through web browser readers like Google reader.
2.3 Subscribe other website feeds using via RSS reader.
2.4 Display the subscribed feeds into the play list section.
3 Feed aggregation
3.1 Ability to aggregate RSS/ATOM feeds
4 Voting
4.1 Ability to flag the content/participant that it/participant can be voted
4.2 Ability to vote content
4.3 Ability to integrate with Voting system
5 Rating
5.1 Ability to display ratings (5 stars)
5.2 User ratings should be persisted 1 being poor and 5 being awesome.
5.3 Once rated User should not be able to rate the same content again
6 Forwarding
6.1 Ability to share the content with friends via email.
6.2 The email should have a link which will launch the content
6.3 Ability to embed the content in Blog
6.4 Ability to provide inline comment for selected content
7 Video hotspots (Video content)
7.1 Ability to manage video hotspots
7.2 Ability to enable users to create/edit hotspots
8 Image hotspots
8.1 Ability to manage image hotspots
8.2 Ability to enable users to create/edit hotspots
9 Bookmarking
9.1 Ability to enable users to bookmark through Digg, Del.ico.us
10 Blog this/Trackback
10.1 Ability to link between the blogs
10.2 Ability to provide embedded code to use in blogs
11 Folksonomy/Tagging
11.1 Ability to enable users to tag the content
12 Chatting
12.1 Ability to display online users
12.2 Ability to select rooms
12.3 Ability to send/receive messages
12.4 Ability to disable private messaging, when a channel is moderated (other similar business rules)
13 Commenting
13.1 Ability to enable users to comment on the content
13.2 Ability to moderate comments before making it online
13.3 Ability to moderate online comments and make it offline
13.4 Ability to configure limit of number of words per comment
13.5 Ability to display N comments in one go, and rest will be paginated; N should be configurable
13.6 Option to display all comments in one go
13.7 Ability to flag the comments as abusive
14 Content syndication
14.1 Ability to generate RSS/ATOM feeds
15 Component syndication
15.1 Ability to mask the component functionality (disable/remove). The component should adjust its layout and maintain consistent look and feel, when component/control is hidden or removed.
15.2 Ability to signup the affiliate or business partner
15.3 Ability to track syndicated component for content usage
16 Widgets and Web API
16.1 Widget development
16.2 Web API development – JSON
16.3 Web API development – REST services


Try out ..


Add atleast five web 2.0 features to the existing feature list.
Provide real life examples with URLs for above listed web 2.0 feature list.
How do you track syndicated video player?
Provide at least ten Web APIs and list what are formats of the resulting response?
Design a simple Google MAP mash up application and apply Tableless design for UI layout.
Explain Trackback feature with use case flow.
Design RSS 2.0 reader widget in HTML
Why do we need Folksonomy? Give atleast 2 reasons.

Comments

Popular posts from this blog

GCP: GAE - Memcache best practices

Memcache is a distributed in-memory data cache in front of or in place of robust persistent storage for some tasks. GAE includes a memory cache service for this purpose. Best practices for using memcache: 1. Handling memcache API failures gracefully; Do not expose errors to the end users 2. Use batching capability of the API when possible 3. Distribute load across your memcache keyspace Use sharding and aggregating for improving performance efficiency. Use TTL (expiration policy) to make sure the memcache does not fill-up indefinitely Use getIdentifiable() and putIfUntouched() for managing the values that may get affected by concurrent updates Use batching (getMulti ("comments", "commented_by") ) to fetch related values together instead of one by one Use graceful error handling

Innate and Non-innate learning

I am reading a book called 'What did you ask at school today?' by Kamala V Mukunda. Would like to share some learning. The book is intended for teachers as primary audience, nevertheless, good for any adult to gain deeper understanding on learning process. She talks about brain structure, innate and non-innate learning aspects and talks about synergy needed between the two in the first two chapters. Firstly, innate learning is something that would not need explicit training. For example, kids learning the language. They wont feel strained or stressed during this kind of learning, just because they enjoy the process, where as non-innate learning focuses more on class room learning. It is accepted that learning through playful means will have more impact on kids than the impact through the structured learning. A physcologist, David Geary puts it this way - while learning through playful means has more impact, children should be encouraged to learn the skills through structure...

Essential GCP services for a new age application

Identity and resource management IAM  Identity aware proxy Resource Manager Stackdriver Monitoring Stackdriver Monitoring: Infrastructure and application monitoring Stackdriver Logging: Centralized logging Stackdriver Error Reporting: Application error reporting Stackdriver Trace: Application performance insights (latency) Stackdriver Debugger: Live production debugging Development management Cloud Deployment Manager: Templated Infrastructure deployment Cloud Console: Web based management console Cloud shell: Browser based terminal/CLI Development tools Cloud SDK: CLI for GCP Container registry: Private container registry Container builder: Build/Package container artifacts Cloud source repository: Hosted private git repository Database services Cloud SQL: Managed MySQL and PostgreSQL Cloud BigTable: HBase compatible non-relational DB Cloud Datastore: Horizontally scalable non-relational (ACID) Cloud Spanner: Horizontally scalable relation...