0% found this document useful (0 votes)
28 views2 pages

Full-Stack Developer MCQ Test Platform

The assignment requires candidates for a Full-stack developer role to build a web-based Test Environment Platform for MCQ tests, with user authentication, test administration, and result evaluation. Key features include a login system, camera access, a user-friendly MCQ interface, automated test evaluation via cron jobs, and email notifications for scores. The project must be completed by EOD 20/08/2024 and submitted on GitHub with detailed instructions and a test user account.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views2 pages

Full-Stack Developer MCQ Test Platform

The assignment requires candidates for a Full-stack developer role to build a web-based Test Environment Platform for MCQ tests, with user authentication, test administration, and result evaluation. Key features include a login system, camera access, a user-friendly MCQ interface, automated test evaluation via cron jobs, and email notifications for scores. The project must be completed by EOD 20/08/2024 and submitted on GitHub with detailed instructions and a test user account.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Full-Stack Developer Assignment

Introduction:
This assignment is designed for candidates applying for a Full-stack developer role.
Your task is to build a Test Environment Platform where students can take multiple-
choice questions (MCQ) tests. Please carefully read the requirements and evaluation
criteria before beginning. The deadline for completion is by EOD 20/08/2024

Assignment Task:
You are required to build a web-based platform that allows students to take MCQ tests.
The platform should manage user authentication, handle test administration, and
evaluate and display the results to the users.

Platform Requirements:

● User Authentication:
○ Implement a login system using email and password.
○ Ensure the user is authenticated before accessing the test.

● Test Environment:
○ After login, the user should start the test, which will ask for permissions to
access the camera and microphone.
○ Display a preview of the camera feed once permissions are granted.
○ If any permission is missing, show an appropriate error message.

● MCQ Test Interface:


○ Users should be able to see each question and its options.
○ Allow users to select and change their answers.
○ Users should be able to navigate between questions freely.
○ Include a camera window in the test interface.

● Test Submission:
○ On completion, users can submit their test. Redirect them to a "Finish
Test" page.
○ Implement a cron job that runs every hour to evaluate submitted tests.

● Score and Evaluation:


○ The cron job should evaluate the answers, calculate the score, and store
the results.
○ Automatically send the score to the user's email using a predefined
template.

Designs and Specifications:


You can access the system flow and schema designs here. Make sure to review these
designs to understand the architecture and data models you should implement.

Technical Requirements:
● Frontend: [Link] library for designing & developing frontend.
● Backend: [Link] with Express, MongoDB for database.
● Authentication: JWT or session-based authentication.
● Cron Jobs: Use a tool like node-cron or any other similar library.
● Email Service: Use a service like Nodemailer, Mailersend or any other email
service provider.

Key Evaluation Points:


● Functionality: Does the platform meet all the specified requirements? Are there
any bugs or missing features?
● Code Quality: Is the code well-organized, clean, and follows best practices? Is it
easy to understand and maintain?
● User Interface: Is the interface intuitive and user-friendly? Does it provide a
good user experience?

Presentation Key Points:

● Test Creation: Create a test with 10 MCQ questions to demonstrate the


platform's functionality.
● User Credentials: Provide a test user account with credentials that can be used
to log in and attempt the test.
● The .env file should be part of your repository for storing all keys and secrets.
● Evaluation: Share the email template used for sending test scores and include a
screenshot of the email received by the user after the test evaluation in the
Readme section of Repository.

Submission:
Please submit your completed assignment by pushing your code on GitHub with all the
necessary instructions to run the project in its ReadMe section and submit your
repository link in this Google Form.

Common questions

Powered by AI

The test environment should implement a login system using email and password to handle user authentication. Technologies recommended for this include JWT or session-based authentication to ensure user access is correctly managed before allowing test access .

The recommended technological stack for developing the backend includes Node.js with Express for server functionalities, and MongoDB for database management to store and retrieve user and test data efficiently within the platform .

The completed assignment should be submitted by pushing the code to GitHub, ensuring all necessary instructions for running the project are included in the README section. Additionally, a link to the repository should be submitted via a specific Google Form for evaluation .

If a user lacks permission for camera and microphone access, the system should display an error message indicating the missing permissions. This feedback is intended to guide the user to enable the necessary permissions, thereby maintaining the requirements for test administration and monitoring .

The main architectural components required include a web-based frontend using React.js, a backend server built with Node.js and Express, a MongoDB database for storing information, and authentication managed through JWT or session-based methods. Client-side integrations for video and audio permissions must be handled, and a cron job mechanism (like node-cron) should be implemented for periodic test evaluations. Additionally, an email service such as Nodemailer is necessary for sending automated score notifications .

The platform's functionality should be evaluated based on whether it meets all specified requirements and is free from bugs or missing features. Code quality should be assessed by its organization, cleanliness, adherence to best practices, and ease of maintenance and understanding .

The purpose of implementing a cron job in the test platform is to automatically evaluate the submitted tests, calculate scores, and handle result submissions efficiently. The cron job should run every hour to ensure timely processing of test evaluations and that students receive prompt feedback .

Essential user interface features include the ability to view each question and its options, select and change answers, navigate freely between questions, and display a camera window within the test interface. These ensure an intuitive and user-friendly experience that enhances test-taking efficiency .

Including the .env file in the repository is crucial for securely storing keys and secrets, such as database credentials and API keys. This file plays a key role in configuration management by isolating sensitive information from the codebase, thus aligning with best practices for security and maintainability .

User engagement and monitoring are ensured by requiring permission for camera and microphone access, thereby enabling video input display during the test. This setup helps verify user presence and prevents dishonest behaviors, enhancing the trustworthiness of the test-taking process .

You might also like