Difference between revisions of "ARK2"

From ARK
Jump to: navigation, search
(Created page with "This page details the progress on development of ARK 2.0 == Code Repository == Development of ARK 2.0 is occurring in the open on GitHub https://github.com/lparchaeology/ark2 ...")
 
(Aims)
 
(313 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
  
== Code Repository ==
+
== Aims ==
  
Development of ARK 2.0 is occurring in the open on GitHub https://github.com/lparchaeology/ark2
+
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
  
== Configuration ==
+
Modern frontend
 +
* HTML5
 +
* Bootstrap based
 +
* Twig templates
 +
* Front Controller model
 +
* Config driven pages views
  
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.
+
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
  
* The config/ folder will contain all user-editable php files required
+
== Documentation ==
* The php/settings/ folder will contain the generic settings files and templates for moving to config/. This allows upstream changes to be made to the templates and upgrades performed more easily.
 
* The env_settings.php file is replaced by database.php and server.php
 
* database.php contains the settings for the database connection
 
* server.php contains the settings for the server file paths
 
* To set-up an ARK, copy database.php, server.php and preflight_checks.php from php/settings to config/ and edit as required
 
* preflight_checks.php now defaults to off, so needs to be enabled before running, and then deleted form config afterwards
 
* settings.php has moved from config/ to php/settings/ and no longer requires user editing, all settings are now help in the database and should be configured per the instructions
 
  
== Database ==
+
Details of ARK2 can be found in the following sections:
  
* Configuration has been moved to the database
+
* [[ARK2/Design|Design]] - High Level Design Decisions
* A new ADO class has been created to wrap all access to PDO
+
* [[ARK2/Technical|Technical]] - Technical details, Development tools and procedures
 
+
* [[ARK2/The_ARK_Way|The ARK Way]] - Web Development - The ARK2 Way
== Changes ==
+
* [[ARK2/Install|Install]] - Installation Instructions
 
+
* [[ARK2/Architecture|Architecture]] - System Architecture
Other significant changes are documented here
+
* [[ARK2/Database|Database]] - Database / ORM details
* A number of config global variables have been renamed for clarity, or deleted as they are no longer used.
+
* [[ARK2/Cache|Cache]] - Cache details
 +
* [[ARK2/Model|Model]] - Data model / Schema
 +
* [[ARK2/View|View]] - Views on the Data Model
 +
* [[ARK2/Spatial|Spatial]] - Spatial data
 +
* [[ARK2/Vocabulary|Vocabulary]] - Controlled Vocabularies
 +
* [[ARK2/Files|File Management]] - File, Image, and other Media Management
 +
* [[ARK2/Localization|Localization]] - Internationalization, Localization, and Translation
 +
* [[ARK2/Security|Security]] - Security, Authentication, Authorisation, User Management
 +
* [[ARK2/API|API]] - REST API implementation
 +
* [[ARK2/Frontend|Frontend]] - Web Frontend
 +
* [[ARK2/Templates|Templates]] - Using Twig for the Web Frontend
 +
* [[ARK2/Console|Console]] - Admin Consoles
 +
* [[ARK2/Admin|Admin]] - Admin Frontend
 +
* [[ARK2/Branding|Branding]] - Branding of the ARK Project, Products, and Service

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: