This application is a test system for conducting timed tests. It is implemented using React with TypeScript, React Router, and Tailwind CSS.
- Welcome page with a button to start the test.
- Test page displaying questions, progress bar, and timer.
- Mandatory selection of an answer for each question.
- Automatic test completion when time runs out, redirecting to the results page.
- Results page displaying the user's answers or a message indicating that the user did not answer any questions in time.
-
Clone the repository:
git clone https://github.com/eugenepokalyuk/react-madsoft.git cd react-madsoft
-
Install dependencies:
npm install
-
Start the application:
npm run start
src/
├── assets/
│ └── fonts
├── components/
│ ├── App - Main application component containing the routing.
│ ├── Footer - Component for the footer of the test page with the "Submit" button.
│ ├── Header - Component for the header of the test page with the timer.
│ ├── ProgressBar - Component to display the progress bar.
│ └── Question - Component to display a question and answer options.
├── pages/
│ ├── ResultPage - Component to display the results page.
│ ├── TestPage - Component to display the test page.
│ └── WelcomePage - Component to display the welcome page.
├── index.css
└── index.tsx - Application entry point.
- Saves test progress and remaining time in
localStorage
for recovery upon page reload. - Uses Tailwind CSS for styling components.
- Handles time expiration and automatically redirects to the results page with a message indicating that time has expired.
- Add various types of questions (e.g., questions with images, videos, etc.).
- Implement an admin panel for editing and adding questions.
- Localize the application to support multiple languages.