{"id":38767968,"url":"https://github.com/blues/airnote.live","last_synced_at":"2026-01-17T12:01:55.401Z","repository":{"id":39789608,"uuid":"336009555","full_name":"blues/airnote.live","owner":"blues","description":"Source for the airnote.live landing page, and an open-source reference implementation for customers looking to create web-based Notecard configuration sites.","archived":false,"fork":false,"pushed_at":"2025-12-22T22:39:03.000Z","size":5639,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-12-24T08:59:21.846Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Svelte","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/blues.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-02-04T16:12:17.000Z","updated_at":"2025-12-22T22:39:06.000Z","dependencies_parsed_at":"2023-10-04T23:16:27.989Z","dependency_job_id":"c761eb88-50a6-4c5d-8396-ca4ed43b00c0","html_url":"https://github.com/blues/airnote.live","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/blues/airnote.live","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blues%2Fairnote.live","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blues%2Fairnote.live/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blues%2Fairnote.live/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blues%2Fairnote.live/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blues","download_url":"https://codeload.github.com/blues/airnote.live/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blues%2Fairnote.live/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28508464,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T11:50:55.898Z","status":"ssl_error","status_checked_at":"2026-01-17T11:50:55.569Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-17T12:01:55.038Z","updated_at":"2026-01-17T12:01:55.372Z","avatar_url":"https://github.com/blues.png","language":"Svelte","funding_links":[],"categories":[],"sub_categories":[],"readme":"# airnote.live\n\nThis repo contains the source for [airnote.live](https://airnote.live), an\nopen-source reference implementation of a web-based\n[Notecard](https://blues.io/) configuration site.\n\n## Local Development\n\nThe airnote.live site runs on top of Node.js, so as such you’ll need to start by [installing Node.js](https://nodejs.org/en/download/) if you haven’t already.\n\nIt also uses npm as its package manager, so [add npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) as well if it's not already installed locally.\n\nNext, run command `npm install`, which installs all of the site’s dependencies.\n\n```sh\nnpm install\n```\n\nThen, run `npm run dev`, which starts up a development server.\n\n```sh\nnpm run dev\n```\n\n## Web App\n\nYou can access the airnote.live site locally at `http://localhost:5173/`. To view a specific device’s dashboard, you’ll need to use a URL of `http://localhost:5173/\u003cdevice_uid\u003e/dashboard`.\n\nThe airnote.live site uses the [Svelte](https://svelte.dev/) library in conjunction with the production ready [SvelteKit](https://kit.svelte.dev/) web framework, and the entry-point is [./src/routes/+page.svelte](./src/routes/+page.svelte).\n\nIt fetches all of its data from the Notehub Airnote project via the Blues [Notehub JS library](https://www.npmjs.com/package/@blues-inc/notehub-js). The Notehub JS repo requires an authentication token to interact with the Notehub API.\n\nYou can set this up locally by creating a `.env` file, and pasting in the contents below.\n\n```plaintext\nHUB_AUTH_TOKEN=\u003cyour token\u003e\n```\n\nYou can refer to [the Notehub API’s authentication documentation](https://dev.blues.io/reference/notehub-api/api-introduction/#authentication) for steps on how to generate your own token.\n\nIt also uses a Mapbox API token to display the device's location on a map on the dashboard page. This token can also be added to the `.env` file, under the name listed below.\n\nYou can create your own Mapbox API token by [signing up for a free Mapbox account](https://account.mapbox.com/auth/signin/?route-to=%22https%3A%2F%2Faccount.mapbox.com%2F%22) and following these [instructions to create an access token](https://docs.mapbox.com/help/glossary/access-token/).\n\n```plaintext\nPUBLIC_MAPBOX_TOKEN=\u003cyour mapbox token\u003e\n```\n\n## Testing\n\n### Unit Testing\n\nThis repo has a unit testing setup based on [Vitest](https://vitest.dev/) and\n[Testing Library](https://testing-library.com/docs/svelte-testing-library/intro/). You can run the test suite with the following command.\n\n```sh\nnpm run test\n```\n\n### E2E Testing\n\nIt also has end-to-end testing using [Cypress](https://www.cypress.io), which is designed to mimic how an actual user would interact with the site.\n\nAll E2E testing is located in the [cypress/](./cypress/) folder. Cypress can be run either in with or without a visible browser (\"headless mode\"). The visible browser is good for debugging failing tests, and headless is good for running in CI pipelines like GitHub Action workflows.\n\nTo run Cypress tests, first start the local development server in one terminal window with:\n\n```sh\nnpm run dev\n```\n\nThen, start the Cypress tests running in another terminal window. For headless Cypress tests, which will only print their output to the console, run the following command.\n\n```sh\nnpm run cypress:run\n```\n\nFor a UI where you can interact with tests, choose which files to run, debug, etc., run Cypress in \"headed mode\" like so:\n\n```sh\nnpm run cypress:open\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblues%2Fairnote.live","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblues%2Fairnote.live","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblues%2Fairnote.live/lists"}