An open API service indexing awesome lists of open source software.

https://github.com/htirawi/frontend-interview-prep

๐ŸŽฏ Master 400+ senior-level interview questions for Angular, React, Next.js & Redux. Professional study platform featuring beautiful UI, progress tracking, practice modes, and PWA support. Built with React 19, TypeScript & Tailwind CSS.
https://github.com/htirawi/frontend-interview-prep

angular frontend interview-prep interview-questions learning-platform pwa react react19 redux senior-developer study-tool tailwindcss typescript vite

Last synced: 18 days ago
JSON representation

๐ŸŽฏ Master 400+ senior-level interview questions for Angular, React, Next.js & Redux. Professional study platform featuring beautiful UI, progress tracking, practice modes, and PWA support. Built with React 19, TypeScript & Tailwind CSS.

Awesome Lists containing this project

README

          

# Frontend Interview Prep

A professional, multi-framework interview preparation application built with React, TypeScript, and Tailwind CSS. Practice with **500+ curated questions** across Angular, React, Next.js, Redux, and Random topics.

## ๐Ÿš€ Features

- **Multi-Framework Support**: Practice questions for Angular (227), React (80), Next.js (50), Redux (100), and Random topics (52)
- **Interactive Quiz System**: Dynamic quiz interface with multiple question types (multiple choice, fill-in-blank, true/false, multiple checkbox)
- **Enhanced Question Cards**: Rich markdown rendering with syntax highlighting and comparison tables
- **Study Features**: Bookmarks, notes, progress tracking, and study timer
- **Study Analytics**: Comprehensive performance tracking and analytics dashboard
- **Offline Support**: Progressive Web App with offline capabilities
- **Responsive Design**: Optimized for desktop and mobile devices
- **Dark Mode**: Toggle between light and dark themes
- **PWA Support**: Install as a Progressive Web App
- **Keyboard Shortcuts**: Navigate efficiently with keyboard controls
- **Code Quality**: Comprehensive pre-push validation system
- **Architecture**: Clean separation of concerns with custom hooks and services
- **Path Aliases**: Modern import organization with TypeScript path mapping

## ๐Ÿ› ๏ธ Tech Stack

- **Frontend**: React 19, TypeScript, Tailwind CSS
- **Build Tool**: Vite
- **Testing**: Vitest, Testing Library
- **Code Quality**: ESLint, Prettier, Husky, Pre-push validation
- **Architecture**: Custom hooks, services, context API
- **Deployment**: Vercel, Netlify ready

## ๐Ÿ“ Project Structure

```
src/
โ”œโ”€โ”€ components/ # Reusable UI components
โ”‚ โ”œโ”€โ”€ common/ # Shared components (LazyLoader, MarkdownRenderer, etc.)
โ”‚ โ”œโ”€โ”€ features/ # Feature-specific components (StudyAnalytics, StatsPanel)
โ”‚ โ”œโ”€โ”€ forms/ # Form components (SearchBar, FilterPanel, QuestionRating)
โ”‚ โ”œโ”€โ”€ interactive-quiz/ # Interactive quiz system components
โ”‚ โ”œโ”€โ”€ layout/ # Layout components (Sidebar, etc.)
โ”‚ โ”œโ”€โ”€ navigation/ # Navigation components (FrameworkSelector, etc.)
โ”‚ โ”œโ”€โ”€ quiz/ # Quiz components (QuizTimer, QuizProgress, etc.)
โ”‚ โ”œโ”€โ”€ study/ # Study mode components
โ”‚ โ””โ”€โ”€ tables/ # Table components (ComparisonTable, RegularTable)
โ”œโ”€โ”€ pages/ # Main application pages
โ”‚ โ”œโ”€โ”€ ModeSelection.tsx
โ”‚ โ”œโ”€โ”€ FrameworkSelection.tsx
โ”‚ โ”œโ”€โ”€ InterviewPage.tsx
โ”‚ โ”œโ”€โ”€ InteractiveQuizPage.tsx
โ”‚ โ””โ”€โ”€ QuizSelection.tsx
โ”œโ”€โ”€ data/ # Question data and framework definitions
โ”‚ โ”œโ”€โ”€ angular-enhanced.ts # 227 Angular questions
โ”‚ โ”œโ”€โ”€ react-enhanced.ts # 80 React questions
โ”‚ โ”œโ”€โ”€ nextjs-enhanced.ts # 50 Next.js questions
โ”‚ โ”œโ”€โ”€ random-enhanced.ts # 52 Random topic questions
โ”‚ โ”œโ”€โ”€ redux.ts # 100 Redux questions
โ”‚ โ””โ”€โ”€ interactive-quiz.ts # Interactive quiz data
โ”œโ”€โ”€ services/ # Business logic services
โ”‚ โ”œโ”€โ”€ InteractiveQuizService.ts
โ”‚ โ”œโ”€โ”€ QuestionService.ts
โ”‚ โ”œโ”€โ”€ QuizService.ts
โ”‚ โ””โ”€โ”€ PerformanceService.ts
โ”œโ”€โ”€ hooks/ # Custom React hooks
โ”‚ โ”œโ”€โ”€ useFrameworkManager.ts
โ”‚ โ”œโ”€โ”€ useStudyAnalytics.ts
โ”‚ โ””โ”€โ”€ useKeyboardShortcuts.ts
โ”œโ”€โ”€ contexts/ # React context providers
โ”‚ โ”œโ”€โ”€ ThemeContext.tsx
โ”‚ โ””โ”€โ”€ SidebarContext.tsx
โ”œโ”€โ”€ types/ # TypeScript type definitions
โ”‚ โ”œโ”€โ”€ interactive-quiz.ts
โ”‚ โ”œโ”€โ”€ quiz-results.ts
โ”‚ โ”œโ”€โ”€ study-components.ts
โ”‚ โ””โ”€โ”€ ui.ts
โ”œโ”€โ”€ core/ # Core functionality
โ”‚ โ””โ”€โ”€ components/ # Core components (ErrorBoundary, etc.)
โ”œโ”€โ”€ shared/ # Shared utilities and components
โ”œโ”€โ”€ utils/ # Utility functions
โ””โ”€โ”€ styles/ # Global styles and animations

docs/ # Documentation
โ”œโ”€โ”€ guides/ # Setup and usage guides
โ”œโ”€โ”€ management/ # Project management docs
โ””โ”€โ”€ status/ # Project status and completion docs

scripts/ # Development and deployment scripts
โ”œโ”€โ”€ pre-push-validation.js # Comprehensive validation script
โ””โ”€โ”€ README.md # Scripts documentation
```

