Skip to content

wgrea/SkillsHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trending Skills & Project Ideas Platform

A modern web platform that helps users discover trending skills and find relevant project ideas to advance their careers. Features responsive design, advanced filtering, and comprehensive skill insights with data transparency.

Platform Screenshot

Features

Core Functionality

  • Trending Skills Discovery - Real-time skill popularity tracking with growth indicators
  • Project Idea Suggestions - Curated projects mapped to specific skills and difficulty levels
  • Advanced Search & Filtering - Multi-category filters with smooth animations
  • Skill Demand Analytics - Salary ranges, job postings, and market demand data
  • Progress Tracking - Personal learning journey management
  • Bookmarking System - Save favorite skills and projects for later

User Experience

  • Responsive Design - Optimized for mobile, tablet, and desktop
  • Dark/Light Mode - Accessible theme options with proper contrast
  • Smooth Micro-Animations - Enhanced hover effects and transitions
  • Lazy Loading - Performance-optimized content loading
  • Intuitive Navigation - Clean, user-friendly interface design

Data Transparency

  • Source Attribution - Clear data sourcing with credibility indicators
  • Partnership Information - Transparent disclosure of data partnerships
  • Last Updated Timestamps - Data freshness indicators
  • Methodology Disclosure - How skill rankings are calculated

Tech Stack

  • Frontend: React 18, TypeScript, Tailwind CSS
  • UI Components: shadcn/ui component library
  • Animations: Framer Motion for smooth interactions
  • State Management: React hooks and Context API
  • Build Tool: Vite for fast development and building
  • Testing: Vitest and React Testing Library

Getting Started

Prerequisites

  • Node.js 16+
  • npm or yarn package manager

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/skills-platform.git
cd skills-platform
  1. Install dependencies:
npm install
  1. Start the development server:
npm run dev
  1. Open http://localhost:5173 in your browser.

Project Structure

skills-platform/
├── src/
│   ├── components/
│   │   ├── skills/
│   │   │   ├── skill-card.tsx
│   │   │   ├── skills-grid.tsx
│   │   │   └── skill-level-badge.tsx
│   │   ├── projects/
│   │   │   ├── project-card.tsx
│   │   │   ├── projects-grid.tsx
│   │   │   └── project-difficulty-badge.tsx
│   │   ├── filters/
│   │   │   ├── category-filter.tsx
│   │   │   ├── search-bar.tsx
│   │   │   └── mobile-filters.tsx
│   │   ├── layout/
│   │   │   ├── header.tsx
│   │   │   ├── footer.tsx
│   │   │   └── main-layout.tsx
│   │   ├── theme/
│   │   │   ├── theme-provider.tsx
│   │   │   └── theme-toggle.tsx
│   │   └── ui/
│   │       ├── card.tsx
│   │       ├── button.tsx
│   │       ├── badge.tsx
│   │       └── empty-state.tsx
│   ├── hooks/
│   │   ├── use-bookmarks.ts
│   │   └── use-mobile-view.ts
│   ├── data/
│   │   ├── skills-data.ts
│   │   └── projects-data.ts
│   ├── types/
│   │   └── index.ts
│   └── App.tsx
├── public/
└── docs/

Key Components

Skill Card

Displays comprehensive skill information including:

  • Popularity score and growth indicators
  • Salary range data
  • Job posting counts
  • Required certifications
  • Data source attribution
  • Bookmark functionality

Project Card

Shows project details with:

  • Difficulty level indicators
  • Required skills mapping
  • Time investment estimates
  • Learning outcomes
  • External resources links
  • Save to favorites option

Advanced Filtering

  • Category Filters: Technology, Business, Creative, Data Science, Game Development
  • Difficulty Levels: Beginner, Intermediate, Advanced
  • Skill Types: Technical, Soft Skills, Certifications
  • Salary Ranges: Customizable range sliders
  • Time Investment: Project duration filters

Search Functionality

  • Real-time search across skills and projects
  • Autocomplete suggestions
  • Search result highlighting
  • Recent searches history
  • Popular search terms

Data Sources & Transparency

Skill Data Sources

  • LinkedIn Learning: Course enrollment and completion data
  • GitHub: Repository activity and programming language trends
  • Stack Overflow: Developer survey results and question frequency
  • Indeed/Glassdoor: Job posting frequency and salary data
  • Coursera/Udemy: Course popularity and ratings

