{"id":19449633,"url":"https://github.com/techplexengineer/bionic-scouting","last_synced_at":"2026-06-19T07:31:34.457Z","repository":{"id":144896679,"uuid":"437632831","full_name":"TechplexEngineer/bionic-scouting","owner":"TechplexEngineer","description":"svelte-capacitorjs","archived":false,"fork":false,"pushed_at":"2024-02-29T16:12:53.000Z","size":4026,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-04-14T01:02:43.505Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://bionic-scouting.netlify.app/","language":"Svelte","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/TechplexEngineer.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}},"created_at":"2021-12-12T19:07:05.000Z","updated_at":"2022-03-24T13:27:53.000Z","dependencies_parsed_at":"2024-11-10T16:34:20.984Z","dependency_job_id":"81594d0b-5653-41f3-8bcb-c86c637f9a4f","html_url":"https://github.com/TechplexEngineer/bionic-scouting","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechplexEngineer%2Fbionic-scouting","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechplexEngineer%2Fbionic-scouting/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechplexEngineer%2Fbionic-scouting/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechplexEngineer%2Fbionic-scouting/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TechplexEngineer","download_url":"https://codeload.github.com/TechplexEngineer/bionic-scouting/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240636848,"owners_count":19832952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":"2024-11-10T16:33:11.183Z","updated_at":"2026-06-19T07:31:34.409Z","avatar_url":"https://github.com/TechplexEngineer.png","language":"Svelte","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bionic Scouting\n\nBionic Scouting is an app primarily for Android that FIRST robotics Team 4909 is developing for use at competitions. The\napp aids in collecting data about other teams to inform match strategy and alliance selection.\n\nThe system is designed with the thought that there are 6 objective scouts each collecting metrics about 1 of 6 robots\nduring a match.\n\nThe system also supports having additional \"super\" scouts collecting subjective observations.\n\nGoals:\n\n- Support completely offline operation. Many events do not have WiFi, and some steel buildings do a great job blocking\n  cellular signals.\n    - Default to syncing with database in the cloud\n    - Fallback to Bluetooth\n    - Fallback to QR Codes for data sync\n- Pull Match schedule and teams from The Blue Alliance\n- Provide a quick view for the drive coach to use for match preparation\n- Objective match metrics are easily configurable as they change season to season\n- Strategists collect observations in preparations for upcoming matches\n- Robot specific pit scouting\n- Easy data export to excel\n- Make all data collected viewable in the app\n\nHardware:\n\n- Six 8\" tablets for scouts in the stands (Red 1,2,3 and Blue 1,2,3)\n- One lead scout using a tablet 10\"\n- Five Strategists using 8\" tablets\n- One lead super scout using an 8\" tablet\n\nWe plan to have our Strategists pit scout on the first day of the event collecting overall observations, drivetrain\ninformation and photos of each robot.\n\nThe data collected by the system can be exported to CSV for analysis in Excel.\n\n## Software Architecture\n\nBionic Scouting is a web app that uses [SvelteKit](https://kit.svelte.dev/) with Vite for the frontend and is packaged\nfor android with [Capacitor.js](https://capacitorjs.com/)\n\n## Developing\n\nOnce you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a\ndevelopment server:\n\n```bash\n# install dependencies\nnpm ci\n\n# Run a development server\nnpm run dev\n```\n\n### Testing on a connected android device\n\nWhen developing and testing it can be useful to test on a usb connected android device. We can do this by running a\nwebserver with our latest code on our development computer and instructing the app to connect to the dev server.\n\nNOTE: Device must be connected to the same network as the host computer\n\n```bash\nnpm run dev -- --host\nnpx cap sync\nHOST=\u003cdev computer ip\u003e npx cap run android\n```\n\nTo push the app to multiple connected devices\n\n```bash\nfor dev in $(adb devices | awk '/\\\u003cdevice\\\u003e/ {print $1}'); do HOST=\u003cdev computer ip\u003e npx cap run android --target $dev; done\n```\n\n## Building\n\nTo build the frontend of the app run:\n\n```bash\nnpm run build\n```\n\nTo view a preview of the \"production\" build:\n\n```bash\nnpm run preview\n```\n\nOnce the frontend is built we can build the android app:\n\n```bash\n./gradlew bundleRelease \\\n            -PversionName=\"1.0.0\" \\\n            -PversionNumber=$(date '+%s')\n```\n\nThe aab will be stored in `android/app/build/outputs/`\n\n### Our build and release process\n\nWe use GitHub Actions to build an android app on each push to the main branch.\n\n## Sync\n\nThe app uses RxDB with an underlying PouchDB for storage which supports sync with CouchDB For the competition season we\nrun a CouchDB server on a Digital Ocean VPS.\n\nWhen running the app locally create a .env file at the root of the repository with content:\n`VITE_COUCHDB_URL=http://\u003cUSERNAME\u003e:\u003cPASSWORD\u003e@\u003cHOST\u003e:5984/events_\u003cyear\u003e/`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechplexengineer%2Fbionic-scouting","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftechplexengineer%2Fbionic-scouting","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechplexengineer%2Fbionic-scouting/lists"}