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.
- Host: GitHub
- URL: https://github.com/htirawi/frontend-interview-prep
- Owner: htirawi
- License: mit
- Created: 2025-10-01T01:16:51.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-10-01T03:33:02.000Z (7 months ago)
- Last Synced: 2025-10-01T03:35:01.477Z (7 months ago)
- Topics: angular, frontend, interview-prep, interview-questions, learning-platform, pwa, react, react19, redux, senior-developer, study-tool, tailwindcss, typescript, vite
- Language: TypeScript
- Homepage:
- Size: 472 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
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_