PREFiX @ Specification v1.0

This platform will be named PREFiX, which stands for 

First task of all:
- Automating Documentation and Release notes.
  an Issue Tracker, and
  a Version Control System, and

The framework should be,
1. RESTful
2. Content driven
3. Role based
4. Modular (from data to skin)
5. Nested templates (For skin implementation)
7. Revision control
8. Multi-language support
--- Layers ---
1. Data + Service > Role = Portal
   This should only provide JSON data, a role based data access portal.

2. Template > Role + Skin = View
   A view is a page that user views, addressed by an uri.

That means... Portal + View = 2 layers
Hence, multiple data requests should able to be done by a single request.

--- System Flow ---
1. User request View,
2. View filtered from Roles,
3. Initial data from portals.
4. Getting data from portals through user interaction.
(Noscript HOW?) With the same POST args, Script for AJAX content replacement, Noscript for whole page refresh.

1. Pre-release statement

Prefix is a PHP platform under personal development of the owner of This platform is tend to be open-source and a free ware. Source code of this platform will not be made available to public before it's successfully implements the check list of the first alpha release.

2. File extensions

2.1 .page

This extension is used by Views created by users. URI should directly point to these files by a user request.

Skins of a view is controlled from the environment variable in database.

2.2 .service

This extension is used by Portals created by users. URI should directly point to these files when requesting View-dependent data.

3. Framework platform

In order to achieve revision control and dynamic content management, this framework will be a locally hosted service itself. By successfully updating (committing) source code, environment parameters and data, an incremental back up is made from the last version.

4. Multi-language support

Multi-language support is usually done in the module layer, by applying resources cache into modules when interpreting a View.

Strings or Text don't normally appear directly in View, they are usually embedded in modules inside a View instead. And optimally said, there should be NO hard coded strings shown to public users.

5. URI Mapper

Easy public URI management with a site map management tool, preferably web-based GUI. This mapper maps their resources by searching through the site map stored in database. Additionally, moved or renamed resources will be automatically redirect to the new URI, and a notice will be shown upon deleted URIs. For more about change tracking, see section Automatic Version Control.

6. Automatic Version Control

PREFiX has a built-in version control system, your source files are normally stores in database and referenced through a FTP gateway. By updating your source files, old versions are automatically backed up in revisions.