OMRChecker icon indicating copy to clipboard operation
OMRChecker copied to clipboard

docs: Add new sample dataset (Fixes #40)

Open Hasan-8326 opened this issue 1 month ago • 2 comments

User description

I have added a new sample folder containing a template and an image to help expand the test dataset. Ref: #40


PR Type

Documentation


Description

  • Add new sample dataset (sample99) with template configuration

  • Include template.json with bubble detection and field block settings

  • Provide test data for OMR sheet processing pipeline


Diagram Walkthrough

flowchart LR
  A["Sample Dataset"] -- "contains" --> B["template.json"]
  B -- "defines" --> C["Bubble Dimensions"]
  B -- "defines" --> D["Pre-processors"]
  B -- "defines" --> E["Field Blocks"]
  D -- "CropPage" --> F["Morphological Operations"]
  E -- "Roll_Number" --> G["OMR Field Configuration"]

File Walkthrough

Relevant files
Documentation
template.json
Template configuration for sample99 OMR dataset                   

samples/sample99/template.json

  • New template configuration file for sample99 dataset
  • Defines bubble dimensions of 30x30 pixels
  • Configures CropPage preprocessor with 10x10 morphological kernel
  • Sets up Roll_Number field block with origin, gaps, and digit labels
    (0-9)
+17/-0   

Hasan-8326 avatar Nov 22 '25 14:11 Hasan-8326

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🟡
🎫 #40
🟢 Design a template overlay for the image using the --setLayout flag
🔴 Place the sample in the samples/community folder
Pick any OMR sheet image(s) that can be used publicly
Ensure the template generates correct output
Rename images properly
Compress images to jpg 80% to reduce bandwidth consumption
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

  • [ ] Update
Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
High-level
PR is incomplete without image file

The PR is incomplete as it only adds a template.json file for a new sample
without the necessary corresponding image file, rendering the sample unusable.
The suggestion is to add the missing image to the samples/sample99 directory.

Examples:

samples/sample99/template.json [1-17]
{
  "bubbleDimensions": [30, 30],
  "preProcessors": [
    {
      "name": "CropPage",
      "options": {"morphKernel": [10, 10]}
    }
  ],
  "fieldBlocks": {
    "Roll_Number": {

 ... (clipped 7 lines)

Solution Walkthrough:

Before:

# Directory structure in the PR
samples/
└── sample99/
    └── template.json

After:

# Expected directory structure after applying the suggestion
samples/
└── sample99/
    ├── template.json
    └── corresponding_image.jpg

Suggestion importance[1-10]: 10

__

Why: This suggestion correctly identifies a critical omission; the PR is unusable without the corresponding image file, failing to meet its primary objective.

High
  • [ ] Update