surah-quiz

Surah Quiz - React Native Expo App

A React Native quiz app that tests your knowledge of Quranic verses (Ayahs) by filling in missing words.

Features

Prerequisites

Installation

  1. Install dependencies:
    npm install
    

or

yarn install

Running the App

Start the Expo development server:

npm start

or

yarn start

Run on specific platform:

Using Expo Go App

  1. Install Expo Go on your iOS or Android device
  2. Scan the QR code displayed in the terminal with:
    • iOS: Camera app
    • Android: Expo Go app

Project Structure

surah-quiz/
├── App.js          # Main React Native component
├── app.json        # Expo configuration
├── package.json    # Dependencies and scripts
├── babel.config.js # Babel configuration
└── README.md       # This file

How It Works

  1. Surah Selection: Choose a Surah from the list
  2. Quiz Mode: Each verse (Ayah) is displayed with one word missing
  3. Answer Selection: Choose the correct word from 4 options
  4. Feedback: Immediate visual feedback (green for correct, red for wrong)
  5. Progress: Track your score as you progress through all verses
  6. Final Score: View your final score at the end

API

This app uses the Al-Quran Cloud API to fetch:

Troubleshooting

“TurbomoduleRegistry getEnforcing PlatformConstants could not be found” Error

If you encounter this error, follow these steps:

  1. Clear cache and reinstall dependencies:
    # Delete node_modules and package-lock.json
    rm -rf node_modules package-lock.json
    # On Windows, use:
    # rmdir /s node_modules
    # del package-lock.json
    
    # Clear Expo cache
    npx expo start -c
    
    # Reinstall dependencies
    npm install
    
  2. Use Expo CLI to install compatible versions:
    npx expo install --fix
    
  3. Clear Metro bundler cache:
    npx expo start --clear
    
  4. If the issue persists, try:
    # Clear watchman (if installed)
    watchman watch-del-all
    
    # Reset Metro bundler
    npm start -- --reset-cache
    

Other Common Issues

Notes

License

This project is open source and available for personal use.