# Software Requirements Specification (SRS)

**Project:** TrueTest - Secure Online Proctoring System for Technical Assessments\
**Version:** 1.3\
**Date:** April 30, 2025

***

## 1. Introduction

This document outlines the comprehensive software requirements for the TrueTest platform, a secure online proctoring system designed for technical assessments. It details the platform's purpose, intended audience, scope, functionality, and non-functional requirements, serving as a blueprint for the development and testing teams.

### 1.1 Purpose of the Document

The primary purpose of this Software Requirements Specification (SRS) document is to:

* Clearly define the functional and non-functional requirements of the TrueTest system.
* Provide a detailed understanding of the system's features and behavior for all stakeholders, including developers, testers, and project managers.
* Serve as a baseline for the design, development, and testing phases of the project.
* Facilitate communication and agreement among the project team and stakeholders regarding the system's requirements.

### 1.2 Document Conventions

<table><thead><tr><th width="147">Convention</th><th>Description</th></tr></thead><tbody><tr><td>FR##</td><td>Denotes a Functional Requirement identifier.</td></tr><tr><td><em>Italicized Terms</em></td><td>Indicates that the term is defined in the Glossary upon its first use.</td></tr><tr><td>Priority Levels</td><td>(High, Medium, Low) Indicates the importance of a specific functional block.</td></tr></tbody></table>

### 1.3 Glossary

<table><thead><tr><th width="138">Term</th><th>Definition</th></tr></thead><tbody><tr><td><em>Admin</em></td><td>An authorized user with elevated privileges to manage the TrueTest platform.</td></tr><tr><td><em>AI Assistance</em></td><td>The integration of artificial intelligence for tasks such as question generation and answer review suggestions.</td></tr><tr><td><em>Candidate</em></td><td>An individual who takes an assessment on the TrueTest platform.</td></tr><tr><td><em>Exam</em></td><td>A timed assessment consisting of various question types.</td></tr><tr><td><em>Proctoring</em></td><td>Features implemented to monitor candidates during an exam to prevent unauthorized activities.</td></tr><tr><td><em>Test Case</em></td><td>A specific input and its expected output used to evaluate code submissions.</td></tr><tr><td><em>Auto-grading</em></td><td>The automatic scoring of objective question types like code and multiple-choice.</td></tr></tbody></table>

### 1.4 Intended Audience

This document is intended for the following stakeholders:

* The software development team responsible for designing and implementing the TrueTest platform.
* The quality assurance and testing team responsible for verifying the system's functionality and performance.
* The project management team responsible for overseeing the development process and ensuring adherence to requirements.
* The stakeholders who will utilize the TrueTest platform (e.g., educational institutions, hiring managers).

### 1.5 Project Information

* **Project Name:** TrueTest - Secure Online Proctoring System for Technical Assessments
* **Project Goal:** To develop a secure, efficient, and user-friendly online platform for conducting technical assessments with robust proctoring and automated evaluation capabilities.

## 2. General Description

### 2.1 Product Vision

TrueTest aims to be the leading secure online platform for technical assessments, empowering organizations to efficiently and fairly evaluate candidates' skills. By integrating robust proctoring, a versatile exam creation system, and intelligent AI assistance, TrueTest will streamline the assessment process and ensure accurate evaluation outcomes.

### 2.2 Product Functionality

<table><thead><tr><th width="151">Functionality</th><th>Description</th></tr></thead><tbody><tr><td>Candidate Management</td><td>Allows candidates to register, log in, and manage their profiles.</td></tr><tr><td>Exam Delivery</td><td>Enables candidates to access and take scheduled exams with a secure proctoring environment.</td></tr><tr><td>Question Management</td><td>Provides administrators with tools to create a variety of question types, including coding problems, MCQs, and written answers.</td></tr><tr><td>Code Execution</td><td>Offers a built-in code editor for candidates to write and execute code in multiple languages.</td></tr><tr><td>Proctoring</td><td>Monitors candidates during exams to prevent unauthorized activities.</td></tr><tr><td>Grading and Review</td><td>Facilitates the scoring of exams, both automatically and manually, with AI assistance for review.</td></tr><tr><td>Admin Management</td><td>Allows authorized users to manage the platform, including users, exams, and settings.</td></tr></tbody></table>

The primary core audiences for TrueTest are:

* **Candidates:** Individuals taking technical assessments to demonstrate their skills.
* **Administrators:** Professionals responsible for creating, managing, and evaluating technical assessments (e.g., educators, recruiters, HR personnel).

