Try the application live: https://vocab.crmx.pw/
A modern Angular-based vocabulary learning application designed to help users build and improve their vocabulary through an interactive quiz system. The app features a comprehensive word database, progress tracking, and customizable learning settings.
This vocabulary quiz application provides an engaging way to learn new words through multiple-choice questions with real-time feedback. Users can track their progress, review missed words, and customize their learning experience with timer settings and auto-advance options.
- Interactive Quiz System: Multiple-choice questions with immediate feedback
- Word Database: Comprehensive vocabulary with detailed definitions
- Progress Tracking: Visual progress bars for quiz completion and missed words
- Missed Words Review: Special quiz mode for reviewing incorrectly answered words
- Settings Customization:
- Auto-advance timer controls
- Adjustable timer durations for correct/incorrect answers
- Personal learning preferences
- Progress Management:
- Import/export functionality for progress backup
- Session continuation across browser sessions
- Responsive Design: Material Design interface optimized for various screen sizes
- Main Quiz: Complete vocabulary quiz with all available words
- Review Mode: Focused practice on previously missed words
- Continue Options: Resume interrupted quizzes or review sessions
- Frontend Framework: Angular 19.2.5
- UI Library: Angular Material Design
- State Management: Custom services with RxJS observables
- Storage: localStorage for user preferences and progress
- Build System: Angular CLI
- Node.js (version compatible with Angular 19.2.5)
- npm or yarn package manager
- Clone the repository:
git clone https://github.com/carmex/vocab
cd vocab- Install dependencies:
npm installTo start a local development server:
ng serveNavigate to http://localhost:4200/. The application will automatically reload when you modify source files.
To build the project for production:
ng build --configuration productionBuild artifacts will be stored in the dist/ directory.
Run unit tests:
ng testsrc/
βββ app/
β βββ components/ # Angular components
β β βββ main-menu/ # Main navigation menu
β β βββ quiz/ # Quiz interface and logic
β β βββ settings/ # Application settings
β β βββ summary/ # Quiz results summary
β βββ models/ # TypeScript interfaces
β βββ services/ # Business logic services
β βββ shared-material.module.ts # Material Design imports
βββ assets/
β βββ words.json # Vocabulary database
βββ styles.scss # Global styles
- Handles question display and answer selection
- Manages timer logic and auto-advance functionality
- Tracks progress and missed words
- Provides user customization options
- Manages timer preferences and auto-advance settings
- Persists user preferences in localStorage
- Manages application state across components
- Tracks quiz progress and missed words
- Handles import/export functionality
The application includes a comprehensive vocabulary database (src/assets/words.json) containing:
- Over 24,000 vocabulary words
- Detailed definitions for each word
- Multiple choice options for quiz questions
- Organized by difficulty and topic categories
The vocabulary database in this project is based on data from the SAT Words repository by lrojas94. Special thanks to the original contributors for compiling this comprehensive vocabulary resource.
Extend the vocabulary database by adding new entries to src/assets/words.json:
{
"word": "example",
"type": "n.",
"definition": "A thing characteristic of its kind or illustrating a general rule."
}Modify src/styles.scss and component-specific .scss files to customize the appearance.
Use Angular CLI to generate new components:
ng generate component component-nameGenerate other Angular artifacts:
ng generate directive|pipe|service|class|guard|interface|enum|moduleThis project was generated as a vocabulary learning tool. Please refer to the project license for usage terms.
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request