This project is a simple web application that allows users to practice for their exams by taking practice exams on Force Exam. Force Exam allows you to take your study to the next level by providing you with the tools needed to create the ultimate practice exams.
For this Force Exam uses JSON as the format of the exams and provides a simple but powerful editor to create the exams.
Currently, Force Exam is in the early stages of development and is not ready for production use.
Force Exam can import a portable JSON exam and run it locally in the browser.
{
"title": "Force Exam sample",
"description": "A short practice set.",
"questions": [
{
"question": "Which image shows where answer choices live in the JSON schema?",
"images": [
"https://example.com/question-image-1.png",
{
"url": "https://example.com/question-image-2.png",
"alt": "A second reference image",
"description": "This description renders under the image."
}
],
"options": [
"title",
{
"text": "options",
"images": [
"https://example.com/answer-image-1.png",
{
"url": "https://example.com/answer-image-2.png",
"caption": "Captions also render under answer images."
}
],
"imageAlt": "Code showing an options array"
},
"description",
"questions"
],
"answer": "options",
"explanation": "Each question uses an options array for selectable answers."
}
]
}Each question supports question or prompt, optional images, imageUrls, imageUrl, or image, an options array with at least two choices, and answer or correctAnswer.
Options can be plain strings or objects. Object options support text, optional images, imageUrls, imageUrl, or image, and optional imageAlt, imageDescription, or imageCaption. Use images when you need multiple pictures. Image entries can be URL strings or objects with url, optional alt, and optional description or caption. When a question or option has more than one image, Force Exam shows them in a carousel.
The answer can be a zero-based option index, an answer letter like A or B, or the exact option text. Answer choices render with letter labels, so image-only options can use the letter or zero-based index.
This is a Next.js project bootstrapped with create-next-app.
First, run the development server:
npm run dev
# or
yarn devOpen http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying pages/index.tsx. The page auto-updates as you edit the file.
API routes can be accessed on http://localhost:3000/api/hello. This endpoint can be edited in pages/api/hello.ts.
The pages/api directory is mapped to /api/*. Files in this directory are treated as API routes instead of React pages.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.