## ๐Ÿš€ Quick Start

1. **Install dependencies**:

```bash
pnpm install
```

2. **Start development server**:

```bash
pnpm dev
```

3. **Build for production**:
```bash
pnpm build
```

## ๐ŸŽฏ Usage

### **Study Mode**

1. **Select Framework**: Choose from Angular (227), React (80), Next.js (50), Redux (100), or Random topics (52)
2. **Practice Questions**: Navigate through questions with keyboard shortcuts
3. **Track Progress**: Bookmark questions and add personal notes
4. **Study Modes**: Sequential, random, or bookmarked-only practice

### **Interactive Quiz Mode**

1. **Choose Quiz Type**: Select framework and difficulty level
2. **Multiple Question Types**:
- Multiple Choice (single answer)
- Multiple Checkbox (multiple answers)
- Fill in the Blank
- True/False
3. **Real-time Feedback**: Immediate scoring and progress tracking
4. **Performance Analytics**: Detailed breakdown of performance by question type
5. **Study Recommendations**: Personalized suggestions for improvement

## ๐Ÿ“š Question Content

### **Angular (227 Questions)**

- Core concepts, components, services, routing
- Forms (template-driven and reactive)
- Component communication and lifecycle hooks
- Authentication & authorization with JWT
- Angular 16-19 features (Signals, Control Flow, SSR improvements)
- Performance optimization and testing

### **React (80 Questions)**

- Hooks, state management, and lifecycle
- Server Components and Concurrent Features
- Error boundaries and context API
- Performance optimization and testing
- Advanced patterns and best practices

### **Next.js (50 Questions)**

- App Router vs Pages Router
- SSG, SSR, ISR, and CSR strategies
- Image optimization and performance
- API routes and middleware
- Deployment and production optimization

### **Redux (100 Questions)**

- State management patterns
- Redux Toolkit and modern practices
- Middleware and async operations
- Testing and debugging

### **Random Topics (52 Questions)**

- Git workflows and advanced commands
- CSS units, Grid, Flexbox, and animations
- SASS features and best practices
- TypeScript advanced features
- Web APIs and modern JavaScript
- Build tools (Webpack, Vite, ESBuild)
- Docker and containerization

## โŒจ๏ธ Keyboard Shortcuts

- `โ†` `โ†’` Navigate between questions
- `A` Toggle answer visibility
- `B` Bookmark/unbookmark question

## ๐Ÿงช Testing

```bash
# Run tests
pnpm test

# Run tests with UI
pnpm test:ui

# Run tests with coverage
pnpm test:coverage
```

## ๐Ÿ”ง Development

### **Code Quality & Validation**

This project includes a comprehensive pre-push validation system that ensures code quality before changes reach the repository.

#### **Pre-Push Validation Script**

```bash
# Run comprehensive validation (automatically runs on git push)
pnpm pre-push

# Individual validation checks
pnpm check:any # Find any types in source code
pnpm check:unused # Find unused variables
pnpm check:console # Find console.log statements
```

#### **Standard Development Commands**

```bash
# Lint code
pnpm lint

# Lint with strict rules (zero warnings)
pnpm lint:strict

# Fix linting issues
pnpm lint:fix

# Format code
pnpm format

# Type check
pnpm type-check

# Validate everything
pnpm validate
```

### **Pre-Push Validation Features**

