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
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
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
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
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
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:
Logs into the Admin Portal.
Creates or modifies exam details (name, duration, schedule).
Builds questions (coding, MCQ, written) using the Question Builder.
Manages the candidate list (upload, invite).
Publishes the exam.
Monitors exam progress (optional).
Reviews and scores submissions (automatic and manual).
Views reports and analytics.
Candidate Workflow:
Registers and logs into the Candidate Portal.
Views upcoming and past exams.
Starts a scheduled exam.
Answers questions using the provided interface (code editor, text fields, etc.).
Submits the exam within the allotted time.
Views results (if and when released).
5. Functional Requirements
5.1 Candidate Portal
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
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
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.
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