{"id":20171497,"url":"https://github.com/1504/scouting","last_synced_at":"2026-01-28T13:01:56.256Z","repository":{"id":85937125,"uuid":"169933820","full_name":"1504/scouting","owner":"1504","description":null,"archived":false,"fork":false,"pushed_at":"2021-02-04T22:43:09.000Z","size":526,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":7,"default_branch":"master_2020","last_synced_at":"2025-06-04T10:10:36.852Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Vue","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/1504.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":"2019-02-10T01:55:53.000Z","updated_at":"2020-01-31T00:16:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"6773603a-6dc6-4ddd-8d54-04ba23c98943","html_url":"https://github.com/1504/scouting","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/1504/scouting","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1504%2Fscouting","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1504%2Fscouting/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1504%2Fscouting/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1504%2Fscouting/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/1504","download_url":"https://codeload.github.com/1504/scouting/tar.gz/refs/heads/master_2020","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1504%2Fscouting/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28845768,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T12:37:07.070Z","status":"ssl_error","status_checked_at":"2026-01-28T12:37:06.657Z","response_time":57,"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":"2024-11-14T01:25:10.619Z","updated_at":"2026-01-28T13:01:56.236Z","avatar_url":"https://github.com/1504.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# scouting\n\n## History\n\nI've been working on this project for over four years now. I might update this with more history if anyone cares.\n\n## Project Setup\n\nThis project requires [node.js](https://nodejs.org), tested with Node 10, although most versions should work.\n\nTo setup the development environment, `cd` to where this repository was cloned, and run\n\n```node\nnpm install\n```\n\nThat's it. No really, the one command will fetch all 25,000 dependencies and install em.\n\n### Before Developing\nMake sure you have the server running (the backend system) before trying to run the below commands. The commands below are specfically for the FRONTEND part of the application. To run the server,\n\n```node\n(sudo) node server.js\n```\nYou might need the sudo if you are running on Linux, as the server attempts to bind to port 80, which is the HTTP port.\n\n### Compiles and hot-reloads for development\n\n```node\nnpm run serve\n```\n\nIf you want to change the code for the scouting app, this will start a live-reloading server. Modifying the files\nwithin `/src` will cause the webpage to hot-reload. \n\n### Compiles and minifies for production\n\n```node\nnpm run build\n```\n\nThis should be done before deploying the code. What this does is go through all of the files in `/src`, and build\nthem for production. This includes polyfills for older browsers that may not support all of the fancy Javascript we use.\nBuilding will dump the code into `/dist`, which is what `server.js` looks at to serve files.\n\n### Adding custom fields to the app\n\nThere are two files to care about: `/src/fields.json`, and `/src/components/Fields.vue`. `fields.json` has all of the fields that\nwe want to collect defined, along with their *default values*. This is why this file exists, so that we can change the default for\na field.\n\n`Fields.vue` contains the actual code which handles the form input, and submitting. Understanding this requires\na decent understanding of HTML, and a bit of JS. Honestly, most people can figure it out since this scouting framework\naims to abstract away how everything is handled. Just modify the HTML until you have the fields and inputs you want.\n\n## Competition\n\nIf you are at a competition and want to run this, you gotta do a few things. First, find the machine you want to run this on. \nMake sure it has node installed. Run `npm run build` on a developer machine, and push to Github. Now that the latest built \nversion of the scouting app is in the cloud, go ahead and clone/download it onto the server machine. Now, run\n\n```node\nnode server.js\n```\n\nand the server will start up. It will print out an IP address: this is the address the server is running on visible to other devices\non the network. (Side Note: I handled the networking for the app my freshman and sophomore years, and it sucked. Make sure that \nthere is someone who actually understands routers better than I did then.)\n\nIf you just want to run it off a laptop, start the server, and give everyone who wants to scout the IP address. If they go to it, the\napp should load.\n\n## Data Analytics\n\nAs of right now, this has to be rewritten every year. I never came up with a permanent solution, although I wrote\nsome interesting code for it my junior and senior year. At this moment, the only code that handles data analytics is\naccessing `/api` on the server. This will dump all of the data collected so far in JSON format.\n\nSo, the way to implement this is to write any basic HTML file, with whatever dependencies you need referenced locally. There is no need for any complex NPM dependency resolution. Once you have verified it works locally (for example, opening your analysis HTML file on your laptop and having it send a GET request to the server IP address running somewhere else), you want to save this in the root of this Github repository. \n\nIn order to have this actually be accessible during competition, first make sure that someone has built the dist directory. The server is configured to serve all of the files in /dist. Then, drag your analytics code into /dist (note that this will have to be done each time dist is rebuilt through npm). Say you have an \"analytics\" folder, with an index.html inside. Drag this entire folder into the dist directory, and then when running the server, analytics will be found at SERVER_IP/analytics.\n\n(If the above steps don't work for some reasons or if you have more questions, make a Github issue with the error message, and how to reproduce the error, and I can take a look.)\n\n(Hint: This would be a good project for an extra programmer or two to implement, as they can do it how they want, and\nthe data is easily accesible.)\n\n## QR Code\n\nI started working on this my senior year after competition season. We didn't need it, but I was interested to see how\nwe could transfer data without any sort of networking. Turns out, QR codes work really well, and we came up with a phenomenal \ncompression algorithm. I stripped out all of that code from this version of the repository, as it was half baked and could \ncause crashes in trying to open the camera. I reccomend you visit `Scouting 2018` under the 1504 Github to take a look at it.\nAt some point, this should be added in the case of a power outage.\n\n### Customize configuration\n\nSee [Configuration Reference](https://cli.vuejs.org/config/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1504%2Fscouting","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F1504%2Fscouting","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1504%2Fscouting/lists"}