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

Convention
Description

FR##

Denotes a Functional Requirement identifier.

Italicized Terms

Indicates that the term is defined in the Glossary upon its first use.

Priority Levels

(High, Medium, Low) Indicates the importance of a specific functional block.

1.3 Glossary

Term
Definition

Admin

An authorized user with elevated privileges to manage the TrueTest platform.

AI Assistance

The integration of artificial intelligence for tasks such as question generation and answer review suggestions.

Candidate

An individual who takes an assessment on the TrueTest platform.

Exam

A timed assessment consisting of various question types.

Proctoring

Features implemented to monitor candidates during an exam to prevent unauthorized activities.

Test Case

A specific input and its expected output used to evaluate code submissions.

Auto-grading

The automatic scoring of objective question types like code and multiple-choice.

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

Functionality
Description

Candidate Management

Allows candidates to register, log in, and manage their profiles.

Exam Delivery

Enables candidates to access and take scheduled exams with a secure proctoring environment.

Question Management

Provides administrators with tools to create a variety of question types, including coding problems, MCQs, and written answers.

Code Execution

Offers a built-in code editor for candidates to write and execute code in multiple languages.

Proctoring

Monitors candidates during exams to prevent unauthorized activities.

Grading and Review

Facilitates the scoring of exams, both automatically and manually, with AI assistance for review.

Admin Management

Allows authorized users to manage the platform, including users, exams, and settings.

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

Functional Block
Description

Candidate Portal

Handles all interactions for candidates.

Admin Portal

Manages all administrative functions.

Exam Management Subsystem

Responsible for creating, scheduling, and managing exams.

Question Management Subsystem

Facilitates the creation and management of different question types.

Proctoring Subsystem

Implements and manages the proctoring features during exams.

Grading and Review Subsystem

Handles the automated and manual scoring of exam submissions.

User Management Subsystem

Manages user accounts and permissions.

4.2 Description and Priority

Functional Block
Description
Priority

Candidate Portal

Allows candidates to register, log in, view profiles, access exams, submit answers, and interact with the code editor.

High

Admin Portal

Provides administrators with access to all management features, including exams, candidates, questions, and users.

High

Exam Management Subsystem

Enables administrators to create, schedule, and publish exams with various settings (duration, scoring, etc.).

Medium

Question Management Subsystem

Allows administrators to create and manage different types of questions (coding, MCQ, written) with rich text, code highlighting, etc.

Medium

Proctoring Subsystem

Implements features to monitor candidates during exams, detect suspicious activity, and ensure exam integrity.

High

Grading and Review Subsystem

Automates the grading of objective questions and provides tools for manual scoring and AI-assisted review of subjective answers.

Medium

User Management Subsystem

Manages user accounts (candidates and admins), roles, and permissions within the system.

Medium

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

FR ID
Requirement

FR01

User Registration: The system shall allow new candidates to register by providing necessary details (e.g., name, email, password).

FR02

User Login: The system shall allow registered candidates to securely log in using their email and password.

FR03

Profile Management: Registered candidates shall be able to view and edit their profile information.

FR04

Settings Management: Registered candidates shall be able to update their email and password.

FR05

Exam Listing: The system shall display a list of upcoming and past exams accessible to the candidate.

FR06

Exam Start: The system shall allow candidates to start an exam within its scheduled timeframe.

FR07

Problem Solving Submission: During a coding exam, the system shall allow candidates to write and submit code solutions using the built-in code editor.

FR08

MCQ Submission: During an exam, the system shall allow candidates to select answers for single and multi-select multiple-choice questions.

FR09

Written Answer Submission: During an exam, the system shall allow candidates to provide written answers to short-answer and essay-style questions.

FR10

Built-in Code Editor: The system shall provide a built-in code editor with syntax highlighting for 50+ programming languages.

FR11

Code Execution: The code editor shall allow candidates to execute their code against provided test cases.

FR12

Live Output and Error Logs: The code editor shall display the live output and any error logs generated during code execution.

FR13

Full-Screen Lock: During an exam, the system shall lock the candidate's screen to prevent them from accessing other applications.

FR14

Tab and Navigation Blocking: During an exam, the system shall prevent the opening of new tabs and navigation away from the exam interface.

