Skip to content

feat: gtfs feature tracker + updated header / footer section#128

Merged
Alessandro100 merged 15 commits intomainfrom
feat/gtfs-feature-tracker
Apr 28, 2026
Merged

feat: gtfs feature tracker + updated header / footer section#128
Alessandro100 merged 15 commits intomainfrom
feat/gtfs-feature-tracker

Conversation

@Alessandro100
Copy link
Copy Markdown
Contributor

Summary:

closes #127

Includes the GTFS Feature Tracker as well as a new header and footer section that has "Tools"

Expected behavior:

In the Feeds search page, when a user filters by "Feature" a button should display asking the user if they want to see the gtfs feature tracker.

The gtfs feature tracker page should include the same functionality as the demo provided in https://community.mobilitydata.org/gtfs-features

Bonus

  • When hovering on the feature, a "Feeds" item will appear which will bring the user to the feeds search page with that feature selected (See the important)

Testing tips:

Navigate to the gtfs feature tracking page and assure that the data is correct

Important
Some features names in the CSV do not match the names in the mobility database features

  • Fixed-Stops Demand Responsive Services -> needs to be -> Fixed-Stops Demand Responsive Transit
  • Zone-based Demand Responsive Services -> needs to be -> Zone-Based Demand Responsive Services
  • In-Station Traversal Time -> needs to be -> In-station Traversal Time
    the naming is very sensitive to getting the data from the api

