Welcome to the MCQ Portal! This is a mobile-first and responsive MCQ (Multiple Choice Questions) app built using React, TypeScript, and Material UI. The app fetches questions from the Open Trivia DB API and allows users to take quizzes.
Check out the deployed app here.
- React
- TypeScript
- Material UI
- Clean and maintainable codebase
- Mobile-first and responsive design
- Integration with Open Trivia DB API for fetching questions
- Audio playback for questions
- Timer for each question
- Submit feedback functionality
To clone and run this application locally, follow these steps:
-
Clone the repository:
git clone https://github.com/Anujesh-Ansh/MCQ-Portal.git
-
Navigate to the project directory:
cd MCQ-Portal/frontend
-
Install dependencies:
npm install
-
Start the development server:
npm start
- Mock Loading Screen: Upon visiting the app, a simulated loading screen will be displayed for 2 seconds.
- Question Interface: Users can listen to questions via audio and select answers from multiple choices. A timer of 15 seconds is provided for each question.
- Submit Feedback: After completing the quiz, users can submit feedback along with their score.
- Configurable Questions: The app allows for adding and removing questions.
- Code Modularity and API Integration: Codebase is modularized, and APIs are integrated for fetching questions.
- Version Control: The source code is hosted on GitHub.
- Deployment: The application is hosted and publicly accessible here.
-
Colors Used:
- Background: #282c34
- Text: #f27b24
- Button Background (Primary): #F37A24
- Button Text (Primary): #282c34
-
Font Family:
- Heading: Shadows Into Light
- App Title: Poetsen One
Header
: Displays the title and an option to add a new question.Footer
: Displays the creator's information and a link to the GitHub repository.LoadingScreen
: Simulated loading screen component.QuestionCard
: Renders a single question with audio playback, answer choices, and timer.QuizCompleted
: Displayed after completing the quiz, shows the user's score and a feedback form.AddQuestionForm
: Form for adding new questions to the quiz.
This project was created by me π (Anujesh). You can find more of his work on GitHub.
Feel free to tweak anything to your liking!