Difference between revisions of "ARK2"

From ARK
Jump to: navigation, search
(Configuration)
(Aims)
 
(309 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
This page details the progress on development of ARK 2.0
 
This page details the progress on development of ARK 2.0
  
== Supported Platforms ==
+
== Aims ==
  
* PHP: A minimum of v5.5 will be required (or maybe 5.6?), v7 will be supported.
+
The primary aims of ARK2 are:
 +
* Full code re-write to modern standards using modern components
 +
* Separate the ARK Database backend from the ARK Web frontend
 +
* Implement a modern REST API to allow other frontends and apps to access and update the ARK Database
 +
* Simplify the setup and configuration of ARK by moving the config into the database and providing online config tools
 +
* Improve the overall performance and data integrity of ARK
 +
* Make it possible to provide an ARK hosting service
  
== Code Repository ==
+
Modern frontend
 +
* HTML5
 +
* Bootstrap based
 +
* Twig templates
 +
* Front Controller model
 +
* Config driven pages views
  
Development of ARK 2.0 is occurring in the open on GitHub https://github.com/lparchaeology/ark2
+
Modern backend
 +
* Full REST API to access and update all ARK data
 +
* Database abstraction and Object Relational Mapping
 +
* Config driven data schema
 +
* Controlled Vocabularies and Linked Open Data
 +
* User Authentication via internal user/password and external OAuth2 providers (Facebook, Google, etc)
 +
* User Authorisation via Role Based Access Control (RBAC) using hierarchical Roles and Permissions structure
 +
* Field-level data access control
 +
* Data Workflows in conjunction with User Authorisation control
  
== Configuration ==
+
== Documentation ==
  
Significant changes to the configuration of ARK are being made to move from PHP file based configuration to database based configuration. This section will document these changes.
+
Details of ARK2 can be found in the following sections:
  
* The config/ folder will contain all user-editable php files required, all other config will be in the database
+
* [[ARK2/Design|Design]] - High Level Design Decisions
* The env_settings.php file is replaced by server.php and paths.php
+
* [[ARK2/Technical|Technical]] - Technical details, Development tools and procedures
* server.php contains the settings for the database connection and root server path and should be the only file requiring editing for a default ARK install
+
* [[ARK2/The_ARK_Way|The ARK Way]] - Web Development - The ARK2 Way
* paths.php contains the settings for the server file paths and should not need editing
+
* [[ARK2/Install|Install]] - Installation Instructions
* To set-up an ARK, copy the config folder from php/arkdb/config to teh root folder and edit as required
+
* [[ARK2/Architecture|Architecture]] - System Architecture
* preflight_checks.php now defaults to off, so needs to be enabled before running, and then deleted form config afterwards
+
* [[ARK2/Database|Database]] - Database / ORM details
* settings.php has moved from config/ to php/settings/ and no longer requires user editing, all settings are now held in the database and should be configured per the instructions
+
* [[ARK2/Cache|Cache]] - Cache details
 
+
* [[ARK2/Model|Model]] - Data model / Schema
== Database ==
+
* [[ARK2/View|View]] - Views on the Data Model
 
+
* [[ARK2/Spatial|Spatial]] - Spatial data
* Configuration has been moved to the database
+
* [[ARK2/Vocabulary|Vocabulary]] - Controlled Vocabularies
* A new ADO class has been created to wrap all access to PDO
+
* [[ARK2/Files|File Management]] - File, Image, and other Media Management
 
+
* [[ARK2/Localization|Localization]] - Internationalization, Localization, and Translation
== Changes ==
+
* [[ARK2/Security|Security]] - Security, Authentication, Authorisation, User Management
 
+
* [[ARK2/API|API]] - REST API implementation
Other significant changes are documented here.
+
* [[ARK2/Frontend|Frontend]] - Web Frontend
 
+
* [[ARK2/Templates|Templates]] - Using Twig for the Web Frontend
 
+
* [[ARK2/Console|Console]] - Admin Consoles
* A number of config global variables have been renamed for consistency
+
* [[ARK2/Admin|Admin]] - Admin Frontend
** Any var ending in _dir is an absolute filesystem directory path
+
* [[ARK2/Branding|Branding]] - Branding of the ARK Project, Products, and Service
** Any var ending in _path is a URL path relative to the hostname and always starts with a '/'
 
** Neither var ever ends in a separator
 
** $ark_server_path -> $ark_root_dir
 
** $ark_dir -> $ark_root_path and no longer ends in a /
 
** $registered_files_host -> $registered_files_path
 
** $phMagickDir -> $phmagick_file
 
** ark_web_maptemp_dir -> ark_maptemp_path
 
** $ark_lib_dir and $ark_lib_path point to the library folder
 
** $skins_dir and $skins_path point to the skins folder
 
** $skin_dir and $skin_path point to the current skin folder
 
 
 
 
 
* A number of config global variables have been renamed for clarity
 
** $mode -> $search_mode
 
** $ftx_mode -> $search_ftx_mode
 
 
 
 
 
* A number of config global variables have been deleted as they are not used:
 
** $default_year
 
** $conf_non_search_words
 
** $conf_langs
 
** $loaded_map_modules
 
** $default_output_mode
 
 
 
 
 
* The logging globals have been changed
 
** $log, $conf_log_add, $conf_log_edt, $conf_log_del are deleted
 
** $log_ins, $log_upd and $log_del are used instead
 
 
 
 
 
* The $fs_path_sep and $fs_slash have been removed, use PATH_SEPARATOR and DIRECTORY_SEPARATOR constants instead.
 

Latest revision as of 12:34, 7 August 2018

This page details the progress on development of ARK 2.0

Aims

The primary aims of ARK2 are:

  • Full code re-write to modern standards using modern components
  • Separate the ARK Database backend from the ARK Web frontend
  • Implement a modern REST API to allow other frontends and apps to access and update the ARK Database
  • Simplify the setup and configuration of ARK by moving the config into the database and providing online config tools
  • Improve the overall performance and data integrity of ARK
  • Make it possible to provide an ARK hosting service

Modern frontend

  • HTML5
  • Bootstrap based
  • Twig templates
  • Front Controller model
  • Config driven pages views

Modern backend

  • Full REST API to access and update all ARK data
  • Database abstraction and Object Relational Mapping
  • Config driven data schema
  • Controlled Vocabularies and Linked Open Data
  • User Authentication via internal user/password and external OAuth2 providers (Facebook, Google, etc)
  • User Authorisation via Role Based Access Control (RBAC) using hierarchical Roles and Permissions structure
  • Field-level data access control
  • Data Workflows in conjunction with User Authorisation control

Documentation

Details of ARK2 can be found in the following sections: