Initial import of the Kiang Wu lab dashboard.
Co-authored-by: Cursor <cursoragent@cursor.com>
parents
Showing
.dockerignore
0 → 100644
.env.example
0 → 100644
.gitignore
0 → 100644
README.md
0 → 100644
docker-compose.yml
0 → 100644
docs/_research_extract.txt
0 → 100644
docs/access-hcnetsdk.md
0 → 100644
docs/point-map.md
0 → 100644
package-lock.json
0 → 100644
This source diff could not be displayed because it is too large.
You can
view the blob
instead.
package.json
0 → 100644
| { | |||
| "name": "jh-lab-dashboard", | |||
| "private": true, | |||
| "version": "0.1.0", | |||
| "workspaces": [ | |||
| "web", | |||
| "server" | |||
| ], | |||
| "scripts": { | |||
| "dev": "concurrently -n web,server -c cyan,magenta \"npm run dev -w web\" \"npm run dev -w server\"", | |||
| "dev:web": "npm run dev -w web", | |||
| "dev:server": "npm run dev -w server", | |||
| "build": "npm run build -w web", | |||
| "start": "npm run start -w server", | |||
| "docker:up": "docker compose up -d --build", | |||
| "docker:down": "docker compose down", | |||
| "docker:logs": "docker compose logs -f --tail=200" | |||
| }, | |||
| "devDependencies": { | |||
| "concurrently": "^9.1.2" | |||
| } | |||
| } |
server/Dockerfile
0 → 100644
server/package.json
0 → 100644
| { | |||
| "name": "server", | |||
| "private": true, | |||
| "version": "0.1.0", | |||
| "type": "module", | |||
| "scripts": { | |||
| "dev": "tsx watch src/index.ts", | |||
| "start": "tsx src/index.ts", | |||
| "build": "tsc -p tsconfig.json" | |||
| }, | |||
| "dependencies": { | |||
| "bcryptjs": "^3.0.2", | |||
| "cors": "^2.8.5", | |||
| "express": "^4.21.2", | |||
| "jsonwebtoken": "^9.0.2", | |||
| "modbus-serial": "^8.0.23", | |||
| "pg": "^8.23.1", | |||
| "tsx": "^4.19.3", | |||
| "ws": "^8.18.1" | |||
| }, | |||
| "devDependencies": { | |||
| "@types/cors": "^2.8.17", | |||
| "@types/express": "^4.17.21", | |||
| "@types/jsonwebtoken": "^9.0.9", | |||
| "@types/node": "^22.13.10", | |||
| "@types/pg": "^8.23.1", | |||
| "@types/ws": "^8.18.0", | |||
| "typescript": "^5.8.2" | |||
| } | |||
| } |
server/src/access/adapter.ts
0 → 100644
server/src/auth/middleware.ts
0 → 100644
server/src/billing/store.ts
0 → 100644
server/src/config.ts
0 → 100644
server/src/db/collect.ts
0 → 100644
server/src/db/migrate.ts
0 → 100644
server/src/db/pool.ts
0 → 100644
server/src/db/state.ts
0 → 100644
server/src/index.ts
0 → 100644
server/src/light/store.ts
0 → 100644
server/src/mock/generator.ts
0 → 100644
server/src/realtime/store.ts
0 → 100644
server/src/routes/auth.ts
0 → 100644
server/src/routes/billing.ts
0 → 100644
server/src/routes/light.ts
0 → 100644
server/src/routes/realtime.ts
0 → 100644
server/src/routes/settings.ts
0 → 100644
server/src/routes/users.ts
0 → 100644
server/src/routes/video.ts
0 → 100644
server/src/settings/store.ts
0 → 100644
server/src/types.ts
0 → 100644
server/src/users/fileStore.ts
0 → 100644
server/src/users/store.ts
0 → 100644
server/src/video/store.ts
0 → 100644
server/tsconfig.json
0 → 100644
web/.gitignore
0 → 100644
web/Dockerfile
0 → 100644
web/README.md
0 → 100644
web/index.html
0 → 100644
web/nginx.conf
0 → 100644
web/package.json
0 → 100644
| { | |||
| "name": "web", | |||
| "private": true, | |||
| "version": "0.1.0", | |||
| "type": "module", | |||
| "scripts": { | |||
| "dev": "vite", | |||
| "build": "vue-tsc -b && vite build", | |||
| "preview": "vite preview" | |||
| }, | |||
| "dependencies": { | |||
| "pinia": "^3.0.1", | |||
| "vue": "^3.5.42", | |||
| "vue-router": "^4.5.0" | |||
| }, | |||
| "devDependencies": { | |||
| "@types/node": "^24.13.3", | |||
| "@vitejs/plugin-vue": "^6.0.8", | |||
| "@vue/tsconfig": "^0.9.1", | |||
| "typescript": "~5.8.2", | |||
| "vite": "^6.2.2", | |||
| "vue-tsc": "^2.2.8" | |||
| } | |||
| } |
web/public/cams/cam-cold.png
0 → 100644
1.93 KB
web/public/cams/cam-corridor.png
0 → 100644
1.84 KB
web/public/cams/cam-gate.png
0 → 100644
1.73 KB
web/public/cams/cam-pcr.png
0 → 100644
1.8 KB
web/public/cams/cam-room.png
0 → 100644
1.71 KB
web/public/cams/cam-sample.png
0 → 100644
1.84 KB
web/public/favicon.svg
0 → 100644
web/public/icons.svg
0 → 100644
web/public/models/scene-model.glb
0 → 100644
File added
web/src/App.vue
0 → 100644
web/src/api/http.ts
0 → 100644
web/src/components/charts/CostLineChart.vue
0 → 100644
web/src/components/icons/AppIcon.vue
0 → 100644
web/src/components/panels/AlarmScroll.vue
0 → 100644
web/src/components/panels/ColdScroll.vue
0 → 100644
web/src/components/panels/VavScroll.vue
0 → 100644
web/src/components/scene/SceneViewport.vue
0 → 100644
web/src/composables/useClock.ts
0 → 100644
web/src/composables/useMacauWeather.ts
0 → 100644
web/src/composables/useStageScale.ts
0 → 100644
web/src/data/rooms.ts
0 → 100644
web/src/layouts/ScreenLayout.vue
0 → 100644
web/src/main.ts
0 → 100644
web/src/router/index.ts
0 → 100644
web/src/stores/auth.ts
0 → 100644
web/src/stores/realtime.ts
0 → 100644
web/src/styles/screen.css
0 → 100644
web/src/styles/tokens.css
0 → 100644
web/src/types.ts
0 → 100644
web/src/types/billing.ts
0 → 100644
web/src/types/light.ts
0 → 100644
web/src/types/video.ts
0 → 100644
web/src/views/access/AccessView.vue
0 → 100644
web/src/views/cold/ColdView.vue
0 → 100644
web/src/views/hvac/HvacView.vue
0 → 100644
web/src/views/light/LightView.vue
0 → 100644
web/src/views/login/LoginView.vue
0 → 100644
web/src/views/metering/MeteringView.vue
0 → 100644
web/src/views/overview/OverviewView.vue
0 → 100644
web/src/views/pressure/PressureView.vue
0 → 100644
web/src/views/settings/SettingsView.vue
0 → 100644
web/src/views/stub/StubView.vue
0 → 100644
web/src/views/users/UserManageView.vue
0 → 100644
web/src/views/vav/VavView.vue
0 → 100644
web/src/views/video/VideoView.vue
0 → 100644
web/src/vite-env.d.ts
0 → 100644
web/tsconfig.app.json
0 → 100644
web/tsconfig.json
0 → 100644
web/tsconfig.node.json
0 → 100644
web/vite.config.ts
0 → 100644
Please
register
or
sign in
to comment