# Exams.fit 3.0 operations

This build targets `https://exams.fit/`, PHP 8.2+, MySQL/MariaDB and Apache/LiteSpeed shared cPanel. It has no API, Node, Composer or queue-runtime dependency. PDF.js is bundled locally under `assets/pdfjs/` (Apache-2.0 license included).

## Import-first workflow

Download the closest template in Admin → Templates. Ask an AI to preserve the structure and return `manifest.json`, referenced `items/*.json`, and optional verified `media/*`. Validate and inspect the preview before import. The importer checks IDs, types, slugs, SEO lengths, author/reviewer, source requirements, content depth, questions, YouTube IDs/URLs, MIME types, checksums, traversal and executable files. Content and media writes are transactional/recoverable and import history supports rollback. Use `update` or `replace` only after a backup; existing permanent URLs are preserved.

Blog and Student Tools have dedicated admin managers, AI instructions and bulk ZIPs. Published blog posts flow automatically into `/blog`, blog categories, RSS and the blog sitemap. Published tools flow into `/tools`, tool categories and the tools sitemap. Core feature upgrades are installed separately through Admin → System Updater, which validates a trusted versioned ZIP and creates database/file recovery artifacts before replacing allowlisted core files.

The manifest can also carry `categories`, `sections`, `menus`, `redirects`, `feeds`, and `media`. Addon ZIPs use `addon.json`, safe SQL migrations, declared minimum core version, permissions and uninstall behavior. Addon assets remain under `storage/addons/`.

## Scheduled tasks

Use the tokenized URL shown in Admin → Cron. Run `job=all` every 15 minutes. Optional separate jobs are `publish`, `queue`, `feeds`, `sitemap`, `cache`, `analytics`, `links`, `health`, `backup`, `optimize`, and `freshness`. Expensive jobs should be daily or weekly. Per-job overlap locks prevent concurrent execution.

## Search engines

Submit `/sitemap_index.xml`. Public published/indexable content is server-rendered and includes canonical metadata, breadcrumbs, crawlable permanent links and applicable JSON-LD. Feed-only pages remain noindex. Add Google and Bing verification tokens in Settings. Test selected URLs with Search Console URL Inspection, Rich Results Test and Bing Webmaster Tools. Search engines alone decide crawl, indexing and ranking.

## Advertising and compliance

Configure global head code only after consent/legal requirements are handled. Manage ad slots in Admin → Ads and `ads.txt` in Settings. Do not place ads inside questions, answers, PDF controls, video controls or download controls. AdSense approval and revenue are never guaranteed.

## Backup and upgrades

Create and download a SQL backup in Admin → System. Also archive `config.php`, `uploads/`, and `storage/addons/`. Existing v2 sites can use the guarded Admin → System v3 upgrade after backing up. Upload new core files without replacing `config.php`, uploads or stored add-ons. Restore through phpMyAdmin only after confirming the target database.

## Rights and quality

Publish only original text and owned/licensed/permitted media. Never import copied exam papers, full scraped articles, unauthorized PDFs, fabricated dates or fake authors/reviews. Changing requirements need a primary source and review date. Use quality reports before switching draft content to published/indexable.