### 2.3 Operating Environment

TrueTest will be a web-based application accessible through modern web browsers (e.g., Chrome, Firefox, Safari, Edge) on desktop and laptop computers. Specific browser version compatibility will be detailed in the deployment documentation. A stable internet connection will be required for both candidates and administrators.

## 3. Scope, Constraints, Rules, and Standards

### 3.1 Scope

As defined in Section 1.4, the initial scope of TrueTest includes the core features for candidate and admin portals, exam management, question building, proctoring, and grading. Features beyond those explicitly mentioned in Section 1.4 will be considered out of scope for the initial release.

### 3.2 Constraints

* **Technology Constraints:** The platform will be developed using .NET, MSSQL, and NextJS.
* **Timeline Constraints:** The project must be completed by April 30th, 2025.
* **Budgetary Constraints:** The development cost will be within a free budget.
* **Security Constraints:** The platform must adhere to industry best practices for secure online applications to protect user data and exam integrity.

## 4. System Functionality

### 4.1 Functional Blocks

<table><thead><tr><th width="274">Functional Block</th><th>Description</th></tr></thead><tbody><tr><td>Candidate Portal</td><td>Handles all interactions for candidates.</td></tr><tr><td>Admin Portal</td><td>Manages all administrative functions.</td></tr><tr><td>Exam Management Subsystem</td><td>Responsible for creating, scheduling, and managing exams.</td></tr><tr><td>Question Management Subsystem</td><td>Facilitates the creation and management of different question types.</td></tr><tr><td>Proctoring Subsystem</td><td>Implements and manages the proctoring features during exams.</td></tr><tr><td>Grading and Review Subsystem</td><td>Handles the automated and manual scoring of exam submissions.</td></tr><tr><td>User Management Subsystem</td><td>Manages user accounts and permissions.</td></tr></tbody></table>

### 4.2 Description and Priority

<table><thead><tr><th width="167">Functional Block</th><th width="446">Description</th><th>Priority</th></tr></thead><tbody><tr><td>Candidate Portal</td><td>Allows candidates to register, log in, view profiles, access exams, submit answers, and interact with the code editor.</td><td>High</td></tr><tr><td>Admin Portal</td><td>Provides administrators with access to all management features, including exams, candidates, questions, and users.</td><td>High</td></tr><tr><td>Exam Management Subsystem</td><td>Enables administrators to create, schedule, and publish exams with various settings (duration, scoring, etc.).</td><td>Medium</td></tr><tr><td>Question Management Subsystem</td><td>Allows administrators to create and manage different types of questions (coding, MCQ, written) with rich text, code highlighting, etc.</td><td>Medium</td></tr><tr><td>Proctoring Subsystem</td><td>Implements features to monitor candidates during exams, detect suspicious activity, and ensure exam integrity.</td><td>High</td></tr><tr><td>Grading and Review Subsystem</td><td>Automates the grading of objective questions and provides tools for manual scoring and AI-assisted review of subjective answers.</td><td>Medium</td></tr><tr><td>User Management Subsystem</td><td>Manages user accounts (candidates and admins), roles, and permissions within the system.</td><td>Medium</td></tr></tbody></table>

### 4.3 Workflow

A typical workflow for each core user group:

**Administrator Workflow:**

1. Logs into the Admin Portal.
2. Creates or modifies exam details (name, duration, schedule).
3. Builds questions (coding, MCQ, written) using the Question Builder.
4. Manages the candidate list (upload, invite).
5. Publishes the exam.
6. Monitors exam progress (optional).
7. Reviews and scores submissions (automatic and manual).
8. Views reports and analytics.

**Candidate Workflow:**

1. Registers and logs into the Candidate Portal.
2. Views upcoming and past exams.
3. Starts a scheduled exam.
4. Answers questions using the provided interface (code editor, text fields, etc.).
5. Submits the exam within the allotted time.
6. Views results (if and when released).

## 5. Functional Requirements

### 5.1 Candidate Portal

