https://github.com/3bbaas/quizme-cli
QuizMe 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.
https://github.com/3bbaas/quizme-cli
cli node-js
Last synced: 24 days ago
JSON representation
QuizMe 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.
- Host: GitHub
- URL: https://github.com/3bbaas/quizme-cli
- Owner: 3bbaas
- Created: 2025-06-10T16:46:42.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-10T17:25:20.000Z (about 1 year ago)
- Last Synced: 2025-08-13T16:28:27.685Z (11 months ago)
- Topics: cli, node-js
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@3bbas/quizme
- Size: 48.8 KB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# QuizMe - Interactive CLI Quiz Tool
[](https://www.npmjs.com/package/@3bbas/quizme)
[](https://opensource.org/licenses/ISC)
QuizMe 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.
## Features
- **Interactive CLI Interface**: Colorful and engaging command-line interface
- **Multiple Question Sources**: Load questions from local files or remote URLs
- **LaTeX Support**: Automatic conversion of LaTeX math formulas to Unicode
- **True/False and Multiple-Choice**: Support for different question formats
- **Randomized Questions**: Questions are shuffled for a fresh experience every time
- **Timed Quizzes**: Track how long it takes to complete each quiz
- **Results Summary**: Review your performance with detailed statistics
- **Error Handling**: Robust validation for file paths and URLs
## Installation
```bash
# Install globally
npm install -g @3bbas/quizme
# Or use npx
npx @3bbas/quizme
```
## Usage
### Basic Usage
Run the command to start the quiz:
```bash
quizme
```
### JSON Format
Your quiz JSON file should follow this format:
```json
[
{
"id": 1,
"question": "What is the capital of France?",
"options": {
"A": "London",
"B": "Paris",
"C": "Berlin",
"D": "Madrid"
},
"answer": "B"
},
{
"id": 2,
"question": "The speed of light in a vacuum is about $30 \\, \\text{cm/ns}$.",
"answer": true,
"id": 2
}
]
```
The tool supports:
- **Multiple-choice questions**: With `options` object and an `answer` that matches one of the option keys
- **True/False questions**: With a boolean `answer` property
- **LaTeX formatting**: For math formulas that are automatically converted to Unicode
## Features in Detail
### 1. Quiz Sources
QuizMe supports loading quiz questions from:
- **Local JSON files**: Specify a path to a JSON file on your system
- **Remote URLs**: Provide a URL to a JSON endpoint (e.g., `https://example.com/quiz.json`)
### 2. LaTeX to Unicode Conversion
The tool automatically converts LaTeX math notation to Unicode characters:
- Fractions: `\frac{1}{2}` → `1/2`
- Square roots: `\sqrt{2}` → `√2`
- Greek letters: `\alpha`, `\beta`, etc. → `α`, `β`, etc.
- Mathematical symbols: `\infty`, `\pm`, etc. → `∞`, `±`, etc.
### 3. Question Processing
- **Shuffling**: Questions are randomly shuffled for each quiz attempt
- **Validation**: Questions are validated for required fields
- **Format handling**: Both multiple-choice and True/False questions are supported
- **Default options**: Questions with missing options are provided with defaults
### 4. User Interface
- **Interactive prompts**: Easy selection of options using arrow keys
- **Color coding**: Questions, answers, and results are displayed with intuitive colors
- **Loading spinners**: Visual feedback during data loading and processing
- **Readable output**: Clear presentation of questions and results
### 5. Quiz Flow
1. **Source selection**: Choose between local file or remote URL
2. **Question loading**: Load and process questions
3. **Quiz progression**: Answer questions one by one
4. **Feedback**: Immediate feedback after each answer
5. **Results**: Detailed summary of performance at the end
### 6. Timing and Results
- **Timer**: Tracks the total time taken to complete the quiz
- **Score calculation**: Tallies correct and incorrect answers
- **Incorrect answers review**: Option to review all incorrect answers at the end
## File Structure
- **cli.ts**: Main entry point and command-line interface
- **fileLoader.ts**: Handles loading quiz data from files or URLs
- **quizRunner.ts**: Manages the quiz flow and user interaction
- **timer.ts**: Tracks quiz duration
- **types.ts**: TypeScript interfaces for quiz data
- **utils.ts**: Utility functions for LaTeX conversion and validation
## Author
Created by [3bbas](https://github.com/3bbaas)
---
Enjoy testing your knowledge with QuizMe! 🎓