The web client for the WordMaster vocabulary learning platform. Built with React 19, Vite, and modern UI libraries to provide a responsive and interactive learning experience.
- Core: React 19, Vite 7
- Routing: React Router DOM 7
- State Management: Zustand
- Styling: Tailwind CSS, Tailwind Merge, CLSX
- Animations: Framer Motion, GSAP, Lenis
- UI Components: Headless UI, Heroicons, Lucide React
- Forms & Validation: React Hook Form, Zod
- Data Fetching: Axios
- Charts: Recharts
- Utilities: date-fns, xlsx
- Dashboard: Visual overview of learning progress and daily stats.
- Wordbook Management: Create, organize, and manage vocabulary lists.
- Study Mode: Interactive flashcards and learning tools with "Complete Review" mode.
- Exam System: Test your knowledge with generated quizzes.
- Progress Tracking: Detailed analytics using Recharts.
- Responsive Design: Mobile-friendly interface with fluid animations.
web/
├── public/ # Static assets
├── src/
│ ├── components/ # Reusable UI components
│ ├── pages/ # Page components (Routes)
│ │ ├── auth/ # Login & Register
│ │ ├── dashboard/ # User Dashboard
│ │ ├── exam/ # Exam & Testing interfaces
│ │ ├── messages/ # User notifications/messages
│ │ ├── study/ # Study session interfaces
│ │ ├── user/ # User profile and settings
│ │ ├── wordbook/ # Vocabulary management
│ │ └── Home.jsx # Landing page
│ ├── lib/ # Utility functions and configurations
│ ├── App.jsx # Main application component
│ └── main.jsx # Entry point
├── package.json # Dependencies and scripts
├── tailwind.config.js # Tailwind CSS configuration
└── vite.config.js # Vite configuration
- Node.js (v18 or higher recommended)
- Backend server running (see
../backend/README.mdor rootCLAUDE.md)
-
Navigate to the web directory:
cd web -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Build for production:
npm run build
The application communicates with the WordMaster backend (FastAPI). Ensure the backend is running at http://localhost:8000 (default) or configure the API base URL in the application settings/constants.
- Naming: Use
CamelCasefor React components andcamelCasefor functions/variables. - Styling: Use Tailwind CSS utility classes. For complex conditional classes, use
clsxandtailwind-merge. - State: Use
zustandfor global state (e.g., user session, theme) and local state for component-specific logic. - Icons: Prefer
lucide-reactor@heroicons/react.
# Run in background
docker-compose up -d --build# Build image
docker build -t wordmaster-web .
# Run container
docker run -p 3000:3000 wordmaster-webThe application will be available at http://localhost:3000
Use the provided docker-compose.yml file to easily deploy to any Docker-compatible server.