A web-based system where visitors scan a QR Code on a tree and land on that tree’s public information page — no login required. The system tracks scans/visitors (without relying on IP alone), collects “interested” emails, and shows a map banner with per-zone pins and a tap-to-expand tree photo.
SETUP.md — how to install the database and run the app locally
docs/architecture.md — system architecture, components, request flowdocs/system-architecture.md — expanded subsystem overview, folder structure, scalability & security notesdocs/database.md — full schema design + rationaledocs/install.sql — run this one — full schema + full demo dataset (103 trees) in a single filedocs/migrations/ — historical upgrade scripts for pre-existing databasesdocs/page-flow.md — page/route map and page structuredocs/user-flow.md — visitor and admin user flows (with diagrams)docs/rbac.md — role hierarchy, permission taxonomy, and access-control design (Programmer / Executive / Tree Admin / Visitor)docs/tree-identity-and-relationships.md — Tree ID vs. location vs. zone vs. relationship vs. scan-location, QR flow, GPS scan trackingdocs/multilingual-and-ai-translation.md — TH/EN/ZH content model + Local Ollama AI translation review flowdocs/ai-plant-identification.md — “what tree is this?” — AI identifies a tree from its photo (Ollama vision)docs/map-system.md — map banner (existing) vs. interactive zone/tree map (new)docs/visitor-identity.md — how visitor identity, scan dedup, and repeat-scan detection worksconfig/ DB + app configuration
includes/ shared PHP helpers (visitor identity, scan logging, admin auth)
public/ visitor-facing pages — point your web server document root here
tree.php tree information page
interest.php "I'm Interested" email submission handler
index.php redirects to the first active tree
admin/ admin-only pages (session auth), kept separate from public/
dashboard.php / tree_form.php manage individual plant assets ("Tree ID")
zones.php / zone_form.php manage zones (physical areas)
species.php / species_form.php manage species (shared name/care/content)
docs/ design docs, install.sql (run this), migrations/
See SETUP.md to get it running.
Seed admin login: admin / ChangeMe123! — change this immediately in production (see SETUP.md).