This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Hebrew Software QA Test Preparation Platform - A mobile-first React application for university students preparing for Software Quality Assurance certification exams. The application is entirely in Hebrew with RTL support.
# Install dependencies
npm install
# Start development server (runs on http://localhost:5173/)
npm run dev
# Build for production
npm run build
# Run linter
npm run lint
# Preview production build
npm run preview- Zustand with persistence for global state (src/store/useStore.ts)
- Store handles: user profiles, study progress, test results, bookmarks, dark mode
- State persists to localStorage under key 'qa-test-prep-storage'
- React Router with basename configuration for GitHub Pages deployment
- Routes: /, /study, /practice, /test, /progress (placeholder), /profile (placeholder)
- Bottom navigation component persistent across all pages
- Pages: Main route components (Home, Study, Practice, Test)
- Components: Reusable UI components (BottomNav, QuestionCard, TopicCard)
- Data: Static question bank and topics in TypeScript files
- Mobile-first design with 44px minimum touch targets
- Tailwind CSS with custom configuration
- Dark mode support via class toggle on document.documentElement
- RTL-first design for Hebrew content
- Framer Motion for animations
- Lucide React for icons
- Centralized type definitions in src/types/index.ts
- Key types: UserProfile, TestResult, StudyProgress, Question, Topic
- Full TypeScript coverage with strict typing
- Vite as build tool with React plugin
- Base path configured as '/qa-test-prep/' for GitHub Pages
- GitHub Actions workflow for automatic deployment to Pages on main branch push
- Production build outputs to dist/ directory
No test framework currently configured. When implementing tests, consider the application's focus on:
- Question/answer validation logic
- Progress tracking calculations
- State persistence and recovery
- RTL layout compatibility
- Questions and topics are stored as static TypeScript arrays in src/data/
- Each question has: id, text, options array, correctAnswer index, explanation, topicId
- Topics have: id, title, description, icon name, color scheme