Skip to content

Conversation

@HelderMendes
Copy link
Contributor

Summary

This PR introduces UI improvements and new components for the OpenML Next.js application, focusing on the home page hero section, dataset detail pages, and navigation enhancements.

Changes

🏠 Home Page

  • New Hero Component (app-next/src/components/Hero-Home.tsx)): Modern, responsive hero section with:
    • Gradient text effects and animations
    • Dual-theme support (light/dark mode images)
    • Floating badge with statistics
    • Call-to-action buttons
    • User testimonials section!!!!
  • Added hero images for light and dark modes (There will be a new one in place of this illustration)
  • Added comprehensive favicon set for all platforms – Not yet in use

📊 Dataset Pages

  • New Dataset Header (dataset-header.tsx): Clean, informative header displaying:
    • Dataset name and ID
    • Status badge
    • Download count and like count
    • Action buttons (Download, Share, Like)
  • Dataset Metadata Grid (dataset-metadata-grid.tsx): Organized display of dataset properties
  • Feature Table (feature-table.tsx): Sortable table for dataset features
  • Quality Table (quality-table.tsx): Display of dataset quality metrics
  • Dataset Description (dataset-description.tsx): Formatted description with markdown support
  • Action Bar (dataset-action-bar.tsx): Quick actions for dataset operations

🧭 Navigation (1)

  • Slide-out Sidebar (sidebar.tsx): Responsive navigation sidebar with:
    • Collapsible sections
    • Icon support
    • Mobile-friendly design
    • Smooth animations
      obs:

🔍 Search Improvements

  • New search components for better UX:
    • search-container.tsx: Main search wrapper
    • filter-bar.tsx: Advanced filtering options
    • controls-bar.tsx: Search controls
    • results-table.tsx: Improved results display
    • search-config.ts: Centralized search configuration
  • Custom Elasticsearch connector (OpenMLSearchConnector.ts)

🎨 UI Components

Added shadcn/ui components for consistent design:

  • Checkbox, Command, Dialog, Popover
  • Scroll Area, Select, Separator
  • Table, Tabs, Toggle, Tooltip

🔧 Technical Improvements

  • Migrated to Next.js 16: Replaced deprecated [middleware.ts] with [proxy.ts]
  • Added Docker Compose configuration for local development
  • New Elasticsearch integration for dataset fetching
  • Improved TypeScript types and interfaces

Testing

  • ✅ Hero section displays correctly on desktop and mobile
  • ✅ Dataset pages load with proper metadata
  • ✅ Sidebar navigation works smoothly
  • ✅ Search functionality integrated with Elasticsearch
  • ✅ No deprecation warnings with Next.js 16

Note: This PR maintains backward compatibility with legacy URLs through the proxy configuration.

  1. We need to decide whether to animate the page behind the sidebar. When the sidebar leaves the page, there's only empty space.
    Question: (Example: page with datasets) is 100% wide, or is it 100% wide minus the sidebar, but animates to fill the space if the sidebar slide out.

@HelderMendes
Copy link
Contributor Author

I couldn't test the search functionality at the end of the day, because the remote server Elasticsearch was/is down for maintenance.

Copy link
Contributor

@joaquinvanschoren joaquinvanschoren left a comment

Choose a reason for hiding this comment

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

I sadly can't merge it like this. Please update or create a new PR with only the changes in /app-next

- Better Google indexing and SEO ranking
- More intuitive, user-friendly URLs
- Improved sharing and citation experience
- Professional URL structure for academic referencesx
Copy link
Contributor

Choose a reason for hiding this comment

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

added typo :)

REACT_APP_URL_SITE_BACKEND=http://localhost:8000/
REACT_APP_URL_API=http://localhost:8000/api/
REACT_APP_URL_ELASTICSEARCH=http://localhost:8000/es/
REACT_APP_URL_API=https://www.openml.org/api/
Copy link
Contributor

Choose a reason for hiding this comment

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

Don't edit .env - we don't want to overwrite variables on the server. You can use .env.dev or create a new file.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Understood! I'll use the existing .env.dev for local development going forward. The new PR won't include any
.env changes - it will remain as the production configuration.

Copy link
Contributor

Choose a reason for hiding this comment

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

Don't add readmes for a PR. Just add this information in the PR description on GitHub

Copy link
Contributor

Choose a reason for hiding this comment

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

Do you want to push changes to app/src ? These only seem whitespace updates.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks for the guidance! I'll make sure to use the GitHub PR description for this information in all future PRs

Copy link
Contributor

Choose a reason for hiding this comment

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

Did you mean to update this? why?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

No, that was a mistake - I did a project-wide search/replace that accidentally modified files outside /app-next. Tried to revert but missed some.
The new PR will be clean: only /app-next changes, no .md files, no editor auto-formatting noise, as I learned from you.

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.

2 participants