Please make sure these boxes are checked before submitting your pull request - thanks!

  • Run the unit tests with yarn test to make sure you didn't break anything
  • Add or update any needed documentation to the repo
  • Format the title like "feat: [new feature short description]". Title must follow the Conventional Commit Specification(https://www.conventionalcommits.org/en/v1.0.0/).
  • Linked all relevant issues
  • Include screenshot(s) showing how this pull request works and fixes the issue(s)
Screenshot 2026-04-27 at 09 27 44 Screenshot 2026-04-27 at 09 26 55 Screenshot 2026-04-27 at 09 27 06 Screenshot 2026-04-27 at 09 27 15 Screenshot 2026-04-27 at 09 27 25 Screenshot 2026-04-27 at 09 27 30

Alessandro100 and others added 3 commits April 27, 2026 08:47
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
@Alessandro100 Alessandro100 requested a review from Copilot April 27, 2026 13:46
@Alessandro100 Alessandro100 self-assigned this Apr 27, 2026
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 27, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
mobilitydatabase-web Ready Ready Preview, Comment Apr 27, 2026 6:34pm

Request Review

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a new GTFS Feature Tracker page (fed by a published Google Sheets CSV) and exposes it through updated header/footer “Tools” navigation, plus a banner entry point from the Feeds search page when feature filters are active.

Changes:

  • Add /gtfs-feature-tracker localized route and client UI to display GTFS feature adoption across trip planners.
  • Update header/mobile drawer/footer navigation to include a “Tools” section and link to the new tracker.
  • Show a banner button on the Feeds search page when feature filters are selected, linking to the tracker.

Reviewed changes

Copilot reviewed 12 out of 17 changed files in this pull request and generated 14 comments.

Show a summary per file
File Description
src/app/components/HeaderMobileDrawer.tsx Adds “Tools” accordion in mobile drawer and includes tracker link.
src/app/components/Header.tsx Reworks validators menu into a “Tools” popover with tracker entry.
src/app/components/Header.style.ts Adds styles/components for the new header dropdown layout.
src/app/components/Footer.tsx Renames “Validators” column to “Tools” and adds tracker link.
src/app/[locale]/gtfs-feature-tracker/page.tsx New localized page that fetches and renders tracker data.
src/app/[locale]/gtfs-feature-tracker/lib/fetchTrackerData.ts Fetches/parses CSV data and maps it into tracker view models.
src/app/[locale]/gtfs-feature-tracker/components/types.ts Adds tracker-specific types for parsed data and tokenization.
src/app/[locale]/gtfs-feature-tracker/components/GtfsFeatureTracker.tsx Main client UI: filtering, table rendering, and “Feeds” links.
src/app/[locale]/gtfs-feature-tracker/components/GtfsFeatureTracker.helpers.tsx Helper functions for status parsing, progress calc, tokenization, date formatting.
src/app/[locale]/feeds/components/FeedsScreen.tsx Adds banner button linking to tracker when features are selected.
public/assets/tripPlannerLogos/gmaps.png Adds tracker consumer logo asset.
public/assets/tripPlannerLogos/transitapp.png Adds tracker consumer logo asset.
public/assets/tripPlannerLogos/motis.png Adds tracker consumer logo asset.
public/assets/tripPlannerLogos/opentripplanner.png Adds tracker consumer logo asset.
messages/en.json Adds footer/tooling strings and the feeds banner label.
messages/fr.json Adds footer/tooling strings and the feeds banner label.

Comment on lines +249 to +256
<Button
variant='text'
sx={mobileNavElementStyle}
href='/gtfs-feature-tracker'
onClick={onClose}
>
GTFS Feature Tracker
</Button>
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot apply changes based on this feedback

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in commit ed6003e. The GTFS Feature Tracker button in the mobile drawer now uses component={LocaleLink} where LocaleLink is the Link from src/i18n/navigation, ensuring locale-prefixed client-side navigation (e.g. /fr/gtfs-feature-tracker on French pages) instead of a full-page reload to the default locale.

Comment thread src/app/[locale]/gtfs-feature-tracker/components/GtfsFeatureTracker.tsx Outdated
Comment thread src/app/[locale]/gtfs-feature-tracker/components/GtfsFeatureTracker.tsx Outdated
Comment on lines +73 to +81
export function formatDate(dateStr: string): string {
if (!dateStr) return '';
const d = new Date(dateStr);
if (isNaN(d.getTime())) return dateStr;
return d.toLocaleDateString('en-US', {
year: 'numeric',
month: 'short',
day: 'numeric',
});
Comment thread src/app/[locale]/gtfs-feature-tracker/lib/fetchTrackerData.ts
Comment thread src/app/[locale]/gtfs-feature-tracker/components/GtfsFeatureTracker.tsx Outdated
Comment thread src/app/[locale]/gtfs-feature-tracker/components/GtfsFeatureTracker.tsx Outdated
Comment thread src/app/[locale]/gtfs-feature-tracker/lib/fetchTrackerData.ts Outdated
Comment thread src/app/components/Header.tsx
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ Alessandro100
❌ Copilot
You have signed the CLA already but the status is still pending? Let us recheck it.

Alessandro100 and others added 2 commits April 27, 2026 11:29
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Alessandro100 and others added 2 commits April 27, 2026 11:34
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 27, 2026

*Lighthouse ran on https://mobilitydatabase-glbwufve9-mobility-data.vercel.app/ * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🟢 97 🟢 94 🟢 96 🟢 100

*Lighthouse ran on https://mobilitydatabase-glbwufve9-mobility-data.vercel.app/feeds * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🟠 88 🟠 87 🟢 96 🟢 100

*Lighthouse ran on https://mobilitydatabase-glbwufve9-mobility-data.vercel.app/feeds/gtfs/mdb-2126 * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🟠 73 🟢 94 🟢 96 🟢 100

*Lighthouse ran on https://mobilitydatabase-glbwufve9-mobility-data.vercel.app/feeds/gtfs_rt/mdb-2585 * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🟢 97 🟠 84 🟢 96 🟢 100

*Lighthouse ran on https://mobilitydatabase-glbwufve9-mobility-data.vercel.app/feeds/gbfs/gbfs-flamingo_porirua * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🟠 86 🟢 94 🟢 96 🟢 100

Co-authored-by: Copilot <copilot@github.com>
Alessandro100 and others added 2 commits April 27, 2026 13:41
Co-authored-by: Copilot <copilot@github.com>
@davidgamez
Copy link
Copy Markdown
Member

[minor]: The informational link on the search page remains visible when the GTFS schedule is unselected from the filters. See attached video on how to reproduce it.

Screen.Recording.2026-04-27.at.2.19.03.PM.mov

Copy link
Copy Markdown
Member

@davidgamez davidgamez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Alessandro100 Alessandro100 merged commit c66185b into main Apr 28, 2026
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Adding GTFS Features Tracker to the Mobility Database

5 participants