← Zakázky

Core Board Library - Senior Full-Stack Developer

Rozpočet: $800.0 FIXED / ⭐ 3.41 (14) United States

mysql, javascript, jquery, restful-api, php

Please Review the attached scope & milestone agreement if interest please send any questions. Thanks. PROJECT CORE — LIBRARY & BOARD Operational System of Record, Operational Visibility Surface & Policy-Driven Execution Engine — Scope v1.2 (Finalized, code-verified; Programs/PDEE layered in) System: HotelHub / OperationsHub Framework: PHP CodeIgniter 3.x (Existing Monolith) Scope Type: Core Platform / Spine Completion Dependencies • Foundations Hierarchy Architecture (hotel context, identity, permissions, isolation, time zone) • Agenda Architecture (execution surface) • Template Builder Lifecycle (draft / review / publish) • Shared Operational Object Model Doctrine • Existing AI Intelligence Layer (advisory only) 1. PURPOSE & ARCHITECTURAL POSITION Library and Board complete the operational spine of HotelHub: Library → Agenda → Board. Library is the operational system of record. Agenda is the execution surface. Board is the operational visibility and exception surface. These are not standalone modules and may not be built as such. They are connected surfaces over a single shared operational object model. An operational object must flow Library → Agenda → Board carrying the same identity, lifecycle state, targeting, permissions, tenant scope, and immutable audit history at every stage. This scope completes that spine while preserving the platform’s existing governance, lifecycle, isolation, and execution-boundary doctrine. 2. SHARED OPERATIONAL OBJECT MODEL (FOUNDATION — NON- NEGOTIABLE) Library and Board MUST be built on a single shared operational object model. This model is the connective tissue of the platform and must be defined once and reused by Library, Agenda, and Board. It may not be re-implemented per surface. Every operational object must carry, as shared attributes: • stable object identity (UUID + human-readable reference ID) • object type (SOP, checklist, inspection, PM workflow, log, recurring Program, directive, reference object, one-time / recurring task) • lifecycle state (draft, in review, published, superseded, archived) • tenant scope (hotel_id / organization_id, enforced server-side) • targeting metadata (portfolio / property / department / role / position) • permissions and visibility rules • relationship links (parent-child, dependency, supersession, Program-linked, reference- linked) • immutable provenance and lineage (creator, modifier, approver, deployment authority, version history) • audit history Behavioral differences between object types must be expressed as overlays on this shared model, not as isolated systems with their own governance, recurrence, permission, audit, or lifecycle logic. 3. LIBRARY — OPERATIONAL SYSTEM OF RECORD Library is the single canonical home for all operational objects. It is not a passive document store and not a per-tool catchall; it is the system of record that every other surface reads from and writes into. 3.1 Object Storage & Types Library MUST store all operational object types in the shared object model. No operational object type may maintain a separate, isolated store outside Library where Library compatibility is possible. Object types include: • SOPs, checklists, inspection workflows, PM workflows • operational logs (including lost & found) • templates (Template Builder remains schema/lifecycle authority) • Programs (push + guaranteed deterministic closure across properties — see 3.6) • operational directives and reference objects • one-time and recurring tasks • inventory objects (the existing inventory subsystem is the backbone — see 3.7) 3.2 Lifecycle (MANDATORY) All objects move through the existing governed lifecycle: • Draft → Review → Publish → (Supersede / Archive) No object becomes executable until published. No surface may bypass this lifecycle. There is one lifecycle, shared with Template Builder — no parallel publishing system. 3.3 On-Ramp & Read Contracts • Studio, Import, and Conversion write into Library as Drafts only — never as published or executable objects. • Agenda reads published objects from Library for execution. • Board reads object and execution state for visibility — it does not own the record. • AI may assist authoring/structuring but never writes the published record and never publishes. The system must function fully with AI disabled. 3.4 Versioning, Provenance & Lineage • Re-import or revision creates a new immutable version; it never overwrites a published object. • Supersession relationships are preserved and traceable. • Provenance (who created / modified / approved / published) is immutable where governance requires. 3.5 Isolation, Permissions & Retrieval • All Library access is hotel/tenant-isolated and enforced server-side — no cross-tenant visibility. • Visibility and edit rights are role-aware and permission-enforced server-side (UI restriction alone is insufficient). • Objects are retrievable by type, status, targeting, and relationship for reuse across the platform. 3.6 Programs & Program Builder (Library side of PDEE) “Programs” is the user-facing term; the engine beneath them is the Policy-Driven Execution Engine (PDEE) defined in Section 4A. Deep Clean, fire extinguishers, backflow, pool logs, brand audits, preventive maintenance, vehicle inspections, asset verification — all are Programs powered by one engine. Users do not create tasks; they create Programs, and the engine generates the governed work. Library gains a Program Builder. A Program is a governed operational policy carrying: name, description, program type, attached form/template, cadence, coverage rules, targeting rules, eligibility rules, closure rules, escalation rules, visibility rules. • Program Builder supports: create, edit draft, review, publish, supersede, archive — using the existing Library lifecycle (no separate publishing system). • Library stores Program definitions, versions, history, attachments, and templates as shared operational objects. • Programs are authored manually in Program Builder, and may also be drafted via on- ramps (Studio / Import) under the Draft-only contract in 3.3 — see 4A.8. • Closure is deterministic and rule-driven; non-closure surfaces on the Board as an exception. AI is advisory only and never generates, closes, or publishes (see 4A.7). 3.7 Inventory (Existing Backbone) • Inventory is the most complete existing subsystem (items with asset flag, serial, barcode, cost, par/reorder; counts, adjustments, audit logs). It is reused, not rebuilt. • An inventory list = an operational object versioned in the Library; an inventory count/check = a (recurring) Agenda task. • The housekeeping checklist already carries an inventory hook (inventory_option); wiring it so daily room cleaning feeds a live inventory enables portfolio FF&E/asset visibility. 4. BOARD — OPERATIONAL VISIBILITY & EXCEPTION SURFACE Board is where the organization sees operational reality: what is being executed, what is failing or pending, and the operational statistics that matter. Board surfaces and routes; it does not execute. Execution runtime behavior remains in Agenda and the governed execution systems. 4.1 Exit States & Exception Surfacing (CORE) HotelHub is a closed-loop execution engine: every task that enters the system must exit with a documented, immutable state. Board surfaces those states, reading from Agenda’s single consolidated execution record (the one execution truth established by Agenda Phase 3 — not the legacy parallel paths). Documented exit states: • Completed • Exception • Passed to Next Shift • Skipped / N-A • Incomplete • Escalated Board MUST also surface Program coverage: per-property closure, and any property that did not close the loop as a deterministic exception. Exceptions are captured from real execution records — never inferred or fabricated. No exception may be silently dropped. Each surfaced item links back to its source operational object and execution record for full traceability. 4.2 Exception Triage & Routing • Board may surface, filter, group, and route exceptions to the appropriate role/owner for resolution. • Resolution / completion actions occur in the governed execution systems (Agenda), not as a parallel execution engine inside Board. • Routing and escalation visibility must respect role and tenant scope. 4.3 Operational Statistics & Visibility Board MUST present operational statistics derived from real execution data only — no simulated, static, or placeholder metrics. Required visibility includes: • completion / closure status across operational objects • open vs. resolved exceptions, by taxonomy category • trends over time (completion, exceptions, escalations) • visibility by property, department, role, and position • drill-down from any statistic to the underlying execution record 4.4 Role-Adaptive Presentation • Board presentation adapts to role: executives see restricted/rolled-up visibility; managers/MOD see operational detail; frontline sees only what their role permits. • Presentation differences are visibility overlays on the shared model — not separate data pipelines. • All views remain tenant-isolated and permission-enforced server-side. 4.5 Execution Boundary (NON-NEGOTIABLE) Board may not become a direct execution runtime surface. Task completion, execution tracking, verification, and enforcement remain in Agenda / Board execution systems / Programs. Board reads and routes; it does not absorb execution responsibility. 4.6 Program / PDEE Visibility Board is the compliance surface for Programs. It MUST display, from real execution records only: • Program Health, Coverage %, Open Exceptions, Overdue Programs, Upcoming Programs, Program Trends • drill-down path: Program → Coverage → Execution Records • coverage and closure status are read from the engine’s rule-calculated state — never recomputed or overridden in Board 4A. POLICY-DRIVEN EXECUTION ENGINE (PDEE) PDEE is the operational automation engine that converts policy, cadence, and coverage requirements into deterministic operational execution. It reads published Programs from Library, generates governed work into Agenda, and feeds closure/coverage state to Board. Its purpose is singular: operational obligations cannot be forgotten, skipped, or silently disappear. PDEE is deterministic end-to-end — no AI in any generation, coverage, or closure decision. Architectural placement: PDEE sits between Library (where Programs are defined) and Agenda (where work executes). It introduces no parallel object store, lifecycle, audit, or scheduler; it builds on the shared object model, the existing Library lifecycle, the existing cron runner, and the shared audit_logs spine. 4A.1 Cadence Engine Supported cadences: one-time, daily, weekly, monthly, quarterly, semiannual, annual, custom interval. Generation is deterministic; there is no AI scheduling. Built on the existing cron_job runner via a shared interface — not a new scheduler. 4A.2 Coverage Rule Engine Coverage rules define completion requirements: every room / floor / building / asset / fire extinguisher, percentage samples (e.g., 10%, 25%), randomized samples, or a custom target list. Coverage status is calculated by rules from execution records — never by AI, never manually set. 4A.3 Eligibility Engine Programs determine who may execute, by hotel, department, position, role, team, asset group, or location group. Only eligible users receive generated work. Eligibility resolves server-side against Foundations. 4A.4 Execution Generation Published Programs automatically generate Agenda work — tasks, inspections, logs, audits. Generated work inherits Program identity, hotel, department, template, cadence, and coverage requirement, plus its audit trail. All generated work executes entirely inside Agenda; Agenda remains the execution authority. 4A.5 Closure Engine Program closure states: Complete, Complete With Exceptions, In Progress, Coverage Not Met, Overdue, Escalated. Closure is calculated from execution records and is never manually overridden. Non-closure and Coverage-Not-Met surface on the Board as deterministic exceptions. 4A.6 Audit (Immutable) Every Program action records Created By, Modified By, Published By, Generated By Engine, Completed By, and Verified By. These write to the existing shared audit_logs spine (which carries immutability triggers) — not a new Program-specific log. 4A.7 AI Doctrine AI may suggest coverage risks, predict misses, and summarize status. AI may NOT generate execution records, mark coverage complete, close Programs, publish Programs, or assign accountability. PDEE runs fully with AI disabled. 4A.8 Studio On-Ramp (Program Authoring) — forward-compatible PDEE is designed to accept Programs authored through Ops Studio as a prompt-first on-ramp: a user describes an obligation in natural language (e.g., “quarterly fire-extinguisher inspection, every extinguisher, all properties”) and Studio drafts the Program definition — cadence, coverage, eligibility, template — as a Draft in Library under the existing Draft-only on-ramp contract (3.3). A human reviews and publishes; PDEE then runs it deterministically. Studio drafts the policy; it never runs the engine, generates work, or closes a loop. This preserves the execution boundary and the run-with-AI-disabled doctrine. The Studio authoring build itself is separate work; this scope only guarantees PDEE/Library accept such drafts through the standard contract. 5. SHARED GOVERNANCE & ARCHITECTURE RULES (MANDATORY) • Reuse existing shared layers — governance, lifecycle, permissions, recurrence, audit, isolation, reporting — wherever compatible. • No isolated or parallel subsystems where a shared operational architecture layer already exists. • All restrictions, permissions, and isolation enforce server-side before behavior, never UI- only. • All governance-relevant actions generate immutable audit records; no parallel logging systems. • The platform must run fully with AI disabled; AI is advisory and never writes the record or executes. • Must integrate into the existing CodeIgniter monolith and preserve migration compatibility. 6. SECURITY & TENANT ISOLATION • All Library objects and Board views are hotel/tenant-isolated; no cross-tenant exposure. • Hotel context resolves from the active session/assignment server-side — never from client input. • Permissions are role-aware and enforced server-side at the data layer. • Immutable audit and provenance preserved across the object lifecycle. 6A. CODE-VERIFIED REUSE & DEPENDENCY STATE What already exists in the codebase and MUST be consumed rather than rebuilt (verified against the repo): • Lifecycle: Template Builder draft→review→publish lifecycle exists and is the authority — reuse it; do not create a parallel publishing path. • Tenant isolation / identity: Foundations provides hotel context, roles, assignments (recently audited) — reuse it. • Audit: a general audit_logs table exists WITH immutability triggers. Write provenance/audit to that shared spine. Do NOT add another audit/log table. (Several module logs — AI usage, AI settings, inventory, WebRTC, key-log — still exist alongside it; consolidating them onto audit_logs is a planned foundational project.) • Recurrence: there is no unified recurrence engine, but a cron runner (cron_job) exists and some objects carry a frequency field. Design recurrence to a shared interface built on the existing cron runner; do not invent a parallel scheduler. • Execution truth: Board reads from Agenda’s single consolidated execution record (Agenda Phase 3 collapses the legacy parallel paths — PMP/checklist, agendaprogress, templatesubmissions — into one). Board must not read the legacy paths. • Inventory: the existing inventory subsystem is the backbone — reuse it; wire housekeeping’s inventory_option hook into it. • Key log: already part-wired to Agenda (key_log_agenda_executions) — keep/extend that integration rather than building anew. 7. MILESTONES (INDEPENDENTLY GATEABLE) Project Core is one workstream, one shared object model. Each milestone closes independently and is acceptance-gated; approval of one does not guarantee continuation. Milestone 1 — Shared Operational Object Model + Library Foundation • define and implement the shared object model • Library object storage across all operational types • tenant isolation + server-side permissions foundation • lifecycle state model (draft→review→publish→supersede/archive) Milestone 2 — Library Lifecycle, Contracts & Provenance • draft→publish lifecycle enforcement • on-ramp write contracts (Studio / Import / Conversion → Draft only) • read contracts for Agenda / Board • immutable versioning, supersession, provenance/lineage • retrieval by type/status/targeting/relationship Milestone 3 — Board Visibility, Exceptions & Statistics • live operational status surfacing from real execution records • exception capture & surfacing across the full taxonomy • exception triage/routing (action remains in execution systems) • operational statistics & trends from real data only, with drill-down Milestone 4 — Role-Adaptive Presentation, QA & Governance Hardening • role-adaptive Board presentation (exec / manager / frontline) • permission + isolation validation across Library and Board • provenance / audit validation • governance audit remediation and production hardening • documentation + architecture summary PDEE Engine Track (gated; starts after M1 Library foundation + Agenda Phase 3) The PDEE engine is a distinct, independently-gateable track. It does not start until the shared object model + Library foundation (M1) are in place and Agenda Phase 3 has consolidated the single execution record it generates into. It may run as a track inside Project Core or be spun out as a separate “Phase 3.5” engagement — see Decisions to Confirm. Milestone P1 — Program Object Model & Builder • Program schema on the shared object model • Program Builder in Library • lifecycle integration (reuse existing draft→publish) • Library integration (definitions, versions, history, attachments) Milestone P2 — Cadence & Eligibility Engine • deterministic generation engine on the existing cron runner • cadence/scheduling logic • eligibility logic resolved against Foundations • Agenda work generation Milestone P3 — Coverage & Closure Engine • coverage rule calculations from execution records • closure state logic • escalation logic Milestone P4 — Board Visibility & Reporting • Program dashboards & health • coverage reporting • trend reporting • drill-down Program → Coverage → Execution Records Milestone P5 — QA, Hardening & Governance • audit validation against the shared audit_logs spine • multi-hotel validation • security testing • documentation 8. ACCEPTANCE CRITERIA • a single shared operational object model is implemented and reused by Library and Board (no per-surface re-implementation) • objects flow Library → Agenda → Board preserving identity, lifecycle, targeting, permissions, and audit • Library enforces one lifecycle with no parallel publishing path • no object is executable before publish; on-ramps write Drafts only • Board surfaces the full exception taxonomy from real records with no silent drops • all Board statistics derive from real execution data — no mock or static metrics • role-adaptive presentation enforced server-side; no cross-tenant leakage • immutable provenance/audit preserved; no parallel governance, audit, or logging systems • system functions with AI disabled 9. EXPLICIT EXCLUSIONS (HARD LOCKS) • no parallel object store, lifecycle, governance, recurrence, audit, permission, or reporting systems • Board may not become a direct execution runtime surface • no autonomous publishing, assignment, or operational enforcement • no simulated, static, or placeholder statistics/telemetry • no client-supplied tenant/hotel context • no cross-hotel intelligence or cross-tenant visibility • AI may not write the published record or execute 10. DECISIONS TO CONFIRM Two forks are scoped with a default; confirm or flip: • Board action scope (defaulted to: surface + triage + route only; resolution happens in Agenda). If Board should allow limited in-place actions (e.g., acknowledge/close an exception), that must be added explicitly and still route through governed execution — not a parallel engine. • Library object-type set (defaulted to the full operational set above). Confirm the exact types in scope for v1 vs. reserved for later, so no unsupported type is silently accepted. • PDEE packaging (defaulted to: included here as a gated engine track). Decide whether to keep PDEE as a track inside Project Core or spin it out as a separate “Phase 3.5” engagement. Recommendation: spin out if keeping Library & Board independently closeable matters; keep unified if one developer/context is the priority. Either way, PDEE starts only after the Library foundation + Agenda Phase 3. • Programs naming (PDEE = engine; “Programs” = user-facing term). Confirm both terms; “PDEE” was the engine name from
Otevřít na Upwork