Design Document For DRAFT1846

From BOARD18 Project WIKI
Revision as of 12:39, 6 May 2020 by Rich (talk | contribs) (→‎Introduction: added data layouts)
Jump to navigation Jump to search
DraftFlow.png

Introduction

DRAFT1846 has been designed to look and feel as much like BOARD18 as possible.

This means that a couple of the sections of the BOARD18 design document can be applied, for the most part, directly to DRAFT1846.

These sections are:

The diagram to the right shows the general control flow between the DRAFT1846 components.

Database Structure

The DRAFT1846 database is structured as follows:

 
mysql> show columns from draft_table;
+---------------+------------------+------+-----+-------------------+-----------------------------+
| Field         | Type             | Null | Key | Default           | Extra                       |
+---------------+------------------+------+-----+-------------------+-----------------------------+
| draft_id      | int(11) unsigned | NO   | PRI | NULL              | auto_increment              |
| draft         | text             | YES  |     | NULL              |                             |
| activity_date | timestamp        | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+---------------+------------------+------+-----+-------------------+-----------------------------+
3 rows in set (0.00 sec)

The draft field is a text string containing the stringafied JSON data object as shown below.

JASON Data Object

This Object contains all of the information about a given draft except for the Draft ID.

 
array (
  'status' => 'Active',
  'updtCount' => 0,
  'numbPlayers' => 4,
  'curPlayer' => 1,
  'deck' => 
  array (
    0 => 'Ohio and Indiana',
    1 => 'Michigan Central',
    2 => 'Meat Packing Co.',
    3 => 'Blank Card',
    4 => 'Mail Contract',
    5 => 'Big 4',
    6 => 'Tunnel Blasting Co.',
    7 => 'Blank Card',
    8 => 'Michigan Southern',
    9 => 'Blank Card',
    10 => 'Blank Card',
    11 => 'Chicago and W. Indiana',
  ),
  'hand' => 
  array (
  ),
  'players' => 
  array (
    0 => 
    array (
      'name' => 'Paul',
      'email' => 'paul.zieske@gmail.com',
      'confirmed' => 'Yes',
      'cash' => 400,
      'privates' => 
      array (
      ),
    ),
    1 => 
    array (
      'name' => 'Chris',
      'email' => 'garden.nomad@gmail.com',
      'confirmed' => 'Yes',
      'cash' => 400,
      'privates' => 
      array (
      ),
    ),
    2 => 
    array (
      'name' => 'Rich',
      'email' => 'rich02@board18.org',
      'confirmed' => 'Yes',
      'cash' => 400,
      'privates' => 
      array (
      ),
    ),
    3 => 
    array (
      'name' => 'Frank',
      'email' => 'franktaw@netscape.net',
      'confirmed' => 'Yes',
      'cash' => 400,
      'privates' => 
      array (
      ),
    ),
  ),
  'return' => 'success',
)


This page is a stub.
The BOARD18 Project will soon be expanding it.