{"id":39405794,"url":"https://github.com/tago-io/analysis-kickstarter-rtls","last_synced_at":"2026-01-18T03:30:20.540Z","repository":{"id":311053990,"uuid":"317572852","full_name":"tago-io/analysis-kickstarter-rtls","owner":"tago-io","description":"Ready-to-use application with essential tracking functionalities to jumpstart your real-time location system projects on the TagoIO platform.","archived":false,"fork":false,"pushed_at":"2025-08-21T20:03:06.000Z","size":1005,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-08-21T22:01:23.824Z","etag":null,"topics":["analysis","kickstarter","learn","rtls","tagoio"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tago-io.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2020-12-01T14:47:36.000Z","updated_at":"2025-05-01T20:49:59.000Z","dependencies_parsed_at":"2025-08-21T22:01:33.367Z","dependency_job_id":"80acd765-ff2c-43b1-88ce-25c350dc9658","html_url":"https://github.com/tago-io/analysis-kickstarter-rtls","commit_stats":null,"previous_names":["tago-io/analysis-kickstarter-rtls"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/tago-io/analysis-kickstarter-rtls","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tago-io%2Fanalysis-kickstarter-rtls","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tago-io%2Fanalysis-kickstarter-rtls/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tago-io%2Fanalysis-kickstarter-rtls/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tago-io%2Fanalysis-kickstarter-rtls/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tago-io","download_url":"https://codeload.github.com/tago-io/analysis-kickstarter-rtls/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tago-io%2Fanalysis-kickstarter-rtls/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28528102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["analysis","kickstarter","learn","rtls","tagoio"],"created_at":"2026-01-18T03:30:19.856Z","updated_at":"2026-01-18T03:30:20.523Z","avatar_url":"https://github.com/tago-io.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cbr/\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://assets.tago.io/tagoio/analysis.png\" width=\"200px\" alt=\"TagoIO\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n# RTLS Kickstarter Application for TagoIO\nThis is a starter application to be used with TagoIO. It includes the main required features for a regular application to run, with functionality to facilitate setting up new sensors within the application. You can use the scripts provided here to learn or to develop your own solution with its foundations.\n\n# Components\nThe application contains the following features:\n* Two levels: Organization and Sites\n* Three access levels: Application Administrator, Organization Administrator, and End User\n* Setup alerts\n* Generate reports\n* Navigation between dashboards and Run sidebar buttons\n\n## Easy Installation\nYou can quickly install the application in your account by using the Import tool:\n* First, make sure your RUN is activated. Visit this [link](https://admin.tago.io/run/), click on \"Start now\", and then save the change.\n* Go to your [profile settings](https://admin.tago.io/account/).\n* Generate a Token in your profile, making sure to set the **expire time** to never.\n* Copy the Token.\n* Access the Import tool by [clicking here](https://import-application.tago.run/dashboards/info/63e698562df1360009606d71?anonymousToken=00000000-5bbc-b03b-667d-7a002e56664b).\n* Keep all entities selected, paste your token in the account token field.\n* Select your region.\n* Press Import Application, and you should receive a notification in your account when it's completed.\n* To access the application using TagoRUN, make sure to create a user using your TagoIO Developer account, adding the tag key **access** with the tag value **admin**.\n\n### Easy Update\nTo easily update your application when a new version is available, you can repeat the previous step.\nIf you have made changes to the application, you can choose only the entities you want to update, such as only the analysis.\n\n### Code Setup and Installation\nUsing this repository, you will be able to change and update the analysis in your account. This step is not required unless you plan to make changes to the code.\n* Install [Node.JS](https://help.tago.io/portal/en/kb/articles/464-node-js).\n* Download the repository.\n* Open your terminal and access the folder of the repository.\n* Run `npm install`.\n* Generate an account-profile token at TagoIO **My Settings** -\u003e **Your Profile** -\u003e **Tokens**. Make sure to generate a token with `Expire at` set to never, or utilize the [TagoIO CLI](https://www.npmjs.com/package/@tago-io/cli) to deploy your scripts.\n* Open the `build.ts` and replace `Your-Account-Profile-Token` with a token from your profile.\n* Go back to your terminal and run the template with `npm run start build`.\n* It should take a few minutes for the script to build and import all the analysis and dashboards to your account.\n\n### Code Update\n* Make sure you have the `build.ts` with your account profile token.\n* Update the repository with the latest version.\n* Go back to your terminal and run the template with `npm run start build`.\n* It should take a few minutes for the script to build and import all the analysis and dashboards to your account.\n\n### Key Dependencies\n* @tago-io/sdk: TagoIO SDK for interacting with the platform\n* axios: For making HTTP requests\n* geolib: For geolocation calculations\n* luxon: For date/time handling\n* zod: For runtime type checking\n\n### How to Learn from This Code\nThe source code is organized in the following structure:\n* **src/analysis**: Contains the analysis scripts\n* **src/lib**: Common utility functions\n* **src/services**: Service-specific implementations\n* **src/types.ts**: TypeScript type definitions\n\nEach service is related to specific functionality within the application. The analysis folder contains each analysis that must be present in your account, while the lib folder contains useful functions commonly used between the scripts.\n\nFor additional information on how to set up TagoIO with this code, and all the TagoIO resources used, check the Kickstarter Guide documentation at [analysis-kickstarter-rtls/docs/Kickstarter-rtls-Guide](https://drive.google.com/file/d/1lVDIEDPzpl5UhLTXDuoujuDOu7QHZjuJ/view?usp=sharing).\n\n### User Permissions Diagram\n\n```mermaid\ngraph LR\nsubgraph User Permission Diagram V1.0.0\n    subgraph Application\n        subgraph Entities\n            Organization(Organizations)\n            Sites(Sites)\n            Devices(Devices)\n            Equipment(Equipment)\n        end\n    end\n    \n    style SA fill:black,stroke:purple,stroke-width:2px,color:#fff,stroke-dasharray: 5 5\n    SA((Super Admin))\n    \n    SA -- Can Manage All --\u003e Organization\n    SA -- Can Manage All --\u003e Sites\n    SA -- Can Manage All --\u003e Devices\n    SA -- Can Manage All --\u003e Equipment\n    SA -- Can Create --\u003e A\n    SA -- Can Create --\u003e E\n    \n    linkStyle 0 stroke-width:2px,fill:none,stroke:purple;\n    linkStyle 1 stroke-width:2px,fill:none,stroke:purple;\n    linkStyle 2 stroke-width:2px,fill:none,stroke:purple;\n    linkStyle 3 stroke-width:2px,fill:none,stroke:purple;\n    linkStyle 4 stroke-width:2px,fill:none,stroke:purple;\n    linkStyle 5 stroke-width:2px,fill:none,stroke:purple;\n    \n    style A fill:black,stroke:red,stroke-width:2px,color:#fff,stroke-dasharray: 5 5\n    A((Admin))\n    \n    A -- Can Manage *1 --\u003e Organization\n    A -- Can Manage *1 --\u003e Sites\n    A -- Can Manage *1 --\u003e Devices\n    A -- Can Manage *1 --\u003e Equipment\n    A -- Can Create --\u003e E\n    \n    linkStyle 6 stroke-width:2px,fill:none,stroke:red;\n    linkStyle 7 stroke-width:2px,fill:none,stroke:red;\n    linkStyle 8 stroke-width:2px,fill:none,stroke:red;\n    linkStyle 9 stroke-width:2px,fill:none,stroke:red;\n    linkStyle 10 stroke-width:2px,fill:none,stroke:red;\n    \n    style E fill:black,stroke:green,stroke-width:2px,color:#fff,stroke-dasharray: 5 5\n    E((End User))\n    \n    E -- Can View Only *2 --\u003e Sites\n    E -- Can View Only *2 --\u003e Devices\n    E -- Can View Only *2 --\u003e Equipment\n    \n    linkStyle 11 stroke-width:2px,fill:none,stroke:green;\n    linkStyle 12 stroke-width:2px,fill:none,stroke:green;\n    linkStyle 13 stroke-width:2px,fill:none,stroke:green;\n    \n    subgraph Hierarchy\n        Organization --\u003e Sites\n        Sites --\u003e Devices\n        Devices --\u003e Equipment\n    end\n    \n    note1[*1 Only within their assigned Organization]\n    note2[*2 Only within their assigned Site]\nend\n```\n\n\n### Support\nYou can open an issue or question at [https://github.com/tago-io/analysis-rtls-demo/issues](https://github.com/tago-io/analysis-rtls-demo/issues).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftago-io%2Fanalysis-kickstarter-rtls","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftago-io%2Fanalysis-kickstarter-rtls","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftago-io%2Fanalysis-kickstarter-rtls/lists"}