{"_id":"@3bbas/quizme","_rev":"4-d3565ef58498f5911f26ca6983f197d6","name":"@3bbas/quizme","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@3bbas/quizme","version":"1.0.0","keywords":["cli-tools","quiz"],"author":{"name":"3bbas"},"license":"ISC","_id":"@3bbas/quizme@1.0.0","maintainers":[{"name":"3bbas","email":"ah.abbas333@gmail.com"}],"bin":{"quizme":"bin/quizme"},"dist":{"shasum":"f0da546a66e4901b5dc5eefa4ef9b4e02329c6e6","tarball":"https://registry.npmjs.org/@3bbas/quizme/-/quizme-1.0.0.tgz","fileCount":16,"integrity":"sha512-xLaKAsNh+aKAUtEQ3WnzMr1Pi22GMZ3oOXpNYekB9ebZ+rdX/cTgYIWR5LegRh3Ndp0wOPEbqG+bbAH/LX9zRQ==","signatures":[{"sig":"MEYCIQDAQW+YJAZWhJp9+uwFhXg1yrQwBOQTrCSsZOurj++Q6QIhALk9P0r/mJKJUSkyrAENXgeksnAzRbL0PbLokelF2xsV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49197},"type":"commonjs","scripts":{"build":"tsc","prepack":"npm run build"},"_npmUser":{"name":"3bbas","email":"ah.abbas333@gmail.com"},"_npmVersion":"11.3.0","description":"quizme is tool that help to generate a cli quiz from json file.","directories":{},"_nodeVersion":"24.0.1","dependencies":{"ora":"^8.2.0","axios":"^1.9.0","chalk":"^5.4.1","figures":"^6.1.0","enquirer":"^2.4.1","cli-table3":"^0.6.5","log-symbols":"^7.0.1"},"_hasShrinkwrap":false,"devDependencies":{"figlet":"^1.8.1","typescript":"^5.8.3","@types/node":"^22.15.30","@types/figures":"^2.0.0","latex-to-unicode":"^0.1.0","@types/log-symbols":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/quizme_1.0.0_1749573121900_0.2034161269979622","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@3bbas/quizme","version":"1.0.1","keywords":["cli-tools","quiz"],"author":{"name":"3bbas"},"license":"ISC","_id":"@3bbas/quizme@1.0.1","maintainers":[{"name":"3bbas","email":"ah.abbas333@gmail.com"}],"bin":{"quizme":"bin/quizme"},"dist":{"shasum":"c7a17c5604422f1ef040c86df53cce73531e587a","tarball":"https://registry.npmjs.org/@3bbas/quizme/-/quizme-1.0.1.tgz","fileCount":16,"integrity":"sha512-dw72U+5w7mK4Sl7Y27YT0UgzjhKTdj4hFw4qg4IzlZ5wHkbb5gQzFP7qYwFAF5mGAiAr8n16qZJHJIuLEmPv3g==","signatures":[{"sig":"MEUCIFKcOK9/YzLpFSy/QJi9GFjLLMoSwB5NqZy2VYaNNn6tAiEArlfwXSbiZ4JINymA2nN67dKI224rpoj9oi6ZJLjLHr8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85294},"type":"commonjs","gitHead":"1ba8a924b9310a56c14f682ad03c6fb48dda08d1","scripts":{"build":"tsc","prepack":"npm run build"},"_npmUser":{"name":"3bbas","email":"ah.abbas333@gmail.com"},"_npmVersion":"11.3.0","description":"quizme is tool that help to generate a cli quiz from json file.","directories":{},"_nodeVersion":"24.0.1","dependencies":{"ora":"^8.2.0","axios":"^1.9.0","chalk":"^5.4.1","figures":"^6.1.0","enquirer":"^2.4.1","cli-table3":"^0.6.5","log-symbols":"^7.0.1"},"_hasShrinkwrap":false,"devDependencies":{"figlet":"^1.8.1","typescript":"^5.8.3","@types/node":"^22.15.30","@types/figures":"^2.0.0","latex-to-unicode":"^0.1.0","@types/log-symbols":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/quizme_1.0.1_1749574177888_0.29684497184578795","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@3bbas/quizme","version":"1.0.2","keywords":["cli-tools","quiz"],"author":{"name":"3bbas"},"license":"ISC","_id":"@3bbas/quizme@1.0.2","maintainers":[{"name":"3bbas","email":"ah.abbas333@gmail.com"}],"bin":{"quizme":"bin/quizme"},"dist":{"shasum":"a99d2e5fa2800d63d62c7c371dcbcc4b3e9abeec","tarball":"https://registry.npmjs.org/@3bbas/quizme/-/quizme-1.0.2.tgz","fileCount":16,"integrity":"sha512-Cr70JNRhryvEo2aV0mn687Sh4lceIsYWklb9j47nRluiP/ueHOy1Nf27WYbafT1Ms05wFF6gi0wQ6unctbjK9g==","signatures":[{"sig":"MEQCIGgOxM6vYqhlyGjQtQ6YSqZyAO3tfkAje/AWAq9tVxnJAiBNHFTp1GYYtcENz/4DhrPx6bmhtAdu5Gk6dZrYkkgDYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85294},"type":"commonjs","gitHead":"9f288fda0bebd7538cd84e1571188d6199508512","scripts":{"build":"tsc","prepack":"npm run build"},"_npmUser":{"name":"3bbas","email":"ah.abbas333@gmail.com"},"_npmVersion":"11.3.0","description":"quizme is tool that help to generate a cli quiz from json file.","directories":{},"_nodeVersion":"24.0.1","dependencies":{"ora":"^8.2.0","axios":"^1.9.0","chalk":"^5.4.1","figures":"^6.1.0","enquirer":"^2.4.1","cli-table3":"^0.6.5","log-symbols":"^7.0.1"},"_hasShrinkwrap":false,"devDependencies":{"figlet":"^1.8.1","typescript":"^5.8.3","@types/node":"^22.15.30","@types/figures":"^2.0.0","latex-to-unicode":"^0.1.0","@types/log-symbols":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/quizme_1.0.2_1749576011955_0.4741874004818716","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@3bbas/quizme","version":"1.0.4","description":"quizme is tool that help to generate a cli quiz from json file.","keywords":["cli-tools","quiz"],"license":"ISC","author":{"name":"3bbas"},"type":"commonjs","bin":{"quizme":"bin/quizme"},"scripts":{"build":"tsc","prepack":"npm run build"},"dependencies":{"axios":"^1.9.0","chalk":"^5.4.1","cli-table3":"^0.6.5","enquirer":"^2.4.1","figures":"^6.1.0","log-symbols":"^7.0.1","ora":"^8.2.0"},"devDependencies":{"@types/figures":"^2.0.0","@types/log-symbols":"^2.0.0","@types/node":"^22.15.30","figlet":"^1.8.1","latex-to-unicode":"^0.1.0","typescript":"^5.8.3"},"_id":"@3bbas/quizme@1.0.4","gitHead":"de1c5cd13b1a9369febaa01a306d20fa9a683266","_nodeVersion":"24.0.1","_npmVersion":"11.3.0","dist":{"integrity":"sha512-xf76FnufDRABNo8MSyzi1po1Fm8zyk8Wqf688SDqO9SRwiuNOZhrMj1DobrGXpDoSzerbCHAD7kfxno5JBiaNA==","shasum":"ad47b04aeea7ebf0f28aea788302870a89673352","tarball":"https://registry.npmjs.org/@3bbas/quizme/-/quizme-1.0.4.tgz","fileCount":16,"unpackedSize":85294,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAF2+C8S/AvA2CqbLiHgiyll3R/y0ZPRx1W8sWZYSNW6AiBeBYKHDrW18DmS/EqqnZ+DlLCDNAjh1aNZNa2IolW7dQ=="}]},"_npmUser":{"name":"3bbas","email":"ah.abbas333@gmail.com"},"directories":{},"maintainers":[{"name":"3bbas","email":"ah.abbas333@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/quizme_1.0.4_1749576314210_0.7476127671217201"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-10T16:32:01.819Z","modified":"2025-06-10T17:25:14.604Z","1.0.0":"2025-06-10T16:32:02.073Z","1.0.1":"2025-06-10T16:49:38.124Z","1.0.2":"2025-06-10T17:20:12.307Z","1.0.4":"2025-06-10T17:25:14.434Z"},"author":{"name":"3bbas"},"license":"ISC","keywords":["cli-tools","quiz"],"description":"quizme is tool that help to generate a cli quiz from json file.","maintainers":[{"name":"3bbas","email":"ah.abbas333@gmail.com"}],"readme":"# QuizMe - Interactive CLI Quiz Tool\r\n\r\n<div align=\"center\">\r\n  <img src=\"https://github.com/3bbaas/quizme/blob/main/assets/demo.png\" alt=\"QuizMe demo\" width=\"400\" />\r\n</div>\r\n\r\n[![NPM Version](https://img.shields.io/npm/v/@3bbas/quizme.svg)](https://www.npmjs.com/package/@3bbas/quizme)\r\n[![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](https://opensource.org/licenses/ISC)\r\n\r\nQuizMe is an interactive command-line quiz tool that transforms JSON-based question banks into engaging quizzes. Perfect for students, or anyone who wants to test their knowledge in a fun and interactive way.\r\n\r\n## Features\r\n\r\n- **Interactive CLI Interface**: Colorful and engaging command-line interface\r\n- **Multiple Question Sources**: Load questions from local files or remote URLs\r\n- **LaTeX Support**: Automatic conversion of LaTeX math formulas to Unicode\r\n- **True/False and Multiple-Choice**: Support for different question formats\r\n- **Randomized Questions**: Questions are shuffled for a fresh experience every time\r\n- **Timed Quizzes**: Track how long it takes to complete each quiz\r\n- **Results Summary**: Review your performance with detailed statistics\r\n- **Error Handling**: Robust validation for file paths and URLs\r\n\r\n## Installation\r\n\r\n```bash\r\n# Install globally\r\nnpm install -g @3bbas/quizme\r\n\r\n# Or use npx\r\nnpx @3bbas/quizme\r\n```\r\n\r\n## Usage\r\n\r\n### Basic Usage\r\n\r\nRun the command to start the quiz:\r\n\r\n```bash\r\nquizme\r\n```\r\n\r\n### JSON Format\r\n\r\nYour quiz JSON file should follow this format:\r\n\r\n```json\r\n[\r\n  {\r\n    \"id\": 1,\r\n    \"question\": \"What is the capital of France?\",\r\n    \"options\": {\r\n      \"A\": \"London\",\r\n      \"B\": \"Paris\",\r\n      \"C\": \"Berlin\",\r\n      \"D\": \"Madrid\"\r\n    },\r\n    \"answer\": \"B\"\r\n  },\r\n  {\r\n    \"id\": 2,\r\n    \"question\": \"The speed of light in a vacuum is about $30 \\\\, \\\\text{cm/ns}$.\",\r\n    \"answer\": true,\r\n    \"id\": 2\r\n  }\r\n]\r\n```\r\n\r\nThe tool supports:\r\n- **Multiple-choice questions**: With `options` object and an `answer` that matches one of the option keys\r\n- **True/False questions**: With a boolean `answer` property\r\n- **LaTeX formatting**: For math formulas that are automatically converted to Unicode\r\n\r\n## Features in Detail\r\n\r\n### 1. Quiz Sources\r\n\r\nQuizMe supports loading quiz questions from:\r\n\r\n- **Local JSON files**: Specify a path to a JSON file on your system\r\n- **Remote URLs**: Provide a URL to a JSON endpoint (e.g., `https://example.com/quiz.json`)\r\n\r\n### 2. LaTeX to Unicode Conversion\r\n\r\nThe tool automatically converts LaTeX math notation to Unicode characters:\r\n\r\n- Fractions: `\\frac{1}{2}` → `1/2`\r\n- Square roots: `\\sqrt{2}` → `√2`\r\n- Greek letters: `\\alpha`, `\\beta`, etc. → `α`, `β`, etc.\r\n- Mathematical symbols: `\\infty`, `\\pm`, etc. → `∞`, `±`, etc.\r\n\r\n### 3. Question Processing\r\n\r\n- **Shuffling**: Questions are randomly shuffled for each quiz attempt\r\n- **Validation**: Questions are validated for required fields\r\n- **Format handling**: Both multiple-choice and True/False questions are supported\r\n- **Default options**: Questions with missing options are provided with defaults\r\n\r\n### 4. User Interface\r\n\r\n- **Interactive prompts**: Easy selection of options using arrow keys\r\n- **Color coding**: Questions, answers, and results are displayed with intuitive colors\r\n- **Loading spinners**: Visual feedback during data loading and processing\r\n- **Readable output**: Clear presentation of questions and results\r\n\r\n### 5. Quiz Flow\r\n\r\n1. **Source selection**: Choose between local file or remote URL\r\n2. **Question loading**: Load and process questions\r\n3. **Quiz progression**: Answer questions one by one\r\n4. **Feedback**: Immediate feedback after each answer\r\n5. **Results**: Detailed summary of performance at the end\r\n\r\n### 6. Timing and Results\r\n\r\n- **Timer**: Tracks the total time taken to complete the quiz\r\n- **Score calculation**: Tallies correct and incorrect answers\r\n- **Incorrect answers review**: Option to review all incorrect answers at the end\r\n\r\n## File Structure\r\n\r\n- **cli.ts**: Main entry point and command-line interface\r\n- **fileLoader.ts**: Handles loading quiz data from files or URLs\r\n- **quizRunner.ts**: Manages the quiz flow and user interaction\r\n- **timer.ts**: Tracks quiz duration\r\n- **types.ts**: TypeScript interfaces for quiz data\r\n- **utils.ts**: Utility functions for LaTeX conversion and validation\r\n\r\n<!-- ## Development\r\n\r\nClone the repository and install dependencies:\r\n\r\n```bash\r\ngit clone https://github.com/3bbas/quizme.git\r\ncd quizme\r\nnpm install\r\n```\r\n\r\nBuild the project:\r\n\r\n```bash\r\nnpm run build\r\n```\r\n\r\nTest the tool locally:\r\n\r\n```bash\r\nnode dist/cli.js\r\n```\r\n\r\n## Contributing\r\n\r\nContributions are welcome! Please feel free to submit a Pull Request.\r\n\r\n## License\r\n\r\nThis project is licensed under the ISC License - see the [LICENSE](LICENSE) file for details.\r\n -->\r\n## Author\r\n\r\nCreated by [3bbas](https://github.com/3bbaas)\r\n\r\n---\r\n\r\nEnjoy testing your knowledge with QuizMe! 🎓","readmeFilename":"Readme.md"}