<table><thead><tr><th width="69">FR ID</th><th>Requirement</th></tr></thead><tbody><tr><td>FR01</td><td>User Registration: The system shall allow new candidates to register by providing necessary details (e.g., name, email, password).</td></tr><tr><td>FR02</td><td>User Login: The system shall allow registered candidates to securely log in using their email and password.</td></tr><tr><td>FR03</td><td>Profile Management: Registered candidates shall be able to view and edit their profile information.</td></tr><tr><td>FR04</td><td>Settings Management: Registered candidates shall be able to update their email and password.</td></tr><tr><td>FR05</td><td>Exam Listing: The system shall display a list of upcoming and past exams accessible to the candidate.</td></tr><tr><td>FR06</td><td>Exam Start: The system shall allow candidates to start an exam within its scheduled timeframe.</td></tr><tr><td>FR07</td><td>Problem Solving Submission: During a coding exam, the system shall allow candidates to write and submit code solutions using the built-in code editor.</td></tr><tr><td>FR08</td><td>MCQ Submission: During an exam, the system shall allow candidates to select answers for single and multi-select multiple-choice questions.</td></tr><tr><td>FR09</td><td>Written Answer Submission: During an exam, the system shall allow candidates to provide written answers to short-answer and essay-style questions.</td></tr><tr><td>FR10</td><td>Built-in Code Editor: The system shall provide a built-in code editor with syntax highlighting for 50+ programming languages.</td></tr><tr><td>FR11</td><td>Code Execution: The code editor shall allow candidates to execute their code against provided test cases.</td></tr><tr><td>FR12</td><td>Live Output and Error Logs: The code editor shall display the live output and any error logs generated during code execution.</td></tr><tr><td>FR13</td><td>Full-Screen Lock: During an exam, the system shall lock the candidate's screen to prevent them from accessing other applications.</td></tr><tr><td>FR14</td><td>Tab and Navigation Blocking: During an exam, the system shall prevent the opening of new tabs and navigation away from the exam interface.</td></tr><tr><td>FR15</td><td>Copy/Paste Restriction: During an exam, the system shall disable copy and paste functionality.</td></tr><tr><td>FR16</td><td>Right-Click Restriction: During an exam, the system shall disable the right-click context menu.</td></tr><tr><td>FR17</td><td>Clipboard Restriction: During an exam, the system shall prevent access to the system clipboard.</td></tr><tr><td>FR18</td><td>Selection Restriction: During an exam, the system shall prevent the selection of text.</td></tr><tr><td>FR19</td><td>Auto-Submit on Suspicious Activity: The system shall automatically submit the exam if suspicious activity is detected (to be further defined).</td></tr></tbody></table>

### 5.2 Admin Portal

<table><thead><tr><th width="68">FR ID</th><th>Requirement</th></tr></thead><tbody><tr><td>FR20</td><td>Admin Login: The system shall allow authorized administrators to securely log in using their credentials.</td></tr><tr><td>FR21</td><td>Exam Creation: Administrators shall be able to create new exams by defining details such as name, description, duration, start/end time, and total score.</td></tr><tr><td>FR22</td><td>Exam Scheduling: Administrators shall be able to schedule exams for specific dates and times.</td></tr><tr><td>FR23</td><td>Exam Publishing: Administrators shall be able to publish and make exams accessible to candidates.</td></tr><tr><td>FR24</td><td>Candidate Upload (CSV): Administrators shall be able to upload a list of candidate emails via a CSV file.</td></tr><tr><td>FR25</td><td>Bulk Invite Candidates: The system shall allow administrators to send bulk email invitations to candidates to participate in specific exams.</td></tr><tr><td>FR26</td><td>Problem-Solving Question Creation: Administrators shall be able to define problem-solving questions, including test cases with inputs and expected outputs.</td></tr><tr><td>FR27</td><td>AI-Assisted Prompt Generation/Refinement (Problem-Solving): The system shall provide AI assistance to generate or refine prompts for problem-solving questions.</td></tr><tr><td>FR28</td><td>Rich Text Formatting (Questions): Administrators shall be able to format question text using Markdown.</td></tr><tr><td>FR29</td><td>Code Syntax Highlighting (Questions): The question editor shall support code syntax highlighting.</td></tr><tr><td>FR30</td><td>Math Equation Support (Questions): Administrators shall be able to include mathematical equations in questions (using LATEX).</td></tr><tr><td>FR31</td><td>Image Embedding (Questions): Administrators shall be able to embed images in questions.</td></tr><tr><td>FR32</td><td>Diagram Support (Questions - Mermaid): Administrators shall be able to create and embed diagrams using Mermaid syntax.</td></tr><tr><td>FR33</td><td>MCQ Creation (Single Select): Administrators shall be able to create single-select multiple-choice questions with options and the correct answer.</td></tr><tr><td>FR34</td><td>MCQ Creation (Multi-Select): Administrators shall be able to create multi-select multiple-choice questions with options and the correct answer(s).</td></tr><tr><td>FR35</td><td>Short-Answer Question Creation: Administrators shall be able to create short-answer questions.</td></tr><tr><td>FR36</td><td>Essay Question Creation: Administrators shall be able to create essay-style long-answer questions.</td></tr><tr><td>FR37</td><td>Auto-Grade Code Submissions: The system shall automatically grade code submissions based on the defined test cases.</td></tr><tr><td>FR38</td><td>Auto-Grade MCQs: The system shall automatically grade multiple-choice questions.</td></tr><tr><td>FR39</td><td>Manual Scoring (Written Answers): Administrators shall be able to manually score written answers.</td></tr><tr><td>FR40</td><td>AI-Assisted Review Suggestions (Written Answers): The system shall provide AI-assisted suggestions for reviewing written answers.</td></tr><tr><td>FR41</td><td>Flag Suspicious Submissions: The system shall allow administrators to flag submissions identified as potentially suspicious.</td></tr><tr><td>FR42</td><td>Review Suspicious Submissions: Administrators shall be able to review flagged submissions.</td></tr><tr><td>FR43</td><td>User Listing: Administrators shall be able to view a list of all users (candidates and admins).</td></tr><tr><td>FR44</td><td>Deactivate/Remove Accounts: Administrators shall be able to deactivate or remove user accounts.</td></tr><tr><td>FR45</td><td>Upgrade to Admin: Administrators shall be able to upgrade existing user accounts to administrator roles.</td></tr><tr><td>FR46</td><td>Invite New Admins: Administrators shall be able to invite new administrators via email.</td></tr></tbody></table>

