A Progressive Web Application (PWA) built with Angular that helps students prepare for 11+ exams using spaced repetition learning techniques.
- Overview
- Features
- Subjects Covered
- Spaced Repetition Learning
- Getting Started
- Development
- Building and Deployment
- Multilingual Support
- PWA Features
- Troubleshooting
This application is designed to help students prepare for 11+ exams by using spaced repetition learning techniques. It covers key subjects tested in 11+ exams and adapts to each student's learning progress.
- Spaced Repetition Algorithm: Optimizes review schedules based on individual performance
- Multiple Subjects: Covers Mathematics, English, Verbal Reasoning, and Non-Verbal Reasoning
- Progress Tracking: Visual feedback on mastery levels for each topic
- Exam Date Planning: Set your target exam date to optimize study schedules
- Responsive Design: Works on desktop, tablet, and mobile devices
- Offline Support: Study even without an internet connection
- Multilingual Interface: Available in English, French, and Spanish
The application covers the four main subjects tested in most 11+ exams:
- Number Operations
- Fractions, Decimals & Percentages
- Geometry
- Algebra
- Data Interpretation
- Reading Comprehension
- Grammar & Punctuation
- Vocabulary
- Writing
- Word Relationships
- Codes & Sequences
- Logical Deductions
- Sentence Completion
- Patterns & Sequences
- Transformations
- Matrices & Grids
- Odd One Out
This application implements a spaced repetition algorithm based on the Free Spaced Repetition Scheduler (FSRS) to optimize learning efficiency:
- Questions you find difficult are shown more frequently
- Questions you master are shown less frequently but still reviewed periodically
- The system adapts to your individual learning pace
- Your study schedule is optimized based on your target exam date
- Node.js (v18 or later recommended)
- npm (v9 or later recommended)
- Angular CLI (
npm install -g @angular/cli
)
Clone the repository and install dependencies:
git clone <repository-url>
cd spaced-repetition-learning-tool
npm install
Start the development server:
ng serve
The application will be available at http://localhost:4200/
.
src/app/components/
- Reusable UI componentssrc/app/pages/
- Main application pagessrc/app/models/
- Data models and interfacessrc/app/services/
- Business logic and data servicessrc/app/i18n/
- Internationalization resources
Questions are currently stored in the QuestionService
. To add new questions:
- Edit
src/app/services/question.service.ts
- Add new question objects to the
questions
array - Ensure each question has a unique ID and is associated with a topic ID
ng build
This creates a production build in the dist/
directory.
The application can be deployed to any static hosting service. For Cloudflare Pages:
# Make sure you're logged in to Cloudflare
wrangler login
# Build and deploy
ng build
wrangler pages deploy
The application supports multiple languages:
- English: Default language
- French: Full translation support
- Spanish: Full translation support
All translations are managed in src/app/i18n/translations.ts
.
To add a new language:
- Add the language code to the
SupportedLanguages
type - Add translations for all strings in the
translations
object - Add the language option to the language selector in the settings page
This application is a Progressive Web App with:
- Offline Support: Study without an internet connection
- Installable: Can be added to home screen on mobile devices
- Responsive: Works on all device sizes
- Fast Loading: Optimized for performance
- Questions not appearing: Check that you have set a target exam date in Settings
- Progress not saving: Make sure your browser allows local storage
- PWA not working offline: Ensure you've visited the app while online first to cache resources
The application works best in modern browsers:
- Chrome/Edge (latest 2 versions)
- Firefox (latest 2 versions)
- Safari (latest 2 versions)
If you encounter issues:
- Check the browser console for error messages
- Clear browser cache and reload
- Ensure you're using a supported browser
- File an issue in the project repository