{"id":32358738,"url":"https://github.com/skullgaming31/arsenaltracker","last_synced_at":"2026-04-13T18:01:14.520Z","repository":{"id":320077382,"uuid":"1075050288","full_name":"SkullGaming31/ArsenalTracker","owner":"SkullGaming31","description":"Arsenal Tracker: Track your Warframe and weapon collection status. Maintain a comprehensive, up-to-date inventory of all your gear.","archived":false,"fork":false,"pushed_at":"2025-11-19T12:13:35.000Z","size":4761,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-19T14:10:14.599Z","etag":null,"topics":["arsenal","backend","collection","frontend","gaming","local-first","open-source","progress-tracking","tracker","typescript","vite","vue","warframe"],"latest_commit_sha":null,"homepage":"https://arsenal-tracker-two.vercel.app","language":"Vue","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/SkullGaming31.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2025-10-13T00:41:18.000Z","updated_at":"2025-11-19T12:16:26.000Z","dependencies_parsed_at":"2025-10-21T21:15:48.206Z","dependency_job_id":"1f4d3d1a-23e0-4add-9056-0c9eef427d4e","html_url":"https://github.com/SkullGaming31/ArsenalTracker","commit_stats":null,"previous_names":["skullgaming31/arsenaltracker"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/SkullGaming31/ArsenalTracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkullGaming31%2FArsenalTracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkullGaming31%2FArsenalTracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkullGaming31%2FArsenalTracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkullGaming31%2FArsenalTracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SkullGaming31","download_url":"https://codeload.github.com/SkullGaming31/ArsenalTracker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkullGaming31%2FArsenalTracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31764317,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T15:25:13.801Z","status":"ssl_error","status_checked_at":"2026-04-13T15:25:09.162Z","response_time":93,"last_error":"SSL_read: 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":["arsenal","backend","collection","frontend","gaming","local-first","open-source","progress-tracking","tracker","typescript","vite","vue","warframe"],"created_at":"2025-10-24T13:30:17.954Z","updated_at":"2026-04-13T18:01:14.514Z","avatar_url":"https://github.com/SkullGaming31.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# arsenaltracker\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\nHomepage: https://SkullGaming31.github.io/ArsenalTracker\n\nHow to contribute: see `CONTRIBUTING.md` for local setup, tests, and PR guidelines.\n\nThis template should help get you started developing with Vue 3 in Vite.\n\n## Recommended IDE Setup\n\n[VS Code](https://code.visualstudio.com/) + [Vue (Official)](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur).\n\n## Recommended Browser Setup\n\n- Chromium-based browsers (Chrome, Edge, Brave, etc.):\n  - [Vue.js devtools](https://chromewebstore.google.com/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd) \n  - [Turn on Custom Object Formatter in Chrome DevTools](http://bit.ly/object-formatters)\n- Firefox:\n  - [Vue.js devtools](https://addons.mozilla.org/en-US/firefox/addon/vue-js-devtools/)\n  - [Turn on Custom Object Formatter in Firefox DevTools](https://fxdx.dev/firefox-devtools-custom-object-formatters/)\n\n## Type Support for `.vue` Imports in TS\n\nTypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) to make the TypeScript language service aware of `.vue` types.\n\n## Customize configuration\n\nSee [Vite Configuration Reference](https://vite.dev/config/).\n\n## Project Setup\n\n```sh\nnpm install\n```\n\n### Compile and Hot-Reload for Development\n\n```sh\nnpm run dev\n```\n\n### Type-Check, Compile and Minify for Production\n\n```sh\nnpm run build\n```\n\n### Run Unit Tests with [Vitest](https://vitest.dev/)\n\n```sh\nnpm run test:unit\n```\n\n## Local storage / backup key\n\nThe app persists local overrides in localStorage under the key `arsenaltracker.v1`.\nThe persisted payload is a versioned JSON object. Example (representative, fields are flexible):\n\n```\n{\n  \"version\": 1,\n  \"overrides\": {\n    \"Rhino Prime\": {\n      \"neuroptics_collected\": true,\n      \"chassis_collected\": false,\n      \"systems_collected\": false,\n      \"blueprint_collected\": false,\n      \"is_mastered\": false,\n      \"neuroptics_resources\": [\n        { \"name\": \"Credits\", \"quantity\": 15000, \"collected\": true },\n        { \"name\": \"Alloy Plate\", \"quantity\": 150, \"collected\": false }\n      ]\n    },\n    \"Braton Prime\": {\n      \"parts_collected\": [\"Barrel\", \"Receiver\"],\n      \"is_mastered\": false\n    }\n  }\n}\n```\n\nNotes:\n- The top-level `version` is used for migrations; current version is `1` and should remain present in exported backups.\n- `overrides` is a map keyed by the item name (warframe or weapon). Each override object is a partial set of the fields that appear on the original data; the store merges overrides onto the static data at runtime.\n- Typical warframe override fields: `neuroptics_collected`, `chassis_collected`, `systems_collected`, `blueprint_collected`, `is_mastered`, and optional per-part resource arrays (e.g. `neuroptics_resources`).\n- Typical weapon override fields: `parts_collected` (array of part names), `is_mastered`, or `parts` (detailed part shapes).\n- You can export the current payload from the Dashboard (Export JSON) which uses the same versioned shape; importing accepts both the versioned shape and the legacy unversioned overrides map and will migrate automatically.\n\nBe careful when editing backups by hand: the store expects JSON and will merge whatever keys you provide into the in-memory merged data. Prefer using the app's Export/Import workflow to create and restore backups.\n\n### Run End-to-End Tests with [Playwright](https://playwright.dev)\n\n```sh\n# Install browsers for the first run\nnpx playwright install\n\n# When testing on CI, must build the project first\nnpm run build\n\n# Runs the end-to-end tests\nnpm run test:e2e\n# Runs the tests only on Chromium\nnpm run test:e2e -- --project=chromium\n# Runs the tests of a specific file\nnpm run test:e2e -- tests/example.spec.ts\n# Runs the tests in debug mode\nnpm run test:e2e -- --debug\n```\n\n### Lint with [ESLint](https://eslint.org/)\n\n```sh\nnpm run lint\n```\n\n### ESLint overrides and why some paths are excluded\n\nThis repository intentionally excludes a few generated or Node-only paths from some strict ESLint rules to keep developer-facing lint output actionable:\n\n- `docs/assets/**` — compiled/minified vendor and build assets live here; they can trigger rules like `no-unused-expressions` (minified code) and are not maintained by hand.\n- `scripts/**` and `e2e/**` — utility and test helper scripts are Node-focused and sometimes use CommonJS `require()` for convenient scripting. The lint config disables the `no-require-imports` rule for these paths.\n\nIf you need to run the linter across these paths for a specific reason, you can temporarily enable rules or run `eslint` directly against the files. The CI/linting setup focuses on the `src/` code, tests, and Vue components which are the primary targets for type and style enforcement.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskullgaming31%2Farsenaltracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskullgaming31%2Farsenaltracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskullgaming31%2Farsenaltracker/lists"}