Online Admission From

    Skill Development & Technical Education

    Application for Trade Admission

    Please complete every field marked in the form below. Fields with an upload box require a clear scanned copy or photograph.

    Trade & Candidate

    1

    2

    3

    Day

    Month

    Year

    4


    Identification

    5


    6


    7


    8


    9

    Background

    10

    11


    12





    Minority:

    Bank Details (Student)

    13




    Qualification

    Level

    Board / Institution

    Year

    Marks / Grade

    Below Madhyamik

    Madhyamik or Equivalent

    Higher Secondary or 12th

    Technical Qualification

    Uploads

    Passport Size Photo

    JPG / PNG, one file


    Qualification Marksheet Photos

    JPG / PNG, multiple files


    ▸ application.json

    ${thumbs.join('')}

    `;
    root.getElementById('marksheetStatus').textContent = `✓ ${files.length} file${files.length>1?'s':''} selected`;
    });

    form.addEventListener('submit', function(e){
    e.preventDefault();
    const fd = new FormData(form);

    const community = fd.getAll('community');

    const qualification = {};
    root.querySelectorAll('#qualTableBody tr').forEach(tr=>{
    const level = tr.getAttribute('data-level');
    const inputs = tr.querySelectorAll('input');
    qualification[level] = {
    institution: inputs[0].value || "",
    year: inputs[1].value || "",
    marks: inputs[2].value || ""
    };
    });

    const payload = {
    tradeName: fd.get('tradeName') || "",
    fullName: fd.get('fullName') || "",
    dateOfBirth: {
    day: fd.get('dobDay') || "",
    month: fd.get('dobMonth') || "",
    year: fd.get('dobYear') || ""
    },
    gender: fd.get('gender') || "",
    aadharNumber: fd.get('aadhar') || "",
    kanyashreeNo: fd.get('kanyashree') || "",
    fatherHusbandName: fd.get('fatherName') || "",
    motherName: fd.get('motherName') || "",
    address: fd.get('address') || "",
    pinCode: fd.get('pinCode') || "",
    contactStudent: fd.get('contactStudent') || "",
    contactGuardian: fd.get('contactGuardian') || "",
    email: fd.get('email') || "",
    nationality: fd.get('nationality') || "",
    physicallyHandicapped: fd.get('physicallyHandicapped') || "",
    community: community,
    minority: fd.get('minority') || "",
    bankDetails: {
    accountNo: fd.get('acNo') || "",
    ifsc: fd.get('ifsc') || "",
    bankName: fd.get('bankName') || "",
    branchName: fd.get('branchName') || ""
    },
    qualification: qualification,
    uploads: {
    passportPhoto: photoData ? { name: photoData.name, type: photoData.type, size: photoData.size, dataUrl: "[base64 omitted for display]" } : null,
    qualificationMarksheets: marksheetData.map(m => ({ name: m.name, type: m.type, size: m.size, dataUrl: "[base64 omitted for display]" }))
    }
    };

    const wrap = root.getElementById('json-output-wrap');
    wrap.classList.add('show');
    root.getElementById('jsonPanel').textContent = JSON.stringify(payload, null, 2);
    wrap.scrollIntoView({ behavior: 'smooth', block: 'start' });

    // keep full base64 available on window for actual downstream use
    window.__tradeApplicationPayloadFull = Object.assign({}, payload, {
    uploads: {
    passportPhoto: photoData,
    qualificationMarksheets: marksheetData
    }
    });
    });

    root.getElementById('copyJsonBtn').addEventListener('click', function(){
    const text = root.getElementById('jsonPanel').textContent;
    navigator.clipboard && navigator.clipboard.writeText(text);
    this.textContent = 'Copied!';
    setTimeout(()=>{ this.textContent = 'Copy JSON'; }, 1500);
    });
    })();

    Scroll to Top