Disclaimer: Work in progress
Generate air quality reports from anywhere in the world and share them with your friends!
- Blazing fast (uses incremental SSG and many performance optimizations) ⚡
- Uses 2* data sources merged into one, unified API 📑
- Implements i18n 🌐
- Features strong focus on accessibility 👍
- Fully customizable 🛠️
- Pleasing, fully responsive design 💅
- Utilizes end-to-end encryption 🔒
- Written in TypeScript
*We aim to add more data sources in the future.
The following environmental variables need to be provided:
DB_URI
- MongoDB database URI.DB_USER
- Database username.DB_PASSWORD
- Database password.DB_NAME
- Database name.DB_COLLECTION
- Collection name.NEXT_PUBLIC_AIRLY_KEY
- Airly API key.NEXT_PUBLIC_WAQI_TOKEN
- Air Quality Open Data Platform API token.NEXT_PUBLIC_MAPBOX_TOKEN
- Mapbox API token.
You can use the .env.local
file for this.
Hosted with Vercel ▲
# Run in development mode
$ npm run dev
# Build for production
$ npm run build
# Lint
$ npm test
- Home page
- Multiple data sources
- Airly
- World Air Quality Index
- ?
- Show the amount of reports created
- Multiple data sources
- Reports page
- Map
- Charts
- Sensor information
- Provider
- Location
- Distance
- Share functionality
- Generate Open Graph images
- Investigate the
Navigator.share()
API
- Information about WHO standards
- Other pages
- Allow adding custom-made air pollution sensors
- Manage locally created reports
- Privacy policy
- i18n (long-standing task)
- Persist global state (possibly blocked by Recoil API changes)
- Secure API routes
- Improve language-based redirection
- End-to-end encryption
- React for UI;
- Next.js for SSG, dynamic routes and much more;
- Styled Components for styling;
- Recoil for state management;
- MongoDB for storing user-generated reports.
MIT