An open API service indexing awesome lists of open source software.

https://github.com/faizankhan298/cipherschools-mcq-test-portal-frontend

"The goal of this project is to create a web-based platform that offers a seamless and secure experience for students taking MCQ tests. The platform focuses on providing a robust user authentication system, an intuitive test-taking interface, and automated result processing."
https://github.com/faizankhan298/cipherschools-mcq-test-portal-frontend

express jwt mcq-test-portal mongodb node nodemailer react

Last synced: 3 months ago
JSON representation

"The goal of this project is to create a web-based platform that offers a seamless and secure experience for students taking MCQ tests. The platform focuses on providing a robust user authentication system, an intuitive test-taking interface, and automated result processing."

Awesome Lists containing this project

README

        

# CipherSchools - MCQ Test Portal

๐ŸŒŸโœจ The goal of this project is to create a web-based platform that offers a seamless and secure experience for students taking MCQ tests. The platform focuses on providing a robust user authentication system, an intuitive test-taking interface, and automated result processing. โœจ๐ŸŒŸ

### Click [https://cipherschools-mcq-test-portal-frontend.onrender.com/](https://cipherschools-mcq-test-portal-frontend.onrender.com/) to view in your browser. ๐ŸŒ๐Ÿ‘€

## User Account for Testing

Login and attempt the test, you can use the following demo credentials:

- Email: [email protected]
- Password: Rahul@1234

Please note that the result will not be shared. If you want to receive the result, make sure to sign up with your email. We prioritize your security and we do not store your password.๐Ÿ”’๐Ÿ“งโœจ

## Features

- **Secure Login:** ๐Ÿ”’ Users can log in using their email and password.
- **Protected Routes:** ๐Ÿšง Ensures that only authenticated users can access the test environment.

- **Interactive Questions:** ๐Ÿ“ Users can view each question and its multiple-choice options.
- **Answer Selection:** โœ… Allows users to select and modify their answers easily.
- **Navigation:** ๐Ÿš€ Users can freely navigate between questions without restrictions.
- **Integrated Camera Window:** ๐Ÿ“ท The interface includes a small window displaying the live camera feed during the test.

- **Submission Process:** ๐Ÿ“ค Users can submit their answers upon completing the test, redirecting them to a "Finish Test" page.
- **Automatic Evaluation:** โœ”๏ธ The platform automatically evaluates the answers, calculates the score.
- **Email Notification:** ๐Ÿ“ง The score is sent to the user's email using a predefined template, ensuring prompt and accurate communication of results.

## Technologies Used

- **React:** โš›๏ธ A JavaScript library for building user interfaces.
- **Node.js:** ๐ŸŸข A JavaScript runtime built on Chrome's V8 JavaScript engine.
- **Express:** ๐ŸŒ A minimal and flexible Node.js web application framework.
- **MongoDB:** ๐Ÿƒ A NoSQL database for storing user data.
- **JWT (JSON Web Token):** ๐Ÿ” Used for securely transmitting information between parties as a JSON object, ensuring secure user authentication.
- **Nodemailer:** ๐Ÿ“จ A module for Node.js applications to send emails, used for sending test results to users.

## Setup and Installation for Frontend

1. **Clone the repository**
```bash
git clone https://github.com/Faizankhan298/CipherSchools-MCQ-Test-Portal-frontend.git
2. **Navigate to the project directory**

```bash
cd frontend
3. **Install dependencies**

```bash
npm install
4. **Start the application**

```bash
npm run dev

The frontend will start running on http://localhost:5173. ๐Ÿš€๐ŸŒ

## Setup and Installation for Backend

1. **Clone the repository**
```bash
git clone https://github.com/Faizankhan298/CipherSchools-MCQ-Test-Portal-backend.git
2. **Navigate to the project directory**

```bash
cd backend
3. **Install dependencies**

```bash
npm install
4. **Start the application**

```bash
node index.js
5. **Connect to MongoDB**
Ensure MongoDB is installed and running on your system. Update the connection string in the .env file if necessary.

The backend server will start running on http://localhost:5000. ๐Ÿš€๐ŸŒ

## .env
1. **MONGO_DB_URL="your_mongodb_connection_string"**
2. **JWT_SECRET="faizan1234"**
3. **SMTP_HOST="smtp.gmail.com"**
4. **SMTP_PORT=587**
5. **SMTP_MAIL="[email protected]"**
6. **SMTP_PASS="your_email_password"**

## Images

1. **Signup**
The signup page where users create a new account by entering Name, Email and Password.
![Signup](./public/images/signup.png)

2. **Login**
The login page where users can enter their credentials to access the home page.
![Login](./public/images/login.png)

3. **Home**
The home page displayed after login, showing information about the test.
![Home](./public/images/home.png)

4. **Quiz**
The quiz interface where users can answer multiple-choice questions, navigate between them, and view the camera feed.
![Quiz](./public/images/quiz-1.png)
![Quiz](./public/images/quiz-2.png)
![Quiz](./public/images/quiz-3.png)

5. **Result**
The result page displaying a message indicating that the results have been shared to your email.
![Result](./public/images/result.png)
![Result](./public/images/email-1.png)
![Result](./public/images/email-2.png)

6. **NodeMailer Code**
The Nodemailer is a Node.js module that enables sending emails from application making it ideal for automating tasks like sending quiz score.
![Result](./public/images/nodemailer-1.png)
![Result](./public/images/nodemailer-2.png)
![Result](./public/images/nodemailer-3.png)

## Acknowledgements

- Thanks to [React](https://reactjs.org/) for the great front-end library.
- Thanks to [Node.js](https://nodejs.org/) and [Express.js](https://expressjs.com/) for the robust back-end framework.
- Inspiration from various open-source projects and documentation.

## Contact

For any questions or feedback, feel free to reach out [Mohammed Faizan](mailto:[email protected]).

## Contributing

Contributions to the project are welcome. Please follow the standard fork and pull request workflow. ๐Ÿค๐ŸŒŸ