A modern, interactive quiz application for educational purposes. Built with React, TypeScript, and Tailwind CSS for a smooth and responsive user experience.
- 📚 Multiple Question Formats: Support for multiple choice (MC) and true/false (TF) questions
- 📄 Flexible Data Sources: Load questions from JSON or YAML files
- 🎲 Quiz Customization: Randomize question order for varied practice sessions
- 📊 Progress Tracking: Real-time progress monitoring and detailed results
- 🔄 Session Persistence: Resume unfinished quizzes automatically
- 📱 Responsive Design: Optimized for desktop and mobile devices
- 🎨 Modern UI: Clean, dark-themed interface with smooth animations
- Node.js (v16 or higher)
- npm or yarn
-
Clone the repository
git clone https://github.com/Wildeax/Questionary.git cd Questionary -
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser and navigate to
http://localhost:5173
The application supports two ways to load quiz questions:
- Paste Content: Copy and paste JSON or YAML formatted questions directly into the text area
- Upload File: Upload
.json,.yaml, or.ymlfiles containing your questions
All documents must start with metadata containing the quiz name (required) and optional author:
- metadata:
name: "Your Quiz Name" # Required
author: "Your Name" # Optional- id: Q001
type: mc
prompt: "Your question here?"
options:
- "Option A"
- "Option B"
- "Option C"
- "Option D"
answer: 2 # Index of correct answer (0-based)
explanation: "Optional explanation for the correct answer"- id: Q002
type: tf
prompt: "This statement is true."
answer: true
explanation: "Optional explanation"npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
src/
├── components/ # React components
│ ├── SetupView.tsx # Question loading interface
│ ├── SettingsView.tsx # Quiz configuration
│ ├── QuestionPage.tsx # Quiz taking interface
│ └── ResultsView.tsx # Results display
├── types.ts # TypeScript type definitions
├── utils.ts # Utility functions
├── storage.ts # Local storage management
├── templates.ts # Question format templates
└── export.ts # Data export utilities
- React 18 - UI framework
- TypeScript - Type safety
- Vite - Build tool and dev server
- Tailwind CSS - Styling
- js-yaml - YAML parsing
- ESLint - Code linting
The repository includes sample questions covering various educational topics. You can easily create your own question sets for:
- Academic subjects and courses
- Certification exam preparation
- Professional training modules
- Assessment and testing scenarios
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built for educational and assessment purposes
- Inspired by the need for effective, interactive study tools
- Questions can be customized for any subject matter
Happy studying! 🎓 Master any subject with confidence.