A programming quiz application built with React and Vite.
Users select a programming topic, complete a timed quiz, receive immediate feedback, and view their final score.
Project documentation can be found in the docs folder:
- PRD (Product Requirements Document)
- Architecture
- Roadmap
Please review these documents before starting work on any issue.
- React
- JavaScript
- Vite
- CSS
- QuizAPI
- Node.js
- npm
This project uses npm as the package manager.
git clone <repository-url>
cd <repository-name>npm installCreate a .env file in the project root using .env.example as a reference.
VITE_QUIZ_API_KEY=your_api_key_hereAccess environment variables in the application using:
import.meta.env.VITE_QUIZ_API_KEYNote:
- Only variables prefixed with
VITE_are exposed to frontend code. - Never commit your
.envfile.
npm run devdocs/
src/
public/
.env.example
package.json
vite.config.jsFor the full application structure, refer to the Architecture document.
Before starting work:
- Review the PRD, Architecture, and Roadmap documents.
- Pick or assign yourself an issue.
- Create a feature branch.
- Open a Pull Request linked to the corresponding issue.
Please keep implementations aligned with the agreed scope and architecture.
The current MVP includes:
- Topic selection
- QuizAPI integration
- Global timer
- Immediate answer validation
- Question explanations
- Results screen
For the complete scope, refer to the PRD.
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Oxc
- @vitejs/plugin-react-swc uses SWC
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the TS template for information on how to integrate TypeScript and typescript-eslint in your project.