feat/kickstarter-refactoring#37
Open
mateuscardosodeveloper wants to merge 10 commits into
Open
Conversation
Drop the previous Node-based template (src/, package.json, tsconfig, vitest, biome, tagoconfig, npmrc, docs PDF) ahead of the Deno+Vite rewrite landed in subsequent commits.
Add the root deno.json that ties app/ and widgets/ into a single Deno workspace, declares shared tasks, fmt and lint config. Update .gitignore for the new toolchain (Vite _dist, Deno locks, local tooling).
Introduce app/ with one self-contained analysis per file: dashboard CRUDs (organization, group, sensor, alert, user), action handlers (uplink, alert dispatcher) and the scheduled inactivity check. Each file is copy/paste-ready into a TagoIO Analysis.
Introduce widgets/ as a Vite + React 19 + Tailwind v4 workspace with three production widgets used by the Kickstarter dashboards: sensor-status, cold-room-card-data and cold-room-monitor. Includes shared helpers, per-widget deno.json, and a build.ts that builds every widget into _dist/<name>/.
Add the markdown files rendered inside each dashboard's Helper tab (Organizations, Groups, Sensors, Alerts, Users, Freezer Simulator). These explain to end users what each dashboard does and how the underlying analyses behave.
Replace the legacy template README with documentation that reflects the actual Kickstarter app: multi-tenant model (Organization → Group → Sensor), full dashboard map, custom-widget assignments, and the three top-level workspaces (app/, widgets/, dashboard-helpers/).
Replace the npm-based CI (Node 18 + npm ci/test/build) with a Deno pipeline that runs deno install, fmt:check, lint and test on macOS runners — matching the new local workflow.
Enable the Deno LSP across the workspace, set deno fmt as the default formatter for TS/JS/JSON, wire Tailwind IntelliSense to the widget styles, and recommend the deno extension.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does PR do?
Full rewrite of the Kickstarter template. The previous Node + Vitest scaffold is replaced by a Deno workspace that ships a complete multi-tenant TagoIO application — analyses, custom dashboard widgets, and the in-app helper docs that every dashboard renders.
🏗️ Toolchain switch
package.json,tsconfig.json,vitest.config.js,biome.json,tagoconfig.json, the legacysrc/tree and the docs PDF.deno.jsondefines the workspace, shared tasks, fmt and lint config.npm ci / test / buildon Node 18 todeno install / fmt:check / lint / teston Deno 2.7.deno fmtas formatter, and wire Tailwind IntelliSense for each widget.📐 New repo layout
app/— Deno workspace with one self-contained analysis per file. No bundle step: each.tsis copy/paste-ready into a TagoIO Analysis.analysis/dashboard/— CRUD analyses for organizations, groups, sensors, alerts and users, dispatched by the SDK'sAnalysisRouter.analysis/actions/— uplink handler that feeds the Cold Room widgets, and the per-alert dispatcher.analysis/scheduled/— hourly inactivity check that powers the Sensors connectivity summary.widgets/— Vite + React 19 + Tailwind v4 workspace with three production widgets:sensor-status(Sensors / Overview)cold-room-card-data(Groups / Cold Rooms)cold-room-monitor(Sensor Detail / Overview)widgets/shared/for cross-widget helpers and abuild.tsthat builds every widget into_dist/<name>/.dashboard-helpers/— markdown rendered inside each dashboard's Helper tab (Organizations, Groups, Sensors, Alerts, Users, Freezer Simulator).📚 Documentation
README.mdrewritten around the actual application: multi-tenant model (Organization → Group → Sensor), full dashboard map with the CRUD analysis and custom widget for each one, and the three top-level workspaces.app/README.mddocuments the self-contained-file convention, theAnalysisRoutermapping (input form / custom button / device list) and the manual deploy flow (copy/paste into the TagoIO admin panel).widgets/README.mdcovers the iframe model, the four root files, hooks-only data access, HTTPS tunnel dev flow and how to add a new widget.🔌 Impact
widgets/_dist/<name>/.TODOs
sensor-status,cold-room-card-dataandcold-room-monitorwith the look-and-feel of the surrounding TagoIO dashboard widgets (typography, spacing, colors, card chrome) so the iframes stop looking like a separate app.crud-*.tsanalyses andalert-dispatcher.tscurrently push validation errors and alert notification text to the user as raw English strings. Replace each user-facing string with a dictionary key.cold-room-card-datacustom widget — Add a dropdown that lets the user pick one or more Groups.README.md— Expand and refine the root README