From 1e3f8dc1ad4f348888bd0758c48aed38ca98f03d Mon Sep 17 00:00:00 2001 From: Skylar Grant Date: Thu, 15 Oct 2026 16:53:51 -0400 Subject: [PATCH] . --- CLAUDE.md | 40 +++++++++++++++++++++++++++++++++++++ SESSION.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ docs/NOTES.md | 27 +++++++++++++++++++++++++ docs/ROADMAP.md | 37 ++++++++++++++++++++++++++++++++++ 4 files changed, 157 insertions(+) create mode 100644 CLAUDE.md create mode 100644 SESSION.md create mode 100644 docs/NOTES.md create mode 100644 docs/ROADMAP.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..70cea13 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,40 @@ +# CLAUDE.md + +Context for Claude Code sessions in this repo. Keep this short. Longer notes live in `docs/`. + +## Project + +A help desk dashboard for ManageEngine ServiceDesk Plus Cloud (`ithelp.mainecc.edu`). It currently runs as a single Node/Express server. The central region (KVCC, EMCC, CMCC, MCCS) is configured through `.env`. + +- **Goal:** multi-region, multi-user, customisable. See `docs/ROADMAP.md`. +- **Decisions, API gotchas and known issues:** `docs/NOTES.md`. Read it before touching any SDP query. +- **Latest session summary and handoff:** `SESSION.md`. + +## Run + +```text +npm install +npm run app # node src/server.js from the repo root; .env lives in the repo root +``` + +The app is served at . Sign in with the Connect button, which uses Zoho's device-code flow. + +## Layout + +- `src/server.js`: reads `.env` and starts everything. +- `src/auth.js`: Zoho device-code sign-in. +- `src/boardService.js`: token, state and refresh timers. +- `src/tickets.js`: all SDP queries (closed feed, status table, closed today, unassigned). +- `src/weather.js`: OpenWeatherMap, cached for 10 minutes. +- `src/routes.js`: the `/api/*` routes. +- `src/public/index.html`: the whole front end in one file (inline CSS and JS, no build step). + +## Working agreements + +- Never print or commit `.env` values (Zoho client secret, OpenWeatherMap key). Redact them when inspecting. +- There are no automated tests yet. Verify server logic by stubbing `axios.get`. Resolve axios from the project with `require.resolve('axios', { paths: [dir] })` so the stub hits the same instance. Verify the page by evaluating its `