{"id":19912244,"url":"https://github.com/openaq/openaq-explorer","last_synced_at":"2025-05-03T03:31:28.294Z","repository":{"id":142565388,"uuid":"534292422","full_name":"openaq/openaq-explorer","owner":"openaq","description":"OpenAQ Explorer web application","archived":false,"fork":false,"pushed_at":"2025-04-21T16:28:41.000Z","size":1526,"stargazers_count":6,"open_issues_count":9,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-21T16:39:51.877Z","etag":null,"topics":["airquality","maplibre-gl-js","scss","solid-start","solidjs","vite"],"latest_commit_sha":null,"homepage":"https://explore.openaq.org","language":"TypeScript","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/openaq.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,"zenodo":null}},"created_at":"2022-09-08T16:11:01.000Z","updated_at":"2025-04-21T16:28:45.000Z","dependencies_parsed_at":"2023-04-10T18:01:19.709Z","dependency_job_id":"4969bc78-8162-448a-824f-5453b11b0e66","html_url":"https://github.com/openaq/openaq-explorer","commit_stats":{"total_commits":96,"total_committers":2,"mean_commits":48.0,"dds":"0.10416666666666663","last_synced_commit":"539342763d88b65bdc8d5b0ecdb35843b019d5ef"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openaq%2Fopenaq-explorer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openaq%2Fopenaq-explorer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openaq%2Fopenaq-explorer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openaq%2Fopenaq-explorer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openaq","download_url":"https://codeload.github.com/openaq/openaq-explorer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252137563,"owners_count":21700239,"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":["airquality","maplibre-gl-js","scss","solid-start","solidjs","vite"],"created_at":"2024-11-12T21:28:48.902Z","updated_at":"2025-05-03T03:31:28.289Z","avatar_url":"https://github.com/openaq.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenAQ Explorer\n\nThe OpenAQ Explorer is a web application for exploring open air quality\nmonitoring data available on the OpenAQ platform.\n\n## Development\n\nExplorer is built with the [SolidJS](https://www.solidjs.com/) fullstack\nmeta-framework [Solid Start](https://start.solidjs.com/).\n\n### Linting and style\n\n[ESLint](https://eslint.org/) is used for code linting, see\n[eslint.config.js](eslint.config.js) for specifcs.\n[Prettier](https://prettier.io/) is used for code style and formatting, see the\n[.prettierrc](.prettierrc) file for specifics.\n\n### Infrastructure and deployment\n\nExplorer is deployed on Amazon Web Services (AWS) and uses AWS Lambda for\nserverless compute, AWS S3 for static asset storage and AWS Cloudfront for CDN.\nInfrastructure deployment and development is managed with AWS CDK and can be\nfound in the [cdk](cdk) directory.\n\n```\n                                                                    AWS VPC\n                                                      ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─\n                                                                             │\n                                                      │\n                                      ┌───────────┐      ┌───────────────┐   │\n                                      │           │   │  │ AWS Lambda λ  │\n                                  ┌──▶│ AWS HTTP  │◀────▶│               │   │\n                                  │   │API Gateway│   │  │  Application  │\n  ┌───────────┐    ┌───────────┐  │   │           │      │    server     │   │\n  │           │    │           │  │   └───────────┘   │  └───────────────┘\n  │AWS Route53│◀──▶│    AWS    │◀─┘                                          │\n  │    DNS    │    │Cloudfront │◀───────────┐         │\n  │           │    │           │            │            ┌───────────────┐   │\n  └───────────┘    └───────────┘            │         │  │               │\n                                            │            │    AWS S3     │   │\n                                            └─────────┼─▶│ Static assets │\n                                                         │               │   │\n                                                      │  └───────────────┘\n                                                                             │\n                                                      │\n                                                       ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘\n```\n\n### Environment variables\n\nApplication configuration is managed with environment variables in a `.env` file\nlocated at the project root. This file contains both configurations for the\napplication itself and the CDK deployment. If not deploying with CDK the CDK\nspecific values can be excluded. Application variables are prefixed with `VITE_`\nto comply with the vite build process for reading and applying variables through\n`import.meta.env.` syntax, read more about vite environment variables at\n[https://vite.dev/guide/env-and-mode#env-variables](https://vite.dev/guide/env-and-mode#env-variables)\n\n```sh\n# Explorer application vite variables\n\nVITE_API_BASE_URL=https://api.openaq.org\nVITE_MAP_STYLE=https://example.com/styles.json\nVITE_TILES_URL=https://example.com/locations/tiles\nVITE_TILES_API_KEY=my-secret-tiles-api-key\nVITE_EXPLORER_API_KEY=supersecretapikeysecretchangemeplease\nVITE_SESSION_SECRET=supersecretsessionssecretchangemeplease\nVITE_GEOCODE_URL=https://api.geocode.earth/v1/autocomplete\nVITE_GEOCDE_API_KEY=geocode-earth-api-key\nVITE_ENV=prod\n\n# CDK variables\n\nVPC_ID=vpc-42abcdefgh42\nHOSTED_ZONE_ID=ABC42DEF42GH\nHOSTED_ZONE_NAME=example.com\nDOMAIN_NAME=explore.example.com\nENV_NAME=env-name\nCERTIFICATE_ARN=arn:aws:acm:us-east-1:4242424242424:certificate/1234abc56-78defg9-10hijkl-mn1112\nCDK_ACCOUNT=42\nCDK_REGION=us-east-1\n\nREST_API_URL=http://localhost:8080\n\n```\n\n### Local development\n\nThe application requires Node 20 for building and development.\n\nAfter configuring the necesarry environment variables in the `.env` file,\ninstall dependencies with npm:\n\n```sh\nnpm install\n```\n\nTo run a local development version run\n\n```sh\nnpm run dev\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenaq%2Fopenaq-explorer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenaq%2Fopenaq-explorer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenaq%2Fopenaq-explorer/lists"}