For Developers

Technical Specifications

Everything you need to know about the architecture, technology stack and requirements of uwAdmin6.

Technology Stack

Reliable, proven technologies with zero exotic dependencies.

PHP 8.2+

  • OOP with classes and namespaces
  • MySQLi with prepared statements
  • Secure session management
  • Intervention Image 3.x

MySQL 8.0+

  • InnoDB with foreign keys
  • UTF8MB4 full unicode
  • Optimised indexes
  • ACID transactions

Frontend Stack

  • Tailwind CSS 4.x
  • Alpine.js 3.x
  • Flowbite 4.x
  • jQuery 3.7 (compatibility)

Rich Text Editor

  • TinyMCE 8.2
  • MoxieManager 8.2
  • Multilingual configuration
  • Custom plugins

UI & Icons

  • Font Awesome Pro 7.1
  • Flag Icons
  • SortableJS 1.15
  • Fancybox 3.5.7

Zero Framework

  • No Laravel/Symfony
  • Composer for minimal dependencies
  • Deploy via FTP/SFTP
  • Shared hosting compatible

Architecture

Modular pattern with separation of concerns and native multilingual support.

Modular Pattern

Each module follows a standardised structure:

/uw-admin/admin/{modulo}/
├── index.php       # Lista con filtri
├── form.php        # Create/Edit
├── ajax/           # Operazioni async
│   ├── delete.php
│   ├── toggle-*.php
│   └── reorder.php
└── includes/       # Componenti riutilizzabili

24 modules implemented with this pattern

Selective activation per project

Multilingual System

Polymorphic pattern with separate tables:

# Tabella principale
news (id, data_pubblicazione, attivo)

# Tabella traduzioni
news_traduzioni (
  id, news_id, lingua_id,
  titolo, slug, contenuto,
  UNIQUE(news_id, lingua_id)
)

9 languages natively supported

SEO-friendly URLs per language: /it/news/titolo

Media Management

Single upload, 7 automatic formats:

Format Size Usage
s150pxThumbnail
m300pxCard
l600pxContent
xl1200pxHero
xxl1920pxFull HD
original-Backup
cropCustomRitaglio

RBAC System

4 roles with granular per-module permissions:

Role Read Write Delete Publish
Super Admin
Admin
Editor
Viewer

Theme Management

Active theme configurable from admin with development theme support:

Priorita risoluzione tema:
1. Tema sviluppo (se abilitato + IP/cookie)
2. Tema attivo (da database)
3. Fallback a 'default'

Granular override: customise only the files you need

Development theme: test new themes without affecting visitors

Authorisation: IP whitelist or secret cookie

Password Recovery

Complete system with SMTP email and secure token:

Token: 64 char hex (random_bytes)
Scadenza: 1 ora
Anti-enumeration: messaggio generico
SMTP: PHPMailer con fallback mail()

Built-in modal on the login page (Alpine.js)

8 email preferences configurable from admin

reCAPTCHA v3 optional for anti-spam

GDPR & Cookie Consent

Zero-dependency built-in system for GDPR and ePrivacy compliance:

Cookie Banner (2 livelli):
1. Barra fissa: Accetta | Rifiuta | Personalizza
2. Modal: toggle per categoria cookie

Blocco preventivo script:
- GA4 caricato SOLO dopo consenso
- Script custom bloccati fino ad accettazione
- reCAPTCHA classificato come tecnico

Cookie: uw_cookie_consent (base64 JSON, 365gg)
Policy: generate automaticamente IT/EN

18 preferences in database (10 privacy + 8 cookie)

PHP Classes: CookieConsent + PrivacyPolicy

Frontend: Alpine.js cookie-consent.js

Security

Full OWASP Top 10 protection and best practices.

SQL Injection

100% prepared statements with parameter binding via MySQLi.

$db->query($sql, [$id], 'i');

XSS Protection

Output encoding with htmlspecialchars() on all user data.

htmlspecialchars($data, ENT_QUOTES, 'UTF-8')

CSRF Protection

Unique per-session token on every POST form.

<input type="hidden" name="csrf_token" value="...">

Password Security

Hashing with PASSWORD_BCRYPT and cost factor 12.

password_hash($pwd, PASSWORD_BCRYPT, ['cost' => 12])

Rate Limiting

5 failed attempts \u{2192} 15-minute lockout. Anti brute-force.

max_attempts: 5, lockout: 900s

Session Fingerprint

IP + User Agent binding. ID regeneration post-login.

session_regenerate_id(true);

reCAPTCHA v3

Invisible anti-spam protection with score-based validation (0.0-1.0).

$recaptcha->isValid(null, 'login');
OWASP Top 10 2021 \u{2022} GDPR Compliant \u{2022} Audit Trail

Hosting Requirements

Compatible with most hosting providers.

Minimum Requirements

PHP 8.2+
MySQL 8.0+
PHP Memory 128 MB
Max Upload 32 MB
Disk Space 500 MB+

Required PHP Extensions

mysqli
mbstring
gd
json
session
curl
fileinfo
openssl

Optional: imagick for advanced image processing

Compatible Providers

Aruba SiteGround Netsons OVH Serverplan VHosting DigitalOcean AWS

Integrations

Supported external services and APIs.

OpenRouter

OpenRouter AI

Content generation
  • Claude, GPT-4, Llama
  • Specialised assistants
  • Automatic translations

YouTube

Video embed
  • Responsive embed
  • Automatic thumbnail
  • Privacy-enhanced mode

Vimeo

Video embed
  • Responsive embed
  • Metadata extraction
  • Custom player

Intervention Image

Image processing
  • Automatic resizing
  • Smart crop (cover)
  • Watermark and rotation

PHPMailer

Email delivery
  • Authenticated SMTP
  • Responsive HTML emails
  • Attachments and templates

Have technical questions?

Get in touch for a technical consultation or to request a personalised demo.