The validation system automatically checks:

- โœ… **TypeScript Compilation**: Ensures no type errors
- โœ… **ESLint Quality**: Enforces coding standards
- โœ… **Prettier Formatting**: Consistent code formatting
- โœ… **Production Build**: Verifies build success
- โœ… **Test Suite**: Runs all tests
- โœ… **Any Type Detection**: Finds `any` types (excluding example code)
- โœ… **Unused Variables**: Identifies unused variables and imports
- โœ… **Console Statements**: Detects `console.log` usage

### **Architecture Improvements**

The codebase has been refactored with modern React best practices:

- **Path Aliases**: Clean imports using `@components`, `@services`, `@types`, etc.
- **Custom Hooks**: `useFrameworkManager`, `useQuestionNavigation`, `useProgressManager`, `useStudyAnalytics`
- **Services**: `FrameworkService`, `QuestionService`, `InteractiveQuizService` for business logic
- **Context API**: `SidebarContext`, `ThemeContext` for state management
- **Type Safety**: Comprehensive TypeScript types and interfaces
- **Component Composition**: Reusable table components and utilities
- **Performance**: Lazy loading, code splitting, and optimized bundles
- **Offline Support**: Service worker integration for offline functionality

## ๐Ÿ“š Documentation

- **[๐Ÿ“– Complete Documentation](./docs/README.md)** - Comprehensive documentation index
- [Architecture](./docs/development/ARCHITECTURE.md) - System design and architecture
- [Features](./docs/development/FEATURES.md) - Detailed feature documentation
- [Deployment](./docs/deployment/DEPLOYMENT.md) - Deployment guides
- [Project Structure](./docs/development/PROJECT-STRUCTURE.md) - Detailed project organization

## ๐Ÿ†• Recent Updates

### **v2.1 - Production Ready & Modern Architecture**

- โœ… **Path Aliases**: Modern import organization with TypeScript path mapping
- โœ… **Console Log Cleanup**: Removed all console.log statements from production code
- โœ… **Interactive Quiz System**: Complete quiz interface with multiple question types
- โœ… **Study Analytics**: Comprehensive performance tracking and analytics dashboard
- โœ… **Offline Support**: Progressive Web App with service worker integration
- โœ… **Component Organization**: Clean folder structure with feature-based organization
- โœ… **Type Safety**: Enhanced TypeScript types and interfaces
- โœ… **Performance**: Lazy loading and code splitting optimizations

### **v2.0 - Pre-Push Validation System**

- โœ… **Comprehensive validation**: Pre-push hooks with TypeScript, ESLint, Prettier checks
- โœ… **Code quality enforcement**: Automatic detection of `any` types and unused variables
- โœ… **Architecture refactoring**: Custom hooks, services, and context API
- โœ… **Enhanced question content**: 500+ questions across all frameworks
- โœ… **Table components**: Beautiful comparison tables for difference questions
- โœ… **Type safety**: Comprehensive TypeScript types and interfaces

### **Question Additions**

- **Angular**: Added 67 new questions (Forms, Component Communication, Auth, Angular 16-19)
- **React**: Added 53 new questions (Advanced hooks, Server Components, Concurrent Features)
- **Next.js**: Added 40 new questions (App Router, Performance, Deployment)
- **Random**: Added 52 new questions (Git, CSS, SASS, TypeScript, Web APIs, Build Tools)

## ๐Ÿค Contributing

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. **Run pre-push validation**: `pnpm pre-push`
5. Ensure all checks pass
6. Submit a pull request

### **Development Workflow**

```bash
# Before making changes
git checkout -b feature/your-feature

# Make your changes, then validate
pnpm pre-push

# Commit and push (validation runs automatically)
git add .
git commit -m "feat: your changes"
git push
```

## ๐ŸŽฏ Benefits of Pre-Push Validation

- **๐Ÿ›ก๏ธ Quality Assurance**: Prevents bad code from reaching the repository
- **โšก Faster Development**: Automated checks instead of manual code review
- **๐Ÿ”„ Consistency**: Ensures all team members follow the same standards
- **๐Ÿ› Early Bug Detection**: Catches issues before they become problems
- **๐Ÿ“š Learning**: Developers learn best practices through validation feedback
- **๐Ÿš€ Production Ready**: Ensures code is always deployable

## ๐Ÿ“Š Project Statistics

- **Total Questions**: 500+ across 5 categories
- **Code Quality**: 95/100 production readiness score
- **Test Coverage**: Comprehensive test suite
- **Type Safety**: 100% TypeScript coverage
- **Performance**: Optimized for fast loading and smooth UX

## ๐Ÿ“„ License

MIT License - see [LICENSE](./LICENSE) for details.

## ๐Ÿ‘จโ€๐Ÿ’ป Author

**Hussein Tirawi** - [GitHub](https://github.com/htirawi)

---

Built with โค๏ธ for the frontend developer community.

_Last updated: January 2025 - Pre-Push Validation System v2.0_