{"id":31009484,"url":"https://github.com/codervivek5/ai-based-online-exam-software","last_synced_at":"2026-02-15T01:32:37.015Z","repository":{"id":310033540,"uuid":"1038456756","full_name":"codervivek5/AI-Based-online-exam-Software","owner":"codervivek5","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-15T08:27:31.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-13T04:41:31.864Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codervivek5.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-15T08:26:09.000Z","updated_at":"2025-08-15T08:27:34.000Z","dependencies_parsed_at":"2025-08-15T10:19:57.756Z","dependency_job_id":"f7c116a0-6a47-41f9-a69e-9b29df18982f","html_url":"https://github.com/codervivek5/AI-Based-online-exam-Software","commit_stats":null,"previous_names":["codervivek5/ai-based-online-exam-software"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/codervivek5/AI-Based-online-exam-Software","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codervivek5%2FAI-Based-online-exam-Software","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codervivek5%2FAI-Based-online-exam-Software/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codervivek5%2FAI-Based-online-exam-Software/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codervivek5%2FAI-Based-online-exam-Software/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codervivek5","download_url":"https://codeload.github.com/codervivek5/AI-Based-online-exam-Software/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codervivek5%2FAI-Based-online-exam-Software/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29464098,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T01:01:38.065Z","status":"ssl_error","status_checked_at":"2026-02-15T01:01:23.809Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-13T04:39:01.945Z","updated_at":"2026-02-15T01:32:37.010Z","avatar_url":"https://github.com/codervivek5.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n# Random Paper Generator  \n### AI-Based Scalable Examination Platform (Module B)\n\n---\n\n## Overview\n\nThe **Random Paper Generator** is a core module of the **AI-Based Scalable Examination Platform**.  \nIt dynamically generates **unique and secure question papers** for each candidate **at exam time**.\n\nNo question paper is pre-generated or stored beforehand.  \nInstead, papers are created **just-in-time** using **deterministic, seed-based randomization**, ensuring:\n\n- Maximum security\n- Fairness across candidates\n- Full reproducibility for audits\n\n---\n\n## Key Objectives\n\n### 1. Randomized Question Papers\n- Every candidate receives a **unique paper**\n- Questions are selected based on:\n  - Difficulty balance\n  - Topic coverage\n  - Exam blueprint rules\n\n---\n\n### 2. Security-First Design\n- No full paper stored before the exam\n- Generation happens only at runtime\n- Eliminates risks of paper leaks or memorization\n\n---\n\n### 3. Fairness \u0026 Standardization\n- All candidates receive papers with:\n  - Same difficulty distribution\n  - Same topic weightage\n- No advantage or disadvantage due to randomization\n\n---\n\n### 4. High Scalability\n- Designed to support **hundreds of thousands of concurrent candidates**\n- Stateless and horizontally scalable architecture\n\n---\n\n### 5. Reproducibility \u0026 Auditability\nAny paper can be regenerated later using only:\n- `candidate_id`\n- `exam_id`\n- Secure random seed\n\nNo need to store the complete paper in the database.\n\n---\n\n## Core Concepts\n\n---\n\n## 1. Question Item Bank\n\nAll questions are stored in a centralized **Item Bank** database.\n\n### `questions` Table Structure\n\n| Field | Description |\n|------|------------|\n| `question_id` | Unique question identifier |\n| `exam_id` | Associated exam |\n| `topic_id` | Subject/topic category |\n| `difficulty_level` | Easy / Medium / Hard |\n| `question_text` | Main question content |\n| `options[]` | Answer choices (if applicable) |\n| `correct_option` | Correct answer reference |\n| `marks` | Question weight |\n| `metadata` | Tags, source, analytics |\n\n---\n\n## 2. Exam Blueprint\n\nBlueprints define the **structure and constraints** of a paper.\n\n### Example Blueprint\n```json\n{\n  \"exam_id\": \"SSC_2025_MATHS\",\n  \"total_questions\": 100,\n  \"time_limit_minutes\": 120,\n  \"sections\": [\n    {\n      \"topic\": \"Algebra\",\n      \"difficulty_distribution\": {\n        \"easy\": 5,\n        \"medium\": 10,\n        \"hard\": 5\n      }\n    },\n    {\n      \"topic\": \"Geometry\",\n      \"difficulty_distribution\": {\n        \"easy\": 5,\n        \"medium\": 10,\n        \"hard\": 5\n      }\n    }\n  ]\n}\n````\n\nBlueprints guarantee **consistent difficulty and topic coverage** across all candidates.\n\n---\n\n## 3. Seed-Based Paper Generation\n\nFor each candidate, a **secure deterministic seed** is generated:\n\n```\nseed = hash(candidate_id + exam_id + secret_key)\n```\n\nThis seed is used to initialize a **Pseudo-Random Number Generator (PRNG)**.\n\n### Benefits\n\n* Each candidate gets a unique paper\n* Same seed always regenerates the same paper\n* No need to store question papers\n\n---\n\n## 4. Question Selection Algorithm\n\n### Step-by-Step Flow\n\n1. Load the exam blueprint\n2. Generate candidate-specific seed\n3. For each section:\n\n   * Filter questions by topic \u0026 difficulty\n   * Shuffle using seeded PRNG\n   * Select required number of questions\n4. Compile and return final paper JSON\n\n---\n\n## 5. Supported Question Types\n\n* Multiple Choice Questions (Single / Multiple Correct)\n* Fill-in-the-Blank\n* Numerical Answer Type\n* Match-the-Following\n* Case-based / Comprehension Sets\n\n---\n\n## API Design\n\n### `POST /generate-paper`\n\n#### Request\n\n```json\n{\n  \"candidate_id\": \"123456\",\n  \"exam_id\": \"SSC_MOCK_2025\"\n}\n```\n\n#### Response\n\n```json\n{\n  \"exam_id\": \"SSC_MOCK_2025\",\n  \"candidate_id\": \"123456\",\n  \"questions\": [\n    {\n      \"qid\": 101,\n      \"text\": \"2 + 2 = ?\",\n      \"options\": [\"3\", \"4\", \"5\"],\n      \"marks\": 1\n    },\n    {\n      \"qid\": 205,\n      \"text\": \"Solve for x...\",\n      \"options\": [\"2\", \"3\", \"4\"],\n      \"marks\": 2\n    }\n  ],\n  \"time_limit_minutes\": 120\n}\n```\n\n---\n\n## Performance Targets\n\n| Metric     | Target                |\n| ---------- | --------------------- |\n| Latency    | \u003c 200 ms per paper    |\n| Throughput | \u003e 1000 papers/second  |\n| Memory     | Optimized via caching |\n\n---\n\n## Security Measures\n\n* In-memory paper generation\n* No disk writes before exam start\n* AES-256 encryption for temporary persistence (if required)\n* Signed URLs for media assets\n* Strict authentication \u0026 authorization for API access\n\n---\n\n## Fairness \u0026 Normalization\n\n* Blueprint-based difficulty control\n* Shift-wise balancing supported\n* Post-exam normalization using statistical models\n\n---\n\n## Failure Handling \u0026 Recovery\n\n* Service crash → paper regenerated instantly using seed\n* Stateless services allow quick redeployment\n* Cluster auto-healing ensures high availability\n\n---\n\n## Observability \u0026 Monitoring\n\n* **Metrics**: Generation time, pool usage, error rates\n* **Logs**: Request IDs, seed hashes (audit-safe)\n* **Tracing**: Distributed tracing across services\n\n---\n\n## Developer Utilities\n\n* Blueprint Validator\n* Item Bank Sufficiency Checker\n* Paper Simulator\n* Stress Testing Tools (up to 1M concurrent requests)\n\n---\n\n## Recommended Tech Stack\n\n* **Languages**: Python (rapid dev) or Go (high performance)\n* **Database**: PostgreSQL\n* **Caching**: Redis\n* **Infrastructure**: Kubernetes with auto-scaling\n* **Secrets Management**: AWS KMS / HashiCorp Vault\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodervivek5%2Fai-based-online-exam-software","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodervivek5%2Fai-based-online-exam-software","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodervivek5%2Fai-based-online-exam-software/lists"}