-
Notifications
You must be signed in to change notification settings - Fork 48
Initial Draft for the Vertex, Beacon and AirQo AI platform visibility design #3629
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
15 commits
Select commit
Hold shift + click to select a range
fae5ddf
feat: Add new product pages and navigation items for AI Platform, Bea…
OchiengPaul442 d938883
feat: Update AI Platform images and descriptions for Locate workspace
OchiengPaul442 680c3ba
Refactor code structure for improved readability and maintainability
OchiengPaul442 6412059
Merge branch 'staging' into website-hcapture
OchiengPaul442 d149dd7
fix: Update image formats and dimensions in metadata configuration; i…
OchiengPaul442 8be3a1d
feat: Update product images and descriptions in metadata configuratio…
OchiengPaul442 026159d
feat: Add new product links to the footer for improved navigation
OchiengPaul442 1c1b7ae
Merge branch 'staging' into website-hcapture
OchiengPaul442 8c8184b
Add download section to VertexPage and update descriptions for clarity
OchiengPaul442 c25049a
Update VertexPage to remove 'View All Releases' download option and a…
OchiengPaul442 70931a6
Remove use cases section from BeaconPage for streamlined content
OchiengPaul442 f935f4d
Refactor AIPlatformPage descriptions for clarity and remove use cases…
OchiengPaul442 59770ad
Update Footer and AIPlatformPage for clarity; enhance ProductMarketin…
OchiengPaul442 9cf96e7
Remove 'Site Collocation' section from BeaconPage for streamlined con…
OchiengPaul442 78d0df2
Merge branch 'staging' into website-hcapture
OchiengPaul442 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Binary file added
BIN
+95.9 KB
...te/public/assets/images/products/ai-platform/ai-platform-forecast-showcase.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+134 KB
...site/public/assets/images/products/ai-platform/ai-platform-locate-showcase.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+1.18 MB
src/website/public/assets/images/products/beacon/beacon-dashboard-showcase.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+57.8 KB
src/website/public/assets/images/products/beacon/beacon-device-render.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+37.1 KB
src/website/public/assets/images/products/vertex/vertex-dashboard-showcase.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| import { | ||
| generateMetadata as createMetadata, | ||
| generateViewport, | ||
| METADATA_CONFIGS, | ||
| } from '@/lib/metadata'; | ||
| import AIPlatformPage from '@/views/products/AIPlatformPage'; | ||
|
|
||
| export const metadata = createMetadata(METADATA_CONFIGS.aiPlatform); | ||
| export const viewport = generateViewport(); | ||
|
|
||
| const page = () => { | ||
| return ( | ||
| <div> | ||
| <AIPlatformPage /> | ||
| </div> | ||
| ); | ||
| }; | ||
|
|
||
| export default page; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| import { | ||
| generateMetadata as createMetadata, | ||
| generateViewport, | ||
| METADATA_CONFIGS, | ||
| } from '@/lib/metadata'; | ||
| import BeaconPage from '@/views/products/BeaconPage'; | ||
|
|
||
| export const metadata = createMetadata(METADATA_CONFIGS.beacon); | ||
| export const viewport = generateViewport(); | ||
|
|
||
| const page = () => { | ||
| return ( | ||
| <div> | ||
| <BeaconPage /> | ||
| </div> | ||
| ); | ||
| }; | ||
|
|
||
| export default page; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| import { | ||
| generateMetadata as createMetadata, | ||
| generateViewport, | ||
| METADATA_CONFIGS, | ||
| } from '@/lib/metadata'; | ||
| import VertexPage from '@/views/products/VertexPage'; | ||
|
|
||
| export const metadata = createMetadata(METADATA_CONFIGS.vertex); | ||
| export const viewport = generateViewport(); | ||
|
|
||
| const page = () => { | ||
| return ( | ||
| <div> | ||
| <VertexPage /> | ||
| </div> | ||
| ); | ||
| }; | ||
|
|
||
| export default page; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,201 @@ | ||
| 'use client'; | ||
|
|
||
| import { | ||
| FiBarChart2, | ||
| FiCompass, | ||
| FiCpu, | ||
| FiFileText, | ||
| FiGrid, | ||
| FiTrendingUp, | ||
| } from 'react-icons/fi'; | ||
|
|
||
| import ProductMarketingPage from './ProductMarketingPage'; | ||
|
|
||
| const aiTheme = { | ||
| accentTextClassName: 'text-blue-700', | ||
| heroBackgroundClassName: 'bg-[#EDF3FF]', | ||
| capabilitiesBackgroundClassName: 'bg-slate-50', | ||
| audiencesBackgroundClassName: 'bg-[#EEF6FF] border border-blue-100', | ||
| ctaBackgroundClassName: 'bg-gradient-to-br from-white via-blue-50 to-cyan-50', | ||
| quickLinksCardClassName: 'bg-white', | ||
| } as const; | ||
|
|
||
| const AIPlatformPage = () => { | ||
| return ( | ||
| <ProductMarketingPage | ||
| theme={aiTheme} | ||
| hero={{ | ||
| breadcrumb: 'Our Products > AirQo AI Platform', | ||
| eyebrow: 'Forecasting, Site Selection, Categorization, and Reporting', | ||
| title: 'Turn air quality data into environmental intelligence.', | ||
| description: | ||
| 'AirQo AI Platform combines forecasting, site recommendation, categorization, reporting, and spatial analysis in one workspace so teams can move from raw observations to clearer environmental decisions.', | ||
| image: { | ||
| src: '/assets/images/products/ai-platform/hero.webp', | ||
| alt: 'AirQo AI Locate workspace showing an analysis boundary, recommended monitoring sites, and planning insights', | ||
| }, | ||
| }} | ||
| intro={{ | ||
| title: ( | ||
| <> | ||
| One platform for{' '} | ||
| <span className={aiTheme.accentTextClassName}>forecasting</span>, | ||
| planning, and reporting | ||
| </> | ||
| ), | ||
| description: | ||
| 'The AirQo AI Platform helps organizations move from monitoring data to action-ready insight. It is built for planning, interpretation, and decision support across public health, research, and urban environmental management.', | ||
| }} | ||
| primarySection={{ | ||
| eyebrow: 'Environmental intelligence', | ||
| title: | ||
| 'A real workspace for forecasting, siting, categorization, and report generation', | ||
| description: [ | ||
| 'The platform combines forecast cards, monitoring summaries, site recommendation, categorization, and reports in one interface so teams can work from a shared analytical view.', | ||
| 'That makes it useful for organizations that need more than data access alone and want clearer reasoning about what to do next.', | ||
| ], | ||
| image: { | ||
| src: '/assets/images/products/ai-platform/ai-platform-forecast-showcase.webp', | ||
| alt: 'AirQo AI map with a selected monitoring node and forecast details for the chosen location', | ||
| }, | ||
| cardBackgroundClassName: 'bg-[#EDF5FF]', | ||
| action: { | ||
| label: 'Open AirQo AI', | ||
| href: 'https://ai.airqo.net', | ||
| variant: 'secondary', | ||
| }, | ||
| }} | ||
| capabilities={{ | ||
| title: ( | ||
| <> | ||
| What the{' '} | ||
| <span className={aiTheme.accentTextClassName}>AI Platform</span>{' '} | ||
| helps you do | ||
| </> | ||
| ), | ||
| description: | ||
| 'AirQo AI brings forecasting, site selection, categorization, and reporting into one workspace.', | ||
| items: [ | ||
| { | ||
| title: 'Air quality forecasting', | ||
| description: | ||
| 'Generate daily and hourly PM2.5 forecasts using machine learning models.', | ||
| Icon: FiTrendingUp, | ||
| }, | ||
| { | ||
| title: 'AI-powered site deployment', | ||
| description: | ||
| 'Use LOCATE to recommend monitoring sites based on environmental and geospatial factors.', | ||
| Icon: FiCompass, | ||
| }, | ||
| { | ||
| title: 'Site categorization', | ||
| description: | ||
| 'Classify monitoring locations using surrounding land-use and environmental characteristics.', | ||
| Icon: FiGrid, | ||
| }, | ||
| { | ||
| title: 'Automated reporting', | ||
| description: | ||
| 'Produce summaries and reports without rebuilding the same analytical narrative manually.', | ||
| Icon: FiFileText, | ||
| }, | ||
| { | ||
| title: 'Spatial analysis tools', | ||
| description: | ||
| 'Investigate hotspots, clustering, and distribution patterns across monitored areas.', | ||
| Icon: FiBarChart2, | ||
| }, | ||
| { | ||
| title: 'Decision support', | ||
| description: | ||
| 'Support policymakers, practitioners, and researchers with more actionable environmental insight.', | ||
| Icon: FiCpu, | ||
| }, | ||
| ], | ||
| }} | ||
| secondarySection={{ | ||
| eyebrow: 'Planning and interpretation', | ||
| title: | ||
| 'Use AI to choose where to act and communicate why those choices matter', | ||
| description: [ | ||
| 'By combining site recommendation, categorization, spatial analysis, and reporting, the platform creates a stronger bridge between environmental data science and applied monitoring strategy.', | ||
| 'This is what makes it useful beyond prediction alone: it helps teams turn information into planning logic and decision support.', | ||
| ], | ||
| image: { | ||
| src: '/assets/images/products/ai-platform/ai-platform-locate-showcase.webp', | ||
| alt: 'AirQo AI Locate map with boundary planning, recommended sites, and priority monitoring locations', | ||
| }, | ||
| cardBackgroundClassName: 'bg-[#FFF7E8]', | ||
| reverse: true, | ||
| action: { | ||
| label: 'Explore Locate', | ||
| href: 'https://ai.airqo.net/locate', | ||
| variant: 'secondary', | ||
| }, | ||
| }} | ||
| audiences={{ | ||
| title: ( | ||
| <> | ||
| Built for teams that need faster, better environmental{' '} | ||
| <span className={aiTheme.accentTextClassName}>decisions</span> | ||
| </> | ||
| ), | ||
| description: | ||
| 'The AI Platform is positioned for analytical and planning work across public, research, and environmental management contexts.', | ||
| items: [ | ||
| 'Government agencies', | ||
| 'City authorities and urban planners', | ||
| 'Environmental researchers', | ||
| 'Public health organizations', | ||
| 'Monitoring teams', | ||
| 'Environmental consultants', | ||
| ], | ||
| }} | ||
| ctaSection={{ | ||
| eyebrow: 'AirQo AI Platform', | ||
| title: ( | ||
| <> | ||
| Use AI to forecast, place, classify, and explain air quality with | ||
| more <span className={aiTheme.accentTextClassName}>confidence</span> | ||
| </> | ||
| ), | ||
| description: | ||
| 'Open AirQo AI to explore the map, run Locate, categorize sites, and access reporting workflows built for environmental intelligence.', | ||
| actions: [ | ||
| { | ||
| label: 'Open the Platform', | ||
| href: 'https://ai.airqo.net', | ||
| }, | ||
| { | ||
| label: 'View Reports', | ||
| href: 'https://ai.airqo.net/reports', | ||
| variant: 'secondary', | ||
| }, | ||
| ], | ||
| quickLinks: [ | ||
| { | ||
| title: 'Map', | ||
| description: | ||
| 'Explore the monitoring surface and air quality intelligence layer.', | ||
| href: 'https://ai.airqo.net/map', | ||
| }, | ||
| { | ||
| title: 'Categorize', | ||
| description: | ||
| 'Interpret sites through environmental characteristics and surrounding context.', | ||
| href: 'https://ai.airqo.net/categorize', | ||
| }, | ||
| { | ||
| title: 'Reports', | ||
| description: | ||
| 'Access summaries and reporting outputs for decision support and communication.', | ||
| href: 'https://ai.airqo.net/reports', | ||
| }, | ||
| ], | ||
| }} | ||
| /> | ||
| ); | ||
| }; | ||
|
|
||
| export default AIPlatformPage; |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.