FR15

Copy/Paste Restriction: During an exam, the system shall disable copy and paste functionality.

FR16

Right-Click Restriction: During an exam, the system shall disable the right-click context menu.

FR17

Clipboard Restriction: During an exam, the system shall prevent access to the system clipboard.

FR18

Selection Restriction: During an exam, the system shall prevent the selection of text.

FR19

Auto-Submit on Suspicious Activity: The system shall automatically submit the exam if suspicious activity is detected (to be further defined).

5.2 Admin Portal

FR ID
Requirement

FR20

Admin Login: The system shall allow authorized administrators to securely log in using their credentials.

FR21

Exam Creation: Administrators shall be able to create new exams by defining details such as name, description, duration, start/end time, and total score.

FR22

Exam Scheduling: Administrators shall be able to schedule exams for specific dates and times.

FR23

Exam Publishing: Administrators shall be able to publish and make exams accessible to candidates.

FR24

Candidate Upload (CSV): Administrators shall be able to upload a list of candidate emails via a CSV file.

FR25

Bulk Invite Candidates: The system shall allow administrators to send bulk email invitations to candidates to participate in specific exams.

FR26

Problem-Solving Question Creation: Administrators shall be able to define problem-solving questions, including test cases with inputs and expected outputs.

FR27

AI-Assisted Prompt Generation/Refinement (Problem-Solving): The system shall provide AI assistance to generate or refine prompts for problem-solving questions.

FR28

Rich Text Formatting (Questions): Administrators shall be able to format question text using Markdown.

FR29

Code Syntax Highlighting (Questions): The question editor shall support code syntax highlighting.

FR30

Math Equation Support (Questions): Administrators shall be able to include mathematical equations in questions (using LATEX).

FR31

Image Embedding (Questions): Administrators shall be able to embed images in questions.

FR32

Diagram Support (Questions - Mermaid): Administrators shall be able to create and embed diagrams using Mermaid syntax.

FR33

MCQ Creation (Single Select): Administrators shall be able to create single-select multiple-choice questions with options and the correct answer.

FR34

MCQ Creation (Multi-Select): Administrators shall be able to create multi-select multiple-choice questions with options and the correct answer(s).

FR35

Short-Answer Question Creation: Administrators shall be able to create short-answer questions.

FR36

Essay Question Creation: Administrators shall be able to create essay-style long-answer questions.

FR37

Auto-Grade Code Submissions: The system shall automatically grade code submissions based on the defined test cases.

FR38

Auto-Grade MCQs: The system shall automatically grade multiple-choice questions.

FR39

Manual Scoring (Written Answers): Administrators shall be able to manually score written answers.

FR40

AI-Assisted Review Suggestions (Written Answers): The system shall provide AI-assisted suggestions for reviewing written answers.

FR41

Flag Suspicious Submissions: The system shall allow administrators to flag submissions identified as potentially suspicious.

FR42

Review Suspicious Submissions: Administrators shall be able to review flagged submissions.

FR43

User Listing: Administrators shall be able to view a list of all users (candidates and admins).

FR44

Deactivate/Remove Accounts: Administrators shall be able to deactivate or remove user accounts.

FR45

Upgrade to Admin: Administrators shall be able to upgrade existing user accounts to administrator roles.

FR46

Invite New Admins: Administrators shall be able to invite new administrators via email.

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

  • 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.

Feature
Description

1-to-1 Interview with Interviewer

Real-time, individual interview sessions between candidates and interviewers to assess communication, problem-solving, and interpersonal skills.

Gamification Elements

Integration of badges, levels, points, and leaderboards to boost user engagement and promote a competitive and rewarding assessment experience.

Advanced AI Proctoring

AI-driven monitoring including face detection, eye tracking, background noise analysis, and behavior anomaly detection to ensure secure and fair assessments.

Detailed Reporting & Analytics Dashboard

A comprehensive dashboard offering insights such as real-time tracking, proctoring logs, and personalized feedback for both admins and candidates.

Reference

IEEE. IEEE Recommended Practice for Software Requirements Specifications. IEEE Std 830-1998, 1998. Available: https://ieeexplore.ieee.org/document/720574

Last updated