Jump to content

ICT:System Strategy

From Costa Sano MediaWiki
Revision as of 18:03, 4 February 2026 by Mngr (talk | contribs) (Created page with "= Costa Sano MediaWiki – System Strategy and Architecture = __TOC__ == Purpose of this document == This page explains the ''design philosophy'' and ''architectural strategy'' of the Costa Sano information system. It answers: * Why MediaWiki? * Why namespaces? * Why Cargo + PageForms? * Why dashboards? * Why virtual machines? * Why this structure? Future maintainers should understand the reasoning, not only the configuration. The system was designed for: * long-ter...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Costa Sano MediaWiki – System Strategy and Architecture

Purpose of this document

This page explains the design philosophy and architectural strategy of the Costa Sano information system.

It answers:

  • Why MediaWiki?
  • Why namespaces?
  • Why Cargo + PageForms?
  • Why dashboards?
  • Why virtual machines?
  • Why this structure?

Future maintainers should understand the reasoning, not only the configuration.

The system was designed for:

  • long-term stability
  • low cost
  • easy maintenance
  • non-technical users
  • independence from vendors

Core Principles

1. Simplicity over cleverness

The system must be:

  • boring
  • predictable
  • repeatable

Clever or fashionable solutions were deliberately avoided.

Boring systems survive longer.

2. Open-source only

No paid licenses or vendor lock-in.

Reason: The club must survive with a limited budget.

All core components are:

  • MediaWiki
  • MariaDB
  • Apache
  • Linux

These are mature, stable, and free.

3. Separation of concerns

Each tool has a clear responsibility.

  • MediaWiki → structured knowledge system
  • Cargo → structured data storage
  • PageForms → data entry
  • WordPress → public publication
  • Virtual machines → isolation and portability

Trying to make one tool do everything was intentionally avoided.


System Layers

The system is organised in layers. Each layer is independent.

Layer 1 – Hardware

Standard PC/server hardware.

No special requirements.

Must be easily replaceable.

Layer 2 – Virtualisation

Hyper-V today, possibly Proxmox/Linux in future.

Reason:

  • hardware independence
  • easy migration
  • easy backup
  • easy recovery

VMs are copied, not rebuilt.

Layer 3 – Operating System

Linux (AlmaLinux) preferred for long term.

Reason:

  • no licenses
  • stability
  • low resource usage
  • long lifetime

Layer 4 – Web stack

Apache + PHP + MariaDB

Classic LAMP stack.

Reason:

  • extremely stable
  • widely documented
  • easy for successors
  • works everywhere

Layer 5 – Application

MediaWiki with extensions:

  • Cargo
  • PageForms
  • Lockdown

Reason: Transforms MediaWiki from a wiki into a structured database application.


Why MediaWiki

MediaWiki was chosen because it is:

  • mature (20+ years)
  • widely used
  • low resource requirements
  • open source
  • very extensible
  • future-proof

Important: The goal is not a modern fancy UI. The goal is durability.

MediaWiki is ideal for long-term knowledge preservation.


Why Cargo + PageForms

Cargo

Adds database tables and structured queries.

Provides:

  • typed fields
  • SQL-like queries
  • fast reports
  • clean data model

PageForms

Adds:

  • forms
  • validation
  • controlled data entry
  • no wiki syntax for users

Together they transform MediaWiki into: → a lightweight database application.


Why namespaces

Namespaces are used for both organisation and security.

Structure

  • Research: → dashboards and UI
  • Chapter:, Place:, Organisation:, Asset: → data
  • ICT: → documentation

Benefits

  • clean separation
  • easier permissions
  • users never see technical pages
  • simpler navigation

Users should only work in Research:.


Why dashboards

Users never use:

  • Special pages
  • raw wiki editing
  • manual page creation

Instead they use:

  • dashboards
  • buttons
  • forms

Reason: Club members are not IT specialists.

The system must behave like a normal application.


Design Workflow Pattern (for each entity)

Each entity follows exactly the same pattern:

  1. Template with #cargo_declare
  2. PageForms form
  3. Dashboard page
  4. #formlink for editing
  5. returnto dashboard

This pattern must be reused without redesign.

Consistency is more important than optimisation.


Architectural Philosophy

The system was designed with the mindset:

  • survives hardware failure
  • survives maintainer change
  • survives budget constraints
  • survives 5–10+ years

Technology choices were guided by longevity, not trendiness.

If unsure, always choose: → simpler and older technology