Peditor Overview

A highly extendable application to abstract and visualize the edit procedure of common web pages. Combine the two words Page and Editor, we get the project's name Peditor | 'peditÉ™ |. Another goal of Peditor is make it easier to create plugin(widget) for it.

Project home: Github

Roadmap

Following development will focus on:


Build & Control


Test & Debug


Tech

The knowledge required to develop this project.

Frameworks Linux, CouchDB, Node
Libraries Express.js, Underscore.js, jQuery, Bootstrap
Manager npm, bower, grunt
Languages Coffeescript, Javascript, html, stylus, css

The knowledge required to create widget.

Libraries jQuery
Languages Coffeescript, html, css

MSV Architecture

Here I introduce a new web app architecture that I created, MSV. For more information about the MSV, read this article.

Compared with the famous MVC, there is no controller component, instead the service component will take the charge.

The biggest disadvantage of this architecture is that it heavily depends on js and ajax. But it brings back better response performance and smoother user experience.


Client App

  1. Peditor Layout Mode

    There are two types of layout mode, Outlone and Preview.

    Outline Mode

    To make it easy to see the relationship between containers.

    peditor_outline_mode
  2. Flexible Height Grid System

    All containers are created by 'drag and drop'. Now there're four types of containers:

    • root
    • row
    • column
    • widget

    height_responsive_design
    • The root can't directly hold a column.
    • A row and a column can't become sibling nodes.
    • All containers except the widget can has height constraint.
    • Only column can contain widget. A column can remain empty, or has several widgets inside, which behaves like a Stack List.
    • A row's width can be an absolute value, but a column's width is always a relate value of its parent node.
  3. Widget Scaffolding

    You can visit http://localhost:port/widgets/your_widget_name to debug your created widget.

  4. Property Editor

    Here's the properties that editable for each container.

    Root background image, width
    Row background image
    Column background image
    Widget Implemented by widget itself.
  5. Save & Load Manager.

    This will create a unique link of current pdoc.
  6. History control

    Works the same as a common editor.


Protocol


Server App

The CouchDB is good enough, it has already covered most the requirements with its build-in functions.

  1. Page documents manager, CRUD.

Lisense

BSD-2-Clause

Sep 2013 ys