## 6. External Interfaces

### 6.1 User Interfaces

The complete UI/UX design for the TrueTest platform has been created using Figma. This design encompasses two primary web-based user interfaces:

* **Candidate Interface:** A clean and intuitive interface for candidates to register, log in, view exams, take assessments, and interact with the code editor. It is designed for ease of use and minimal distractions during exams, as detailed in the Figma design.
* **Administrator Interface:** A comprehensive interface providing administrators with access to all management functionalities. It is organized logically for efficient exam creation, candidate management, and result review, as outlined in the Figma design.

The detailed UI mockups and user flows are available in the Figma project.

### 6.2 Programming Interfaces

* **API for AI Integration:** The system will include APIs to integrate with AI services for question generation and answer review. The specifics of these APIs (e.g., data formats, authentication) will be defined during the detailed design phase.

### 6.3 Hardware Interfaces

* **Standard Web Browsers:** The system will be designed to be compatible with modern web browsers (Chrome, Firefox, Safari, Edge) on standard desktop and laptop hardware. The platform is not optimized or intended for use on mobile devices.

### 6.4 Communication Interfaces

* **Email Integration:** The system will integrate with an email service using the Simple Mail Transfer Protocol (SMTP) to send registration confirmations, exam invitations, and password reset instructions.
* **Network Protocols:** The system will utilize standard web communication protocols (HTTPS) for secure data transmission between the client and the server.

## 7. Non-Functional Requirements

### 7.1 Performance Prerequisites

* **Response Time:** The system should have a reasonable response time for user actions. Page load times should ideally be under 3 seconds for most common operations.
* **Scalability:** The current architecture of the system has limitations and is not designed to handle a large number of concurrent users or a significant increase in data volume. Future development efforts will need to address scalability to accommodate a growing user base and data load. Specific performance targets for the current system and future scalability goals will be defined based on anticipated usage and resource constraints.
* **Code Execution Performance:** The code execution environment should be efficient and provide reasonable execution times for submitted code within defined limits.

### 7.2 Data Prerequisites

* **Secure Data Storage:** All user data, exam details, questions, and submissions must be stored securely using appropriate encryption techniques.
* **Data Integrity:** The system must ensure the integrity and consistency of all stored data.
* **Data Backup and Recovery:** Regular data backups should be performed, and a recovery mechanism should be in place to prevent data loss.

### 7.3 Software Quality Criteria

* **Usability:** The system should be user-friendly and easy to navigate for both candidates and administrators.
* **Reliability:** The system should be stable and function without failures during normal operation.
* **Maintainability:** The system should be designed in a modular and well-documented manner to facilitate future maintenance and updates.
* **Security:** The system must be secure and protect against unauthorized access, data breaches, and

## 8. Testing Related Information