Credibility Indicators

  • Source reliability ratings
  • Data freshness timestamps
  • Sample size information
  • Methodology explanations
  • Partnership disclosure

Example Data Structure

interface Skill {
  id: string;
  name: string;
  category: SkillCategory;
  popularityScore: number;
  growthRate: number;
  salaryRange: {
    min: number;
    max: number;
    currency: string;
  };
  jobPostings: number;
  demandScore: number;
  source: DataSource;
  certifications: Certification[];
  relatedSkills: string[];
}

interface DataSource {
  name: string;
  url: string;
  lastUpdated: string;
  reliability: number;
  description: string;
}

Features Implementation

High Priority Features

Enhanced Search Box

// Advanced search with autocomplete
const useEnhancedSearch = () => {
  const [query, setQuery] = useState('');
  const [suggestions, setSuggestions] = useState([]);
  const [recentSearches, setRecentSearches] = useState([]);
  
  // Debounced search implementation
  const debouncedSearch = useMemo(
    () => debounce((searchTerm: string) => {
      // Search logic with autocomplete
    }, 300),
    []
  );
};

Bookmarking System

// Local storage based bookmarking
const useBookmarks = () => {
  const [bookmarks, setBookmarks] = useState<BookmarkState>({
    skills: [],
    projects: []
  });
  
  // Persist to localStorage
  useEffect(() => {
    localStorage.setItem('bookmarks', JSON.stringify(bookmarks));
  }, [bookmarks]);
};

Category Filtering

  • Multi-select category options
  • Animated filter transitions
  • Filter persistence across sessions
  • Clear all filters functionality
  • Filter result counts

Medium Priority Features

Progress Tracking

  • Learning path creation
  • Skill completion tracking
  • Achievement badges
  • Progress visualization
  • Goal setting and reminders

LinkedIn Integration

  • Profile skill matching
  • Endorsement integration
  • Job recommendation sync
  • Professional network insights
  • Skill gap analysis

Performance Optimizations

Lazy Loading

// Intersection Observer for lazy loading
const useIntersectionObserver = (callback: () => void) => {
  const targetRef = useRef(null);
  
  useEffect(() => {
    const observer = new IntersectionObserver(([entry]) => {
      if (entry.isIntersecting) {
        callback();
      }
    });
    
    if (targetRef.current) {
      observer.observe(targetRef.current);
    }
    
    return () => observer.disconnect();
  }, [callback]);
};

Virtualization

  • Large list performance optimization
  • Dynamic height calculation
  • Smooth scrolling experience
  • Memory usage optimization

Accessibility

  • WCAG 2.1 AA compliance
  • Keyboard navigation support
  • Screen reader optimization
  • High contrast mode support
  • Focus management
  • ARIA labels and descriptions

Testing

Unit Tests

npm run test

Integration Tests

npm run test:integration

E2E Tests

npm run test:e2e

Performance Testing

npm run lighthouse

Deployment

Development

npm run dev

Production Build

npm run build
npm run preview

Environment Variables

VITE_API_BASE_URL=https://api.skillsplatform.com
VITE_ANALYTICS_ID=your_analytics_id
VITE_FEATURE_FLAGS=advanced_search,bookmarks,tracking

API Integration

Skills API

// Fetch trending skills
GET /api/skills?category={category}&limit={limit}

// Get skill details
GET /api/skills/{skillId}

// Search skills
GET /api/skills/search?q={query}

Projects API

// Get projects by skill
GET /api/projects?skillId={skillId}

// Get project details
GET /api/projects/{projectId}

// Filter projects
GET /api/projects?difficulty={level}&duration={time}

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make your changes and add tests
  4. Commit changes: git commit -am 'Add feature'
  5. Push to branch: git push origin feature-name
  6. Submit a Pull Request

Development Guidelines

  • Follow TypeScript best practices
  • Use Tailwind CSS utilities over custom CSS
  • Write comprehensive tests
  • Update documentation for new features
  • Maintain accessibility standards
  • Follow semantic versioning

Security

  • Input validation and sanitization
  • XSS protection
  • CSRF protection
  • Rate limiting
  • Data encryption
  • Privacy compliance (GDPR, CCPA)

Browser Support

  • Chrome 90+
  • Firefox 88+
  • Safari 14+
  • Edge 90+

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

Acknowledgments

  • Data providers and partners
  • Open source community
  • User feedback and contributions
  • Design inspiration from modern platforms

Discover your next career move with data-driven skill insights

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published