{"id":20766480,"url":"https://github.com/agrc/wfrc-wasatch-choice","last_synced_at":"2026-02-02T08:44:19.926Z","repository":{"id":37570965,"uuid":"199510562","full_name":"agrc/wfrc-wasatch-choice","owner":"agrc","description":"WFRC custom application for viewing and commenting on proposed plans","archived":false,"fork":false,"pushed_at":"2025-05-20T23:09:14.000Z","size":28039,"stargazers_count":3,"open_issues_count":5,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-20T23:36:46.833Z","etag":null,"topics":["billable","government-app","terraform-managed","website"],"latest_commit_sha":null,"homepage":"","language":"HTML","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/agrc.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","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-07-29T18:57:12.000Z","updated_at":"2025-05-20T23:00:18.000Z","dependencies_parsed_at":"2023-02-13T23:31:18.643Z","dependency_job_id":"2ba30aa9-56a0-4016-b433-02498d042882","html_url":"https://github.com/agrc/wfrc-wasatch-choice","commit_stats":null,"previous_names":[],"tags_count":93,"template":false,"template_full_name":"agrc/atlas","purl":"pkg:github/agrc/wfrc-wasatch-choice","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agrc%2Fwfrc-wasatch-choice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agrc%2Fwfrc-wasatch-choice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agrc%2Fwfrc-wasatch-choice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agrc%2Fwfrc-wasatch-choice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agrc","download_url":"https://codeload.github.com/agrc/wfrc-wasatch-choice/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agrc%2Fwfrc-wasatch-choice/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263711537,"owners_count":23499883,"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":["billable","government-app","terraform-managed","website"],"created_at":"2024-11-17T11:24:04.167Z","updated_at":"2026-02-02T08:44:19.888Z","avatar_url":"https://github.com/agrc.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WFRC - Wasatch Choice Interactive Map\n\n[![Push Events](https://github.com/agrc/wfrc-wasatch-choice/actions/workflows/push.yml/badge.svg)](https://github.com/agrc/wfrc-wasatch-choice/actions/workflows/push.yml)\n\nProduction: [wfrc.org/wasatch-choice-map](https://wfrc.org/wasatch-choice-map)  \nStaging: [wfrc-wasatch.dev.utah.gov](https://wfrc-wasatch.dev.utah.gov)\n\n[mockups](https://docs.google.com/presentation/d/1m30EQch-gXr4IczSRmM9TthAMsiAgCITS3Qo9C-tZkU/edit#slide=id.g5750aa3557_0_0)  \n[map ledge mockup](https://docs.google.com/presentation/d/1IchwcqjPA9lqFt9WJul7BXwl0gMJ-FNSflO31qot9K4/edit#slide=id.g8363e6d01f_1_0)  \n[tab configurations](https://docs.google.com/spreadsheets/u/1/d/1BFA3-PcDI07CYR7JloeXjB78NNtnTDieRBY-ELnzsjI/edit#gid=0)  \n[production](https://wfrc.org/wasatch-choice-map)  \n[staging](https://test.mapserv.utah.gov/wfrc/)  \n[multi select UX article](https://medium.com/tripaneer-techblog/improving-the-usability-of-multi-selecting-from-a-long-list-63e1a67aab35)\n\n## Configuration\n\nThe app is configured via a few JSON files located at the root of the deployed project. In development they are located in `./public`.\n\n### `config.json`\n\nThis is where all of the app configuration except the about widget is contained.\n\nSee [docs/config.md](docs/config.md) for details on configuring this file. At runtime, the app validates `config.json` against this schema file and prints any errors to the console.\n\n#### Adding new maps\n\nTo add a new map to the application, a new property needs to be added to the `mapInfos` object. The required schema for this object is found [here](docs/config-properties-map-infos-map-info.md). Any web map should work. If you want to be able to use the Layer Selector widget (`\"hideLayerSelector\": false`), the web map needs to have a base map that is fully transparent. It's kind of a hack, but it's the only way to allow the Layer Selector widget to switch out base maps.\n\nSample Config\n\n```json\n\"mapInfos\": {\n  \"vision\": {\n    \"name\": \"Vision\",\n    \"webMapId\": \"7a4843b43cf84f00bbe7b2c2d3985236\",\n    \"hideLayerSelector\": true,\n    \"useDefaultAGOLPopup\": false,\n    \"filter\": ...\n  },\n  ...\n}\n```\n\nThe first five maps in `mapInfos` will be the default tabs in the order that they are defined.\n\n### About Widget Content\n\n`public/about/\u003clocale\u003e/\u003cmapId\u003e.html`\n\nThese files contain the content that will show up in the about widget (left side panel). The file names correspond to the `mapInfos` keys in `config.json`.\n\nThe `/about-tests` page displays all of the about widget content in a single page. This can be helpful during development of the content.\n\n### Internationalization\n\nThis application is fulling translatable using the `translations` property of `config.json`. Each language has it's own property of that object (e.g. `en`=english, `es`=spanish). Translations default to english if no other value is provided. If you want to provide a translation for any values in the other configs you add a new value to the `translations` object and then use it in the configs with a special prefix, `trans:` (e.g. `trans:newKey`). For example, if I wanted to make the vision map label translatable:\n\n```json\n{\n  \"mapInfos\": {\n    \"vision\": {\n      \"name\": \"trans:visionMapTitle\"\n      ...\n    }\n  },\n  ...\n  \"translations\": {\n    \"en\": {\n      \"translation\": {\n        \"visionMapTitle\": \"Vision\",\n        ...\n      }\n    },\n    \"es\": {\n      \"translation\": {\n        \"visionMapTitle\": \"Visión\",\n        ...\n      }\n    }\n  }\n}\n```\n\nThe current language should be automatically detected from the user's browser. If you want to force the app into a certain language, use the `lng` URL parameter. For example:\n\n`\u003capp URL\u003e/#lng=es`\n\n## Development \u0026 Testing\n\nCreate and populate `.env.local` based on `.env`\n\nExecute `pnpm start` to start a web server and view the website\n\nExecute `pnpm test` to run tests\n\n## Build\n\nExecute `pnpm run build` to create an optimized production build\n\n_The files will be placed in `/dist`_\n\nExecute `pnpm run preview` to view the website\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagrc%2Fwfrc-wasatch-choice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagrc%2Fwfrc-wasatch-choice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagrc%2Fwfrc-wasatch-choice/lists"}