YogiPWD

Machinery Scrutiny

Tender Evaluation Tool - Participant Selection Mode

🏗️ Tender Evaluation Tool

Initializing System...

Data Management (JSON)

1. Contractor Database

TypeAgeOwnedHiredAction

2. Project Requirements

TypeMin QtyMax HiredMax AgeAction

3. Live Evaluation Workflow

🏗️ Tender Evaluation Tool – System Documentation

This tool is a web-based tender evaluation system designed for civil engineering and infrastructure projects. It enables authorities to digitally assess contractor eligibility based on machinery requirements.


1. System Overview

The application consists of three major modules:

  • Contractor Database
  • Project Requirements
  • Evaluation Engine

All data is stored locally using browser Local Storage, making the tool fully offline and portable.


2. Data Storage Structure

let state = {
 contractors: [],
 projects: []
};

Contractor Object

{
 name: "ABC Infra",
 machinery: [
   { type, age, owned, hired }
 ]
}

Project Object

{
 name: "Highway Project",
 requirements: [
   { type, min, hired, age }
 ]
}

3. Contractor Management

Add / Update Machinery

Users input machinery details:

  • Machine type
  • Age
  • Owned quantity
  • Hired quantity

The system supports:

  • Adding new machines
  • Editing existing entries
  • Deleting records

Edit Logic

if (editIndex > -1) {
 tempMachines[editIndex] = machineData;
}

This enables in-place editing of machinery records.


4. Project Requirement Definition

Each project defines eligibility criteria:

  • Minimum required machines
  • Maximum allowed hired equipment
  • Maximum machine age
tempReqs.push({
 type,
 min,
 hired,
 age
});

These requirements act as evaluation rules.


5. Local Storage Persistence

Data is saved using:

localStorage.setItem('tender_cons', JSON.stringify(state.contractors));
localStorage.setItem('tender_projs', JSON.stringify(state.projects));

This ensures:

  • Data persistence across sessions
  • No backend dependency
  • Offline functionality

6. Dynamic UI Synchronization

Dropdowns update automatically:

updateDropdowns();

This synchronizes:

  • Contractor selection
  • Project selection
  • Evaluation participants

7. Evaluation Workflow

The evaluation process follows these steps:

  1. Select a project
  2. Select participating contractors
  3. Run evaluation

8. Core Evaluation Logic

The function performEval() compares contractor machinery against project requirements.

Step 1: Match Machine Type

const match = con.machinery.find(m => m.type === r.type)

Step 2: Quantity Check

if(total < r.min)

Step 3: Hired Limit Check

if(match.hired > r.hired)

Step 4: Age Check

if(match.age > r.age)

9. Decision Logic

A contractor is:

  • QUALIFIED → If all conditions pass
  • REJECTED → If any condition fails

Detailed logs are generated:

❌ Excavator: Shortage: 1/3 | Over_aged: 10/5

10. Reporting System

Results are displayed in a table:

  • Contractor Name
  • Status
  • Detailed evaluation remarks

11. Export Features

JSON Export

  • Backup contractors
  • Backup projects

PDF Export

doc.autoTable({ html: '#results-table' });

Generates a professional evaluation report.

Excel Export

  • Converts table to CSV format
  • Downloads as Excel-compatible file

12. Import Functionality

Users can restore data using JSON files:

reader.readAsText(file);

This supports:

  • Data migration
  • Backup restoration
  • Multi-system usage

13. Delete & Reset Operations

  • Delete individual contractor
  • Delete project templates
  • Wipe entire database
localStorage.clear();

Used for complete system reset.


14. Engineering Significance

  • Ensures transparent tender evaluation
  • Eliminates manual bias
  • Standardizes qualification criteria
  • Speeds up scrutiny process
  • Improves auditability

15. Key Advantages

  • Fully offline tool
  • No server required
  • Easy to use interface
  • Accurate rule-based evaluation
  • Exportable reports

Post a Comment

0 Comments