{"id":31690246,"url":"https://github.com/nerdherd/nerdscout","last_synced_at":"2026-04-18T00:02:32.584Z","repository":{"id":315810969,"uuid":"1060891105","full_name":"nerdherd/NerdScout","owner":"nerdherd","description":"The scouting app of Nerd Herd 687.","archived":false,"fork":false,"pushed_at":"2025-10-07T04:46:53.000Z","size":14066,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-07T06:28:04.849Z","etag":null,"topics":["flask","frc","python"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nerdherd.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":"2025-09-20T20:01:05.000Z","updated_at":"2025-10-07T04:46:57.000Z","dependencies_parsed_at":"2025-09-20T22:22:17.339Z","dependency_job_id":"16c55de4-e76e-4f7e-aa66-73f9972fbb1e","html_url":"https://github.com/nerdherd/NerdScout","commit_stats":null,"previous_names":["nerdherd/nerdscout"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nerdherd/NerdScout","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerdherd%2FNerdScout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerdherd%2FNerdScout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerdherd%2FNerdScout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerdherd%2FNerdScout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nerdherd","download_url":"https://codeload.github.com/nerdherd/NerdScout/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerdherd%2FNerdScout/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278947970,"owners_count":26073736,"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","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"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":["flask","frc","python"],"created_at":"2025-10-08T12:42:31.085Z","updated_at":"2026-04-18T00:02:32.566Z","avatar_url":"https://github.com/nerdherd.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 style=\"width:100%;text-align:center;\" alt=\"A pair of binoculars with a propeller hat.\"\u003e\u003cimg src=\"./static/images/logo/logo.svg\" height=\"100\" /\u003e\u003cbr\u003e NerdScout\u003c/h1\u003e\n\u003cp style=\"width:100%;text-align:center;\"\u003eThe scouting app of Nerd Herd 687.\u003c/p\u003e\n\n## About\n\nNerdScout is a scouting app for the *FIRST* Robotics Competition, aiding in data collection during matches. Scouts watch matches and use NerdScout to record what a robot did during a match, from scoring to defense to fouls. \n\nPit scouting is also included, allowing scouts to ask prewritten questions to teams and input their answers into the app.\n\nNerdScout then aggregates this data into tables for analytical use during Alliance Selection, along with providing stats for each team in many areas.\n\nNerdScout also incorporates NerdPredict, a game where team members predict match results in order to gain the most points.\n\n## Setup\n\n### MongoDB setup\n\n#### MongoDB Community Edition\n\nMongoDB Community Edition is the self hosted version of MongoDB, helpful for development.\n\n1. Download [MongoDB Community Edition](https://www.mongodb.com/try/download/community)\n\n2. (optional) Install [MongoDB Compass](https://www.mongodb.com/try/download/compass), the GUI explorer for MongoDB. The installer is usually included with MongoDB Community Edition.\n\n3. Create a folder to store the database. This can be anywhere, but `/database` is ignored by git in this repo.\n\n4. Start the database\n\nTo start the database on Windows:\n```powershell\n\\path\\to\\exe\\mongod.exe --dbpath \"\\path\\to\\database\"\n```\n\nor on Mac:\n\n```bash\n/path/to/executable/mongod --dbpath \"/path/to/database\"\n```\n\n5. (optional) Open Compass and create a connection. By default, if you're running locally, your connection string should be `mongodb://localhost:27017`\n\n6. Once you verify it works, create the file `mongoDB` in the `secrets` directory and paste in you connection string. Again, it is `mongodb://localhost:27017` by default.\n\n\u003e Unless you change how you're hosting MongoDB, you shouldn't have to change your connection string.\n\n#### Atlas and Other Hosting\n\nPlace your MongoDB connection string in `secrets/mongoDB` and Compass, either beginning in `mongodb://` or `mongodb+srv://`. For more information, visit the [MongoDB Documentation](https://www.mongodb.com/docs/manual/reference/connection-string/).\n\n\u003e Unless you change how you're hosting MongoDB, you shouldn't have to change your connection string.\n\n### Secret key setup\n\nCreate a file `secretKey` in the `secrets` directory with whatever text you want. This acts as the key for all of the encryption. Once you've set it, do not change it, unless you are resetting the database.\n\n### The Blue Alliance setup\n\nIf you don't already have one, create a [The Blue Alliance](https://www.thebluealliance.com/) account\n\nUnder account, scroll to Read API Keys and create a new key.\n\nCreate a new file `theBlueAlliance` in the `secrets` directory and paste in the key.\n\n\u003e Unless you delete it or your account with The Blue Alliance, you shouldn't have to change API key.\n\n### Python setup\n\nMake sure you have Python 3 installed. If you don't have it, check out [\"Properly Installying Python\" from The Hitchhiker's Guide to Python](https://docs.python-guide.org/starting/installation/) for more information.\n\nCreate a terminal in the directory NerdScout is located in. Then, make a virtual environment and activate it.\n\nFor Windows:\n\n```powershell\npy -m venv .venv\n.venv\\Scripts\\activate\n```\nFor Mac:\n\n```bash\npython3 -m venv .venv\nsource .venv/bin/activate\n```\n\nNow install the required packages. On Windows:\n\n```powershell\npy -m pip install -r requirements.txt\n```\n\nand on Mac:\n\n```bash\npython3 -m pip install -r requirements.txt\n```\n\nYou can deactivate the virtual environment with the deactivate keyword.\n\n```bash\ndeactivate\n```\n\nThe next time you want to run NerdScout, simply run the activation script. On Windows:\n\n```powershell\n.venv\\Scripts\\activate\n```\n\nOn Mac:\n```bash\nsource .venv/bin/activate\n```\n\n## Running\n\nBefore running, ensure:\n- All required secrets are added. Check /secrets/README.md for the full list.\n- The database is running\n- The virtual environment is active\n\nRun the script using:\n\n```bash\nflask run\n```\n\nor use debug mode.\n\n```bash\nflask run --debug\n```\n\nThis should open a development server and display an IP Address. Navigate to this IP address to view NerdScout.\n\nThe server included with Flask is **not** meant for production use. There are many options for running WSGI (Web Server Gateway Interface) servers suitable for production. Check out the [Flask documentation](https://flask.palletsprojects.com/en/stable/deploying/) for more information.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnerdherd%2Fnerdscout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnerdherd%2Fnerdscout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnerdherd%2Fnerdscout/lists"}