Matrix Action Management:

Introduction

The Purpose of developing this platform (In Short we call it Matrix) is to provide a WordPress compatible CMS, which is a Collaborative Project and Task Management System. It will have a Full Featured Role management (Matrix privilege control; 2D tabular User-Content Association).

In this System, every Page is a Project Descriptions and every user is a project Member. The users/Project Members should be able to log into the system and see what tasks they should do next (To do List). And add revisions/status Report into an Action/Task. The Priority of the task will be calculated according to the Importance, Complexity and category of the Actions/Task which can be set by Project Managers (Members with higher Privilege roles)

A Custom Post Type to be introduced called “Actions” which Tasks/Project description to be done by specific users. The Custom Post Type Action has a number of fields including Acronym, Deliverables, Impact, Status etc.

The users of the Site or group of users may have Admin, Authors, Reader privilege on every Page/Action – or group of pages/Actions. Therefore a user can be Author of several pages, subscriber to other pages and blind to others.

Tasks that Project Members should be able to do are:

  • Create/Read/Update/Delete Projects (CRUD Pages)
  • Set Sub-Project Attributes (Set Parent/SubPage Attributes)
  • Change Roles of Other Users in any Project (Set Previleges of
  • View the to do List (List of tasks sorted by their Priority), individually

 

In Addition the system has the following functions:

  • A User Activity Log
  • Sending Alerts

Implementation Method:

Two Implementation Methods should be considered:

  1. Using Original WordPress and Plugins similar to “Wordpress Task Management”, Custom Posts/Fields
  2. Direct Programming in PHP / MySQL, to make a very light version of the Site.

Custom post Types

Tasks and Actions should be defined as Custom Post Types, whereas Custom Meta data/ Custom Fields should be added to them.

Overall Database Structure

The preferred Database Structure is somewhat different than WordPress. As a referece, we can consider the DB structure of WP_users table:

Matrix Database Structure

The DB Structure of Matrix can be as following. Database structure to be conformed with WordPress Datastructure, at least from Datatype

Correspondence:

mx_options <== wp_options: general Options and Settings

mx_members <== wp_users: Details of all Members, users

mx_actions <== wp_posts, This also includes the content

mx_comments <== wp_comments

mx_associations or mx_roles  <== Table includes all association and relation between every User/member and every Action/Task, including the info about their current privileges of the members. It also includes the specific roles members have in association with an action, e.g. Staff Management, Project Coordinator, Consultant, Adviser, Supervisor, Marketing Role, Business ambassador

Blind, Viewer, Browser, Temporary Visitor, Applicant, Observer, Commentator, Contributor, Author, Team Leader,…,Consultant, Administrator, Architect

Roles are Dynamic. If a user done not use the privileges of a role and does not actively contro=ibute to this role, they will be downgraded.

mx_log : Activity Log: detail Log when who has done what.

mx_assets: list of assets/topics/categories and their current values and associations. Every action is associate with 1 or more (up to a limit, e.g. 5) of these Assets / Categories.

mx_skills: list of HR skills relevant to the matrix, e.g. research skill, writing skill, sale skill, networking

 

Project Work Plans and Requirements

Phase 1: back-End Concept –  A Simplified Test Case Matrix: (30% of overall Project)

Simplified Scenario: 5 users, with User IDs 1, 2… 5, collaborate on 5 Actions (Pages/Posts/Tasks). These Users have different roles (access levels or associations) toward the Actions/Pages. DB Structure includes an Action Table, User Table and Role Table as following:

Action Table:

User Table:

Association Table: (Action User RoleID associations):

priv table: Privileges and Definition of Roles :

Some interpretations of Associate-Table are described as following:

User1, Lily, is associated with Action1 using RoleID 1, means Blind, So she is blind on Action1, therefore cannot read, comment, write or administrate the Action1.

User 3 is associated with Action 1 with RoleID 30 (Means: Author), which means that User 3, Robin is the author in Action 1, therefore has read, comment and write privileges on Action1.

User 4 is Blind to Action 1, Viewer of Action2, Author of Action 3, Admin of Action 4 and Blind to Action5.

The rest of database should be defined so that:

  • Every user should be able to log into the system, using a username and password
  • After Login every User should be able to see the list of Actions (Only those visible to them) plus their Roles
  • They can choose an Action to VIEW Further Details.
  • If they have privilege to Edit/Update the content of the Action, they will be offered to update the content similar to a WordPress Page (For example a WYSIWYG Editor)

Phase 2: Complete description of Tables: (30% of overall Project)

About 20 additional fields to be added to tables and included in CRUD. Among them there are sorting of the Actions, Time table according to Complexity and Priorities. etc. Further Details will be provided at the end of Phase 1.

Phase 3: Front End Design, (30% of overall Project)

Design of a Simplified Responsive and Mobile VIEW, plus a Control Panel and Final View Design to be Compatible with WordPress Themes. Codes can be adapted from WordPress.

Further Details will be provided at the end of Phase 1.

Phase 4: Alerts, Backup and Security (10% of overall Project)

Making sure that the system automatically backups the data

Sends automatic Emails/Message Alerts to Users according defined Alert Rules

The whole system is secure against hackers etc.

Further Details will be provided at the end of Phase 2 and 3.

Users overall setting:

Skills level, Experience, Reputation, Value Balance (Matrix $), Reaction Speed,

Procedures for TMM users

Propose Sub tasks / New Tasks / New Action è Required Entryies: Type of action: Publication/Lab Setup, …. , new product, What, Why How to be filled up. ==?>> Submit to Matrix for Approaval

User can propose a private task and moderate it immediately. No Approval necessary for private tasks.

Login to the systems using username / password

Request Less/More Challenging/Complex Tasks

Join an Open Actions: Shows the open actions accordint to the user skills, experiences and reputation

 

Procedure for TMM Admin

  • Add new Users
  • Add users to groups
  • View Overview of tasks
  • Close a Task
  • Assign in Task Deliverable: Data sheet, Report, Manuals, Test Cases, sample files, Fomrats: Audio/Dideo Files,
  • Principles of Lean Management: People will be rewarded/punished according to effective Added Value they create into the system. Examples of negative values are – Picking a Task and not doing it. – Delay in the task completion, – Presenting low Quality than promised/expected

Automatic Procedures (Recurrence Tasks)

  • Set reminders on Tasks
  • Request Progress Reports
  • Ranking System
  • Pain and Pleasure (Carrot and Stick) principle to encourage/Punish Users.

Generally rule in compare/adapting to WordPress Field

  • Unnecessary fields will be commented, not deleted, “Suppressed”
  • Exactly similar fields will stay in place, comment: Similar to WP
  • Updated field will get duplication. With comment: “Original WP”, “Updated”
  • New fields: ”New Field”

DB Structure of mx_users table

 

CREATE TABLE mx_users(

ID bigint(20) unsigned NOT NULL auto_increment,

user_login varchar(60) NOT NULL default ”,

user_pass varchar(64) NOT NULL default ”,

user_nicename varchar(50) NOT NULL default ”, — A nicer looking name for the user. Used for Profile URL

display_name varchar(250) NOT NULL default ”, — How other users see this user

user_firstname varchar(50) NOT NULL default ”, — New

user_lastname varchar(50) NOT NULL default ”, — New

user_salution varchar(50) NOT NULL default ”, — New ‘Friendly, e.g. Dear John’, ‘Formal, Dear Mr. X’

user_gender varchar(20) NOT NULL default ”, — New , ‘Mr.’, ‘Ms.’, ‘Mrs.’, ‘Mx.’, ’Miss’

user_title_ prefix varchar(20) NOT NULL default ”, — New , ‘Dr.’, ‘Prof.’

user_title_suffix varchar(20) NOT NULL default ”, — New , ‘PhD’, ‘MSc.’

user_registered datetime NOT NULL default ‘0000-00-00 00:00:00’,

user_activation_key varchar(60) NOT NULL default ”,

user_status int(11) NOT NULL default ‘0’,

user_email varchar(100) NOT NULL default ”,

user_email2 varchar(100) NOT NULL default ”,

user_email3 varchar(100) NOT NULL default ”,

user_phone varchar(100) NOT NULL default ”,

user_mobile varchar(100) NOT NULL default ”,

user_skypename varchar(100) NOT NULL default ”,

user_profileurl varchar(100) NOT NULL default ”,

user_photourl varchar(100) NOT NULL default ”,

user_externalurl varchar(100) NOT NULL default ”,

user_adress_country varchar(100) NOT NULL default ”,

user_adress_city varchar(100) NOT NULL default ”,

user_adress_street varchar(100) NOT NULL default ”,

user_affiliation1 varchar(100) NOT NULL default ”,

user_affiliation2 varchar(100) NOT NULL default ”,

user_affiliation3 varchar(100) NOT NULL default ”,

PRIMARY KEY (ID),

KEY user_login_key (user_login),

KEY user_nicename (user_nicename)

)

DEFAULT CHARACTER SET utf8

 

DB structure of mx_actions table:

CREATE TABLE action (

ID bigint(20) unsigned NOT NULL,

action_author bigint(20) NOT NULL default ‘0’,

action_date datetime NOT NULL default ‘0000-00-00 00:00:00’,

action_date_gmt datetime NOT NULL default ‘0000-00-00 00:00:00’,

action_content longtext NOT NULL,

action_poster longtext NOT NULL,

action_title text NOT NULL,

action_abstract text NOT NULL,

action_deliverables longtext NOT NULL,

action_acronym text NOT NULL,

action_cat1 int(4) NOT NULL default ‘0’,

action_cat2 int(4) NOT NULL default ‘0’,

action_cat3 int(4) NOT NULL default ‘0’,

action_cat4 int(4) NOT NULL default ‘0’,

action_cat5 int(4) NOT NULL default ‘0’,

Importance float,

Complexity float,

MinsDone int(11),

MinsLeft int(11),

Completed float,

Urgency float,

StartDate date,

DueDate date,

DateImportance float,

EffPrio float,

Cat1 varchar(50),

Cat2 varchar(50),

Cat3 varchar(50),

VisibilityByCat float,

EffImportance float,

Status varchar(50),

post_excerpt text NOT NULL,

post_status varchar(20) NOT NULL default ‘publish’,

comment_status varchar(20) NOT NULL default ‘open’,

ping_status varchar(20) NOT NULL default ‘open’,

post_password varchar(20) NOT NULL default ”,

post_name varchar(200) NOT NULL default ”,

to_ping text NOT NULL,

pinged text NOT NULL,

post_modified datetime NOT NULL default ‘0000-00-00 00:00:00’,

post_modified_gmt datetime NOT NULL default ‘0000-00-00 00:00:00’,

post_content_filtered text NOT NULL,

post_parent bigint(20) NOT NULL default ‘0’,

guid varchar(255) NOT NULL default ”,

menu_order int(11) NOT NULL default ‘0’,

post_type varchar(20) NOT NULL default ‘post’,

post_mime_type varchar(100) NOT NULL default ”,

comment_count bigint(20) NOT NULL default ‘0’,

PRIMARY KEY (ID),

KEY post_name (post_name), # Define a new Index with Keyname post_name, type Index, field post_name

KEY type_status_date (post_type,post_status,post_date,ID),

KEY post_parent (post_parent)

)

DEFAULT CHARACTER SET utf8

 

Action content is only available to commentator, contributors and higher rank roles

Action poster is available to visitors, applicants and higher ranks. Private Actions should not have any info

Action title is available to browsers, prospects,

Action_public_private : Value 1 = Private only accessible to Architect.  Value 255: totally public available to outsiders. Other levels to be defined

 

CREATE TABLE TMM_test1(

ID BIGINT(20),

Acronym varchar(50),

# Description varchar(255),

Deliverables varchar(255),

Importance float,

Complexity float,

MinsDone int(11),

MinsLeft int(11),

Completed float,

Urgency float,

StartDate date,

DueDate date,

DateImportance float,

EffPrio float,

Cat1 varchar(50),

Cat2 varchar(50),

Cat3 varchar(50),

VisibilityByCat float,

EffImportance float,

Status varchar(50),

);

 

 

DB structure of mx_comments on actions table will stay very similar to the wp_comments on posts

CREATE TABLE mx_comments (

comment_ID bigint(20) unsigned NOT NULL auto_increment,

comment_post_ID int(11) NOT NULL default ‘0’,

comment_author tinytext NOT NULL,

comment_author_email varchar(100) NOT NULL default ”,

comment_author_url varchar(200) NOT NULL default ”,

comment_author_IP varchar(100) NOT NULL default ”,

comment_date datetime NOT NULL default ‘0000-00-00 00:00:00’,

comment_date_gmt datetime NOT NULL default ‘0000-00-00 00:00:00’,

comment_content text NOT NULL,

comment_karma int(11) NOT NULL default ‘0’,

comment_approved varchar(20) NOT NULL default ‘1’,

comment_agent varchar(255) NOT NULL default ”,

comment_type varchar(20) NOT NULL default ”,

comment_parent bigint(20) NOT NULL default ‘0’,

user_id bigint(20) NOT NULL default ‘0’,

PRIMARY KEY (comment_ID),

KEY comment_approved (comment_approved),

KEY comment_post_ID (comment_post_ID),

KEY comment_approved_date_gmt (comment_approved,comment_date_gmt),

KEY comment_date_gmt (comment_date_gmt)

)

DEFAULT CHARACTER SET utf8

User have different roles and previlages in association with various Actions. Action specific roles User_roles_privilages

CREATE TABLE mx_user_roles(

role_id bigint(20) unsigned NOT NULL auto_increment,

user_id binint(20) NOT NULL default ”,

action_id binint(20) NOT NULL default ”,

role_value binint(20) NOT NULL default ”,

PRIMARY KEY (role_ID),

KEY user_login_key (user_login),

KEY user_nicename (user_nicename)

)

DEFAULT CHARACTER SET utf8

 

Showing the list of all Actions/Tasks associated with a User

 

This can be done for example using:

Select all of Actions assiciated with a Member

SELECT * FROM Relation_Table

WHERE Member_ID=2015100;

 

Select all of Members associated with an Action

SELECT * FROM Relation_Table

WHERE Action_ID=1002015100;

 

 

Hierarchy in Actions, Members, Comments

Action > Subaction > Subaction … ; Parent / Chid relationship

Groups > Managers > …> Members Parent Child Relation?

Comments > Subcomment …  Parent Chila Relationship.

 

WYSIWYG Editors: Embeddable HTML Editors

 

The content of Post should be as simple as any WYSIWYG Editors used in WordPress. Or alternatively one of these can be used: TinyMCE, CB RTE

Importing the Task List from Excel to XML

Preparation of Excel TMM Source and Convert to XML

In Excel TMM, format the date field format to Custom Format JJJJ-MM-TT(YYYY-MM-DD), This is the suitable format for import in PHPMyAdmin. It is necessary to do this Formating on any Datasheet which is going to be exported. It is important that the formatting might be lost in Excel after applying certain VBA procedures. Further Description will be provided later.

Create Secure Login page with PHP and MySQL

This should be similar to any WordPress Site, with the difference that Users will only receive an Invitation for Log-in and Pass. Activity Log shoud include any Login atemp, plus all Activities, IP Adresses, Type of Operating System, Browser, etc. and all of other details when which user does which action.

Leave a Reply