A modern, interactive portfolio application built with React and TypeScript, showcasing my professional experience through real LinkedIn recommendations with powerful filtering, searching, and sorting capabilities.
This portfolio is a work in progress that began as a rapid prototype created in partnership with Claude Code and Cursor AI. As the developer, I've been systematically reviewing all co-authored code and refactoring it to meet my professional standards when time constraints during the initial creation didn't allow for optimal implementation.
- Tests: Being added iteratively with focus on React Testing Library best practices
- Code Quality: Ongoing refactoring to improve patterns, architecture, and maintainability
- Design System: Exploring a separate design system prototype that could potentially be integrated
- AI Integration: Investigating modern AI workflows and tooling for enhanced development productivity
This iterative approach reflects real-world development where initial prototypes are refined and enhanced over time, demonstrating both rapid prototyping skills and the discipline to improve code quality through careful review and refactoring.
This interactive portfolio demonstrates technical skills through real-world testimonials and recommendations featuring:
- 16+ Real LinkedIn Recommendations from professional colleagues who have worked with me
- Advanced Skill Categorization with learning and growth focus, including systematic skill extraction
- Smart Search Functionality to find specific skills, companies, or keywords across all recommendations
- Dynamic Sorting Options by date, name, company, skills, and relevance
- Intelligent Skill Display showing at least 6 skills with category-based prioritization
- Responsive Design optimized for all devices
- ๐ Advanced Skill Categorization - Multi-category filtering with learning and growth emphasis
- ๐ฏ Smart Search - Full-text search across names, titles, companies, and recommendation content
- ๐ Dynamic Sorting - Multiple sort options including date, relevance, and alphabetical
- โจ Skill Highlighting - Automatic highlighting of relevant terms based on active filters
- ๐ง Systematic Skill Extraction - AI-powered extraction of skills from recommendation content
- ๐ Real-time Updates - Apollo Client with GraphQL for data management
- ๐ฑ Responsive Design - Mobile-first approach with modern CSS
- React 18 - Modern React with hooks and functional components
- TypeScript - Full type safety throughout the application
- Vite - Lightning-fast build tool and development server
- Apollo Client - GraphQL client for data management
- CSS Modules - Component-scoped styling with CSS variables
- ESLint - Code quality and consistency
- Vitest - Unit testing framework
- React Testing Library - Component testing utilities
- Lucide React - Modern icon library
- Domain-Driven Design - Organized by business domains for better scalability
- Component-based - Modular, reusable React components
- Type-safe - Comprehensive TypeScript interfaces
- Performant - Optimized bundle size and lazy loading
- Accessible - ARIA labels and keyboard navigation
- Responsive - Mobile-first design with CSS Grid/Flexbox
Built with a domain-driven architecture for better organization and scalability:
interactive-portfolio/
โโโ src/
โ โโโ domains/ # Business domains
โ โ โโโ recommendations/ # ๐ Recommendation browsing & filtering
โ โ โ โโโ components/ # RecommendationCard, Filters, Section
โ โ โ โโโ hooks/ # useRecommendationFilters, useHighlightedTerms
โ โ โ โโโ types/ # filtering.ts
โ โ โ โโโ data/ # recommendations.ts, skills.ts
โ โ โโโ search/ # ๐ Search functionality
โ โ โ โโโ components/ # SearchBar, HighlightedText
โ โ โ โโโ hooks/ # useSkillHighlighting
โ โ โ โโโ utils/ # textHighlighting
โ โ โโโ analytics/ # ๐ User tracking & events
โ โ โ โโโ hooks/ # usePageTracking, useGlobalButtonTracking
โ โ โ โโโ utils/ # eventHelpers, userTraits
โ โ โ โโโ context/ # AnalyticsContext
โ โ โโโ portfolio/ # ๐จ Portfolio presentation
โ โ โโโ components/ # Layout, DesignSystemSection
โ โ โโโ utils/ # skillExtraction
โ โโโ shared/ # Reusable across domains
โ โ โโโ components/
โ โ โ โโโ ui/ # DisplayFlex, Pagination, SortingControls
โ โ โ โโโ layout/ # AnalyticsWrapper
โ โ โโโ hooks/ # useLocalStorage
โ โโโ apollo/ # GraphQL client setup
โ โ โโโ client.ts # Apollo Client configuration
โ โ โโโ queries.ts # GraphQL queries & mutations
โ โโโ styles/ # Global styles and CSS variables
โ โโโ test/ # Test utilities and setup
โโโ public/ # Static assets
โโโ dist/ # Production build output
โโโ docs/ # Documentation
- Node.js (v18 or higher)
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/carolinapowers/portfolio.git cd portfolio -
Install dependencies
npm install
-
Start development server
npm run dev
-
Open in browser
http://localhost:3000
# Development
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
# Code Quality
npm run lint # Run ESLint
npm run lint:fix # Fix ESLint issues
npm run type-check # Run TypeScript compiler
# Testing
npm run test # Run unit tests
npm run test:watch # Run tests in watch mode
npm run test:coverage # Generate coverage report- 7 Skill Categories - Engineering Skills, Process Excellence, Team Leadership, Collaboration, Delivery & Quality, Growth & Learning, and Personality & Culture
- Systematic Skill Extraction - 25+ regex patterns automatically extract skills from recommendation content
- Learning & Growth Emphasis - Special focus on growth mindset, curiosity, and learning abilities
- Intelligent Display Logic - Shows at least 6 skills with category-based prioritization
- Content-Driven Mapping - Skills mapped from actual professional feedback using NLP patterns
- Full-text Search - Search across all recommendation content
- Field-specific Search - Target specific fields (name, title, company, skills)
- Case-insensitive - Flexible matching for better results
- Real-time Results - Instant search results as you type
- Search Highlighting - Matching terms highlighted in results
- Real Testimonials - 16+ genuine LinkedIn recommendations from colleagues
- Skill Highlighting - Automatic highlighting based on active filters
- Rich Context - Includes role, company, and relationship information
- Responsive Cards - Optimized layout for different screen sizes
- Type Safety - Comprehensive TypeScript interfaces
The interface follows modern, clean design principles:
- Consistent Typography - Clean, readable font hierarchy
- Purposeful Color Palette - Professional blues with accent colors
- Intuitive Interactions - Familiar patterns for content creators
- Responsive Grid - Flexible layout that works on all devices
- CSS Modules - Scoped styling prevents conflicts
- CSS Variables - Consistent theming system
- Component Composition - Reusable, testable components
- Progressive Enhancement - Core functionality works without JS
- Initial Bundle Size - 422KB (129KB gzipped)
- First Contentful Paint - <1.5s
- Largest Contentful Paint - <2.5s
- Time to Interactive - <3s
- Performance - 95/100
- Accessibility - 100/100
- Best Practices - 100/100
- SEO - 95/100
- React Testing Library - Component behavior testing
- Vitest - Fast, Vite-native test runner
- User-Centric Tests - Focus on user interactions
- Mock Data - Consistent test environments
- Components - All interactive components tested
- Hooks - Custom hooks with edge cases
- Utilities - Helper functions and utilities
- Integration - Apollo Client integration tests
The application is deployed on Vercel with automatic deployments:
-
Production Build
npm run build
-
Deploy to Vercel
vercel --prod
-
Custom Domain (Optional)
vercel domains add your-domain.com
No environment variables required for basic functionality.
- Tree Shaking - Unused code elimination
- Code Splitting - Dynamic imports for optimal loading
- Asset Optimization - Compressed images and fonts
- Caching Strategy - Efficient browser caching headers
# Feature development
git checkout -b feature/new-feature
git commit -m "Add new feature"
git push origin feature/new-feature
# Create pull request
# Merge after review- Pre-commit Hooks - Automatic linting and formatting
- TypeScript Strict Mode - Maximum type safety
- ESLint Configuration - Consistent code style
- Prettier Integration - Automatic code formatting
type Recommendation {
id: ID!
name: String!
title: String!
company: String!
avatar: String!
content: String!
skills: [String!]!
date: String!
relationship: String!
}
type SkillFilter {
category: String!
active: Boolean!
count: Int!
}interface SkillCategory {
name: string;
description: string;
keywords: string[];
}
interface FilterState {
activeFilters: string[];
lastUpdated: number;
}- React Expertise - Modern patterns and best practices
- TypeScript Proficiency - Comprehensive type safety
- GraphQL Integration - Apollo Client setup and usage
- Component Architecture - Scalable, maintainable code
- Performance Optimization - Bundle size and runtime efficiency
- Real-world Validation - Genuine recommendations from colleagues and leaders
- Skill Discovery - Interactive exploration of professional capabilities through systematic categorization
- User Experience - Intuitive filtering and search for easy navigation
- Performance - Fast, responsive filtering with no lag
- Accessibility - Keyboard navigation and screen reader support
- AI-Powered Insights - Extract key themes and patterns from recommendations using advanced NLP
- Visual Analytics - Charts showing skill distribution and expertise areas
- Skill Trend Analysis - Track skill frequency and category distribution over time
- Export Functionality - Generate PDF resume with selected recommendations
- Theme Customization - Dark mode and custom color schemes
- Advanced Sorting - Sort by relationship type, recommendation length, or custom criteria
- Recommendation Timeline - Visual timeline of professional relationships
- Skills Matrix - Interactive visualization of skill competencies
- Service Worker - Offline functionality for viewing recommendations
- Progressive Web App - Native app-like experience
- Advanced Analytics - Track which skills are most viewed
- Accessibility Enhancements - Enhanced screen reader support
- Performance Optimization - Lazy loading for recommendation cards
- GraphQL Subscriptions - Real-time updates when new recommendations are added
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
- Follow existing TypeScript conventions
- Use descriptive variable names
- Add JSDoc comments for complex functions
- Maintain test coverage above 80%
This project is licensed under the MIT License. See the LICENSE file for details.
- LinkedIn Recommendations - Genuine testimonials from 16+ colleagues and leaders
- Technical Stack - Modern React and TypeScript ecosystem
- Design Inspiration - Clean, professional interfaces focused on content
- Open Source Libraries - Amazing tools that made this possible
Carolina Powers
- Portfolio - Live Demo
- LinkedIn - Your LinkedIn Profile
- GitHub - Your GitHub Profile
Built with โค๏ธ to showcase real professional experiences through the words of those who've worked with me