Overview
SkillRise provides a powerful course discovery system that helps students find the perfect courses to advance their skills. The course catalog features advanced search, sorting, and filtering capabilities to quickly narrow down thousands of courses.Course Catalog Interface
The course catalog (/course-list) displays all available courses in a responsive grid layout. Each course is presented as a card showing:
- Thumbnail image - Visual preview of the course content
- Course title - Clear, descriptive course name
- Educator name - The instructor who created the course
- Star rating - Average rating from 1-5 stars with visual stars
- Total ratings - Number of students who rated the course
- Price - Course price in INR with two decimal places
Page Layout
The catalog page includes:- Breadcrumb navigation - Home / Explore path
- Page header - Title and descriptive subtitle
- Search and sort controls - Inline search bar with sort dropdown
- Popular topic pills - Quick-access category filters
- Results summary - Count of courses matching current filters
- Course grid - Responsive grid (1-4 columns based on screen size)
- Footer - Platform information and links
Search Functionality
Search Bar Component
The search bar is prominently displayed at the top of the catalog with:- Search icon - Visual indicator on the left
- Input field - Full-width text input for course queries
- Search button - Primary action button to execute search
Search Algorithm
The search performs case-insensitive matching against course titles:Active Search State
When a search is active:- Result count shows “X courses matching “query""
- Clear search button appears with X icon
- Active query highlighted in URL and UI
- Clicking clear returns to full catalog
Search results update instantly as users navigate. The search query persists in the URL, making it easy to share specific search results with others.
Sorting Options
The sort dropdown provides four ordering options:- Default
- Most Popular
- Price: Low → High
- Price: High → Low
Courses appear in their original database order, typically newest first.
Popular Topic Filters
Quick-access category pills appear below the search bar:- Web Dev
- Data Science
- Design
- AI
- Python
- JavaScript
Filter Behavior
Clicking a topic pill:- Navigates to
/course-list/{topic} - Applies search filter for that topic
- Highlights the active pill with teal background
- Shows matching course count
Course Cards
Each course is displayed as an interactive card with hover effects:Visual Design
- 16:9 aspect ratio thumbnail - Maintains consistent sizing
- Rounded corners - Modern 2xl border radius
- Hover lift effect - Slight translate-y and shadow increase
- Gradient overlay on hover - Subtle darkening effect
Information Displayed
- Course Title - Limited to 2 lines with ellipsis
- Educator Name - Single line with ellipsis
- Rating Display - Number + 5 star visualization
- Price - Large, bold INR amount
- CTA Badge - “View details” button
Interactive Behavior
Empty States
No Results Found
When a search returns zero courses:- Large search icon - Visual indicator (🔍 emoji)
- “No courses found” heading - Clear status message
- Descriptive text - Suggests trying different search terms
- “View all courses” button - Easy path back to full catalog
No Courses Available
When the catalog is completely empty:
Responsive Design
Grid Breakpoints
Mobile
1 column
grid-cols-1Tablet
2 columns
sm:grid-cols-2Desktop
3 columns
md:grid-cols-3Large
4 columns
lg:grid-cols-4Mobile Optimizations
- Search and sort stack vertically on small screens
- Topic pills wrap to multiple rows
- Course cards expand to full width
- Touch targets sized appropriately (44px minimum)
Performance Features
Instant Filtering
Instant Filtering
All filtering and sorting happens client-side using React state. Courses are filtered and sorted instantly without API calls, providing a snappy user experience.
URL-based State
URL-based State
Search queries are stored in the URL path (
/course-list/{query}), enabling:- Direct links to search results
- Browser back/forward navigation
- Sharable search URLs
Optimized Rendering
Optimized Rendering
Course cards use React keys and memoization to prevent unnecessary re-renders when sorting or filtering changes.
User Flow Example
Best Practices
Related Features
- Course Details - Next step after browsing
- My Courses - View enrolled courses
- Search Bar Component - Technical implementation