* **Test Strategy:** The primary testing strategy for the backend will focus on unit testing to ensure the correctness and reliability of individual components and functions within the .NET codebase. The frontend testing was conducted manually by human testers.
* **Test Framework:** The project will utilize the xUnit.net testing framework for writing and executing unit tests on the backend. No specific framework was used for frontend testing.
* **Test Cases:** Detailed unit tests will be developed to cover all functional requirements and critical non-functional aspects of the backend. These tests will verify various scenarios, including valid inputs, edge cases, and error conditions for individual units of code. Frontend testing relied on manual test scenarios executed by testers.
* **Test Environment:** Unit tests for the backend will be executed within the development environment using the xUnit.net test runner integrated with JetBrains Rider. Frontend testing was conducted directly on the different deployment environments (production, development, and feature branches).
* **Test Data:** Test data for backend unit tests will be created and managed within the test code itself to isolate the units under test. Frontend testing used realistic data within the deployed environments.
* **Test Tools:** JetBrains Rider's built-in test runner will be the primary tool used for running and analyzing backend unit test results. Frontend testing relied on direct interaction with the application in the browser.
* **Acceptance Criteria:** Successful execution of all relevant backend unit tests will serve as a key indicator that individual backend components meet the defined functional requirements. User acceptance testing, performed manually on the frontend across the different environments (production, development, and feature branches), validated the overall system functionality.

## 9. Deployment Information

This section provides an overview of the deployment process for the TrueTest platform.

* **Backend Deployment Environment:** The .NET backend of the platform will be deployed on two free IIS servers: one for production and one for development. Specific details regarding server configurations and network requirements will be determined based on the chosen free IIS hosting provider's specifications.
* **Frontend Deployment Environment:** The frontend of the platform will be deployed on multiple free hosting servers, including production, development, and dedicated servers for feature branches. The specific service(s) used and their configuration details will be documented in the deployment guide.
* **Deployment Process (Backend):** The backend deployment process will involve building the .NET application in JetBrains Rider and deploying it directly to the designated production and development IIS servers using FTP functionality within Rider.
* **Deployment Process (Frontend):** The frontend deployment process will utilize a Continuous Integration/Continuous Deployment (CI/CD) pipeline. Upon code commits to relevant branches (including feature branches), and successful pull requests, automated build and deployment processes will push the frontend application to the respective production, development, and dedicated feature branch hosting environments.
* **Deployment Schedule:** The timeline for the initial deployment of both the backend and frontend of the TrueTest platform will be determined based on the completion of development and successful user acceptance testing. Subsequent frontend deployments to different environments will be triggered automatically through the CI/CD pipeline.
* **Rollback Plan:** In the event of deployment issues for either the backend or the frontend, the rollback plan involves going to the previous successful commit history on GitHub and redeploying that specific commit. For the backend, this will be done to the affected IIS server (production or development) using the FTP functionality in JetBrains Rider, potentially requiring restoration of backed-up files and database configurations. For the frontend, this will be done to the affected environment (production, development, or the specific feature branch) through the CI/CD pipeline.
* **Post-Deployment Monitoring:** Basic monitoring of the backend application's availability and functionality will be performed using the monitoring tools provided by the free IIS hosting service or through basic manual checks on both production and development servers.

## 10. Future Considerations

The following features are currently out of scope for version 1.3, but are identified as valuable enhancements that support the platform’s long-term goals of scalability, user engagement, security, and innovation. These items are intended for future development and release planning.

<table><thead><tr><th width="177">Feature</th><th>Description</th></tr></thead><tbody><tr><td><strong>1-to-1 Interview with Interviewer</strong></td><td>Real-time, individual interview sessions between candidates and interviewers to assess communication, problem-solving, and interpersonal skills.</td></tr><tr><td><strong>Gamification Elements</strong></td><td>Integration of badges, levels, points, and leaderboards to boost user engagement and promote a competitive and rewarding assessment experience.</td></tr><tr><td><strong>Advanced AI Proctoring</strong></td><td>AI-driven monitoring including face detection, eye tracking, background noise analysis, and behavior anomaly detection to ensure secure and fair assessments.</td></tr><tr><td><strong>Detailed Reporting &#x26; Analytics Dashboard</strong></td><td>A comprehensive dashboard offering insights such as real-time tracking, proctoring logs, and personalized feedback for both admins and candidates.</td></tr></tbody></table>

## Reference

IEEE. _IEEE Recommended Practice for Software Requirements Specifications_. IEEE Std 830-1998, 1998. Available: [https://ieeexplore.ieee.org/document/720574](https://ieeexplore.ieee.org/document/720574)
