From 699cdd3ffe6aebe06b9a31abe771cd32ae3d2efc Mon Sep 17 00:00:00 2001 From: AJITHKUMAR12 <48044092+AJITHKUMAR12@users.noreply.github.com> Date: Tue, 12 May 2026 10:26:03 +0530 Subject: [PATCH] Enhancement for all three reports under child survey --- .../Service/ChildrenSurveyService.java | 322 ++++++++++-- .../modules/childrensurvey/childlist.html | 480 +++++++++++++++--- .../modules/childrensurvey/surveylist.html | 250 +++++++-- .../childrensurvey/surveyorsreports.html | 210 +++++++- 4 files changed, 1130 insertions(+), 132 deletions(-) diff --git a/gcc_officer_portal/src/main/java/in/gov/chennaicorporation/gccoffice/childrensurvey/Service/ChildrenSurveyService.java b/gcc_officer_portal/src/main/java/in/gov/chennaicorporation/gccoffice/childrensurvey/Service/ChildrenSurveyService.java index 22b73cc4..f77189c5 100644 --- a/gcc_officer_portal/src/main/java/in/gov/chennaicorporation/gccoffice/childrensurvey/Service/ChildrenSurveyService.java +++ b/gcc_officer_portal/src/main/java/in/gov/chennaicorporation/gccoffice/childrensurvey/Service/ChildrenSurveyService.java @@ -180,36 +180,51 @@ public class ChildrenSurveyService { public Map getSurveyDetails(String surveyId) { String sql = """ - SELECT - csr.qid, - csr.answer, - csr.others_answer, - csr.cby, - csr.survey_id, + SELECT + csr.qid, + csr.answer, + csr.others_answer, + csr.cby, + csr.survey_id, - cqm.q_english, - cqm.question_type, - cqm.master_table_name, - cqm.field_name + cqm.q_english, + cqm.question_type, + cqm.master_table_name, + cqm.field_name, cqm.Flag - FROM child_survey_response csr - INNER JOIN child_survey_questions_master cqm - ON csr.qid = cqm.qid + FROM child_survey_response csr - WHERE csr.isactive = 1 - AND csr.isdelete = 0 - AND csr.survey_id = ? + INNER JOIN child_survey_questions_master cqm + ON csr.qid = cqm.qid + + WHERE csr.isactive = 1 + AND csr.isdelete = 0 + AND csr.survey_id = ? - ORDER BY cqm.orderby + ORDER BY cqm.orderby """; List> responseList = jdbcTemplate.queryForList(sql, surveyId); Map finalResponse = new LinkedHashMap<>(); + Map personalInfo = new LinkedHashMap<>(); + Map locationInfo = new LinkedHashMap<>(); + Map educationInfo = new LinkedHashMap<>(); + Map documentInfo = new LinkedHashMap<>(); + Map healthInfo = new LinkedHashMap<>(); + Map vulnerabilityInfo = new LinkedHashMap<>(); + for (Map row : responseList) { + Integer qid = row.get("qid") != null + ? Integer.parseInt(row.get("qid").toString()) + : 0; + String flag = row.get("Flag") != null + ? row.get("Flag").toString() + : ""; + String question = row.get("q_english") != null ? row.get("q_english").toString() : ""; @@ -231,16 +246,89 @@ public class ChildrenSurveyService { masterTable, rawAnswer); - finalResponse.put(question, finalAnswer); + // PERSONAL INFORMATION + /* + * if (qid >= 6 && qid <= 24) { + * + * personalInfo.put(question, finalAnswer); + * } + * + * // LOCATION DETAILS + * else if (qid >= 1 && qid <= 5) { + * + * locationInfo.put(question, finalAnswer); + * } + * + * // EDUCATION DETAILS + * else if (qid >= 25 && qid <= 38) { + * + * educationInfo.put(question, finalAnswer); + * } + * + * // HEALTH + * else if (qid >= 39 && qid <= 40) { + * + * healthInfo.put(question, finalAnswer); + * } + * + * // DOCUMENT + * else if (qid >= 41 && qid <= 47) { + * + * documentInfo.put(question, finalAnswer); + * } + * + * // VULNERABILITY + * else if (qid >= 48 && qid <= 52) { + * + * vulnerabilityInfo.put(question, finalAnswer); + * } + */ + if ("A".equalsIgnoreCase(flag)) { + + locationInfo.put(question, finalAnswer); + } + + // PERSONAL INFORMATION + else if ("P".equalsIgnoreCase(flag)) { + + personalInfo.put(question, finalAnswer); + } + + // EDUCATION DETAILS + else if ("E".equalsIgnoreCase(flag)) { + + educationInfo.put(question, finalAnswer); + } + + // HEALTH DETAILS + else if ("H".equalsIgnoreCase(flag)) { + + healthInfo.put(question, finalAnswer); + } + + // DOCUMENT DETAILS + else if ("D".equalsIgnoreCase(flag)) { + + documentInfo.put(question, finalAnswer); + } + + // VULNERABILITY DETAILS + else if ("V".equalsIgnoreCase(flag)) { + + vulnerabilityInfo.put(question, finalAnswer); + } } + finalResponse.put("personalInformation", personalInfo); + finalResponse.put("locationDetails", locationInfo); + finalResponse.put("educationDetails", educationInfo); + finalResponse.put("healthDetails", healthInfo); + finalResponse.put("documentDetails", documentInfo); + finalResponse.put("vulnerabilityDetails", vulnerabilityInfo); + return finalResponse; } - // ========================================= - // ANSWER RESOLVER - // ========================================= - private String resolveAnswer( String questionType, String masterTable, @@ -248,25 +336,37 @@ public class ChildrenSurveyService { try { - if (rawAnswer == null || rawAnswer.isEmpty()) { + if (rawAnswer == null || rawAnswer.trim().isEmpty()) { return ""; } - // TEXT + // DIRECT TEXT TYPES if ("text".equalsIgnoreCase(questionType) || "textarea".equalsIgnoreCase(questionType) - || "number".equalsIgnoreCase(questionType)) { + || "number".equalsIgnoreCase(questionType) + || "number_text".equalsIgnoreCase(questionType) + || "number_mobile".equalsIgnoreCase(questionType) + || "number_aadhar".equalsIgnoreCase(questionType) + || "date".equalsIgnoreCase(questionType)) { return rawAnswer; } + // CHECK WHETHER VALUE IS NUMERIC + boolean isNumeric = rawAnswer.matches("\\d+(,\\d+)*"); + // RADIO if ("radio".equalsIgnoreCase(questionType)) { + // Already stored as text + if (!isNumeric) { + return rawAnswer; + } + String sql = """ - SELECT english_name - FROM child_survey_answer_master - WHERE aid = ? + SELECT english_name + FROM child_survey_answer_master + WHERE aid = ? """; return jdbcTemplate.queryForObject( @@ -278,14 +378,19 @@ public class ChildrenSurveyService { // MULTICHECK if ("multicheck".equalsIgnoreCase(questionType)) { + // Already stored as text + if (!isNumeric) { + return rawAnswer; + } + String[] ids = rawAnswer.split(","); List values = new ArrayList<>(); String sql = """ - SELECT english_name - FROM child_survey_answer_master - WHERE aid = ? + SELECT english_name + FROM child_survey_answer_master + WHERE aid = ? """; for (String id : ids) { @@ -305,6 +410,11 @@ public class ChildrenSurveyService { if (masterTable != null && !masterTable.isEmpty()) { + // Already stored as text + if (!isNumeric) { + return rawAnswer; + } + String dynamicSql = "SELECT english_name FROM " + masterTable + " WHERE id = ?"; @@ -323,6 +433,156 @@ public class ChildrenSurveyService { return rawAnswer; } + /* + * public Map getSurveyDetails(String surveyId) { + * + * String sql = """ + * SELECT + * csr.qid, + * csr.answer, + * csr.others_answer, + * csr.cby, + * csr.survey_id, + * + * cqm.q_english, + * cqm.question_type, + * cqm.master_table_name, + * cqm.field_name + * + * FROM child_survey_response csr + * + * INNER JOIN child_survey_questions_master cqm + * ON csr.qid = cqm.qid + * + * WHERE csr.isactive = 1 + * AND csr.isdelete = 0 + * AND csr.survey_id = ? + * + * ORDER BY cqm.orderby + * """; + * + * List> responseList = jdbcTemplate.queryForList(sql, + * surveyId); + * + * Map finalResponse = new LinkedHashMap<>(); + * + * for (Map row : responseList) { + * + * String question = row.get("q_english") != null + * ? row.get("q_english").toString() + * : ""; + * + * String questionType = row.get("question_type") != null + * ? row.get("question_type").toString() + * : ""; + * + * String masterTable = row.get("master_table_name") != null + * ? row.get("master_table_name").toString() + * : ""; + * + * String rawAnswer = row.get("answer") != null + * ? row.get("answer").toString() + * : ""; + * + * String finalAnswer = resolveAnswer( + * questionType, + * masterTable, + * rawAnswer); + * + * finalResponse.put(question, finalAnswer); + * } + * + * return finalResponse; + * } + */ + + // ========================================= + // ANSWER RESOLVER + // ========================================= + + /* + * private String resolveAnswer( + * String questionType, + * String masterTable, + * String rawAnswer) { + * + * try { + * + * if (rawAnswer == null || rawAnswer.isEmpty()) { + * return ""; + * } + * + * // TEXT + * if ("text".equalsIgnoreCase(questionType) + * || "textarea".equalsIgnoreCase(questionType) + * || "number".equalsIgnoreCase(questionType)) { + * + * return rawAnswer; + * } + * + * // RADIO + * if ("radio".equalsIgnoreCase(questionType)) { + * + * String sql = """ + * SELECT english_name + * FROM child_survey_answer_master + * WHERE aid = ? + * """; + * + * return jdbcTemplate.queryForObject( + * sql, + * String.class, + * Integer.parseInt(rawAnswer)); + * } + * + * // MULTICHECK + * if ("multicheck".equalsIgnoreCase(questionType)) { + * + * String[] ids = rawAnswer.split(","); + * + * List values = new ArrayList<>(); + * + * String sql = """ + * SELECT english_name + * FROM child_survey_answer_master + * WHERE aid = ? + * """; + * + * for (String id : ids) { + * + * String value = jdbcTemplate.queryForObject( + * sql, + * String.class, + * Integer.parseInt(id.trim())); + * + * values.add(value); + * } + * + * return String.join(", ", values); + * } + * + * // DROPDOWN + * if (masterTable != null + * && !masterTable.isEmpty()) { + * + * String dynamicSql = "SELECT english_name FROM " + * + masterTable + * + " WHERE id = ?"; + * + * return jdbcTemplate.queryForObject( + * dynamicSql, + * String.class, + * Integer.parseInt(rawAnswer)); + * } + * + * } catch (Exception e) { + * + * e.printStackTrace(); + * } + * + * return rawAnswer; + * } + */ public List> getSurveyorsList( String name, String area, diff --git a/gcc_officer_portal/src/main/resources/templates/modules/childrensurvey/childlist.html b/gcc_officer_portal/src/main/resources/templates/modules/childrensurvey/childlist.html index b5c8381f..8c46523e 100644 --- a/gcc_officer_portal/src/main/resources/templates/modules/childrensurvey/childlist.html +++ b/gcc_officer_portal/src/main/resources/templates/modules/childrensurvey/childlist.html @@ -13,6 +13,8 @@ border-radius: 10px; } + + #surveyModal .modal-header { background-color: #f8f9fa; border-bottom: 2px solid #007bff; @@ -74,6 +76,99 @@ padding: 20px; } } + + #surveyModal .modal-dialog { + max-width: 75%; + } + + #surveyModal .modal-content { + border-radius: 12px; + overflow: hidden; + } + + #surveyModal .modal-header { + background: #44506A; + color: white; + border: none; + } + + #surveyModal .modal-title { + font-size: 32px; + font-weight: 600; + } + + #surveyModal .modal-body { + padding: 30px; + background: #f7f8fa; + } + + + .detail-card { + background: #fff; + border-radius: 12px; + padding: 14px 18px; + border: 1px solid #e9ecef; + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04); + height: 100%; + } + + .detail-label { + font-size: 13px; + font-weight: 700; + color: #7f8c8d; + text-transform: uppercase; + line-height: 1.5; + } + + .detail-value { + font-size: 16px; + font-weight: 600; + color: #2c3e50; + line-height: 1.6; + word-break: break-word; + } + + .section-heading { + font-size: 24px; + font-weight: 700; + margin-bottom: 20px; + padding-bottom: 10px; + border-bottom: 2px solid #e5e7eb; + color: #2c3e50; + } + + + + .section-heading { + font-size: 20px; + font-weight: 700; + margin-bottom: 20px; + padding-bottom: 10px; + border-bottom: 2px solid #e74c3c; + color: #2c3e50; + } + + .detail-card { + background: white; + border-radius: 10px; + padding: 15px 18px; + height: 100%; + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05); + border: 1px solid #edf0f2; + } + + + + @media(max-width:768px) { + + #surveyModal .modal-dialog { + max-width: 95%; + } + + .detail-card { + margin-bottom: 10px; + } + } @@ -127,13 +222,13 @@ -
+
@@ -155,9 +250,7 @@
-
- - +
-
- -
- - - - - - - - - - - - - - - - - - - - - -
DateSurvey IDNameGenderAgeMobileAreaEducationAction
-
+
+ + +
+
- - +
- + + + +
+
@@ -338,12 +502,37 @@ // 🔹 Load dropdowns when page loads loadDropdowns(); - fetchSurveyData(); + fetchSurveyData(true); // 🔹 (Optional) Load table initially // fetchSurveyData(); + // Restrict To Date based on From Date + $("#fromDate").on("change", function () { + + let fromDate = $(this).val(); + + // Set minimum selectable date for To Date + $("#toDate").attr("min", fromDate); + + // If current To Date is less than From Date, clear it + if ($("#toDate").val() < fromDate) { + $("#toDate").val(''); + } + }); }); + function resetFilters() { + $("#searchName").val(''); + $("#gender").val(''); + $("#age").val(''); + $("#area").val(''); + $("#education").val(''); + $("#fromDate").val(''); + $("#toDate").val(''); + + // Re-load table with all data + fetchSurveyData(true); + } function viewSurvey(surveyId) { @@ -351,23 +540,142 @@ url: "/gcc/api/children-survey/details", type: "GET", data: { surveyId: surveyId }, - success: function (data) { + let html = ""; + function buildSection(title, sectionData) { + + let sectionHtml = ` + +
+ +
+ ${title} +
+ +
+ `; + + let keys = Object.keys(sectionData); + + keys.forEach(function (key) { + + sectionHtml += ` + +
+ +
+ +
+ ${key} +
+ +
+ ${sectionData[key] || '-'} +
+ +
+ +
+ `; + + }); + + sectionHtml += ` +
+
+ `; + + return sectionHtml; + } + + /*function buildSection(title, sectionData) { + + let sectionHtml = ` +
+ +
+ ${title} +
+ `; + + Object.keys(sectionData).forEach(function (key) { + + sectionHtml += ` +
+ +
+ ${key} +
+ +
+ : ${sectionData[key] || ''} +
+ +
+ `; + }); + + sectionHtml += `
`; + + return sectionHtml; + }*/ + + html += buildSection( + "Personal Information", + data.personalInformation + ); + + html += buildSection( + "Location Details", + data.locationDetails + ); + + html += buildSection( + "Education Details", + data.educationDetails + ); + + html += buildSection( + "Health Details", + data.healthDetails + ); + + html += buildSection( + "Document Details", + data.documentDetails + ); + + html += buildSection( + "Vulnerability Details", + data.vulnerabilityDetails + ); + + $("#surveyDetails").html(html); + + let modal = new bootstrap.Modal( + document.getElementById('surveyModal') + ); + + modal.show(); + } + + /*success: function (data) { + let html = ""; Object.keys(data).forEach(function (key) { html += ` -
-
- ${key} -
-
- : ${data[key]} -
-
- `; +
+
+ ${key} +
+
+ : ${data[key]} +
+
+ `; }); $("#surveyDetails").html(html); @@ -375,10 +683,62 @@ // Show modal let modal = new bootstrap.Modal(document.getElementById('surveyModal')); modal.show(); - } + }*/ }); } - function fetchSurveyData() { + function fetchSurveyData(isInitialLoad = false) { + + + var gender = $("#gender").val(); + var age = $("#age").val(); + var area = $("#area").val(); + var education = $("#education").val(); + var fromDate = $("#fromDate").val(); + var toDate = $("#toDate").val(); + + // SHOW SWAL ONLY WHEN SEARCH BUTTON CLICKED + if (!isInitialLoad && + + gender == '' && + age == '' && + area == '' && + education == '' && + fromDate == '' && + toDate == '') { + + Swal.fire({ + icon: 'warning', + title: 'Warning', + text: 'Please select at least one filter.', + confirmButtonColor: '#3085d6' + }); + + return; + } + if (fromDate != '') { + if (toDate == '') { + Swal.fire({ + icon: 'warning', + title: 'Warning', + text: 'Please select both from date and to date.', + confirmButtonColor: '#3085d6' + }); + return; + } + } + if (toDate != '') { + if (fromDate == '') { + Swal.fire({ + icon: 'warning', + title: 'Warning', + text: 'Please select both from date and to date.', + confirmButtonColor: '#3085d6' + }); + return; + } + } + + $.ajax({ url: "/gcc/api/children-survey/list", @@ -450,6 +810,8 @@ ], responsive: true, destroy: true + + }); } }); diff --git a/gcc_officer_portal/src/main/resources/templates/modules/childrensurvey/surveylist.html b/gcc_officer_portal/src/main/resources/templates/modules/childrensurvey/surveylist.html index a11aee6d..56395a25 100644 --- a/gcc_officer_portal/src/main/resources/templates/modules/childrensurvey/surveylist.html +++ b/gcc_officer_portal/src/main/resources/templates/modules/childrensurvey/surveylist.html @@ -111,14 +111,14 @@ -
+
@@ -151,12 +151,22 @@ +
+ + + + + +
+
+ +
@@ -413,12 +423,147 @@ // 🔹 Load dropdowns when page loads loadDropdowns(); //fetchSurveyData(); - loadSurveyors(); + loadSurveyors(true); + // 🔹 (Optional) Load table initially // fetchSurveyData(); + // Restrict To Date based on From Date + $("#fromDate").on("change", function () { + + let fromDate = $(this).val(); + + // Set minimum selectable date for To Date + $("#toDate").attr("min", fromDate); + + // If current To Date is less than From Date, clear it + if ($("#toDate").val() < fromDate) { + $("#toDate").val(''); + } + }); }); + function resetFilters() { + + // reset all dropdowns + $("#zone").val(''); + $("#area").val(''); + + // reset date + $("#fromDate").val(''); + $("#toDate").val(''); + + // reload table + loadSurveyors(true); + } + //using flag + function viewChildSurvey(surveyId) { + + $.ajax({ + + url: "/gcc/api/children-survey/details", + + type: "GET", + + data: { + surveyId: surveyId + }, + + success: function (data) { + + let html = ""; + + function buildSection(title, sectionData) { + + let sectionHtml = ` + +
+ +
+ ${title} +
+ +
+ `; + + Object.keys(sectionData).forEach(function (key) { + + sectionHtml += ` + +
+ +
+ +
+ ${key} +
+ +
+ ${sectionData[key] || '-'} +
+ +
+ +
+ `; + }); + + sectionHtml += ` +
+ +
+ `; + + return sectionHtml; + } + + html += buildSection( + "Personal Information", + data.personalInformation + ); + + html += buildSection( + "Location Details", + data.locationDetails + ); + + html += buildSection( + "Education Details", + data.educationDetails + ); + + html += buildSection( + "Health Details", + data.healthDetails + ); + + html += buildSection( + "Document Details", + data.documentDetails + ); + + html += buildSection( + "Vulnerability Details", + data.vulnerabilityDetails + ); + + $("#surveyDetails").html(html); + + let modal = new bootstrap.Modal( + document.getElementById('surveyModal') + ); + + modal.show(); + }, + + error: function (xhr) { + + console.log(xhr); + + alert("Unable to fetch survey details"); + } + }); + } function viewSurvey1(loginId, locationId, surveyDate) { if ($.fn.DataTable.isDataTable('#surveyTable')) { @@ -450,35 +595,35 @@ $.each(data, function (i, row) { tbody += ` - + ${formatDate(row.survey_date)} - ${row.survey_id || ''} + ${row.survey_id || ''} - ${row.child_name || ''} + ${row.child_name || ''} - ${row.gender || ''} + ${row.gender || ''} - ${row.age || ''} + ${row.age || ''} - ${row.mobile_number || ''} + ${row.mobile_number || ''} - ${row.area || ''} + ${row.area || ''} - ${row.education || ''} + ${row.education || ''} - + - + - + - - `; + + `; }); $("#surveyTable tbody").html(tbody); @@ -514,7 +659,8 @@ } }); } - function viewChildSurvey(surveyId) { + //static qid not flag + /*function viewChildSurvey(surveyId) { $.ajax({ @@ -533,18 +679,18 @@ Object.keys(data).forEach(function (key) { html += ` -
+
-
- ${key} -
+
+ ${key} +
-
- : ${data[key] || ''} -
+
+ : ${data[key] || ''} +
-
- `; +
+ `; }); $("#surveyDetails").html(html); @@ -564,10 +710,52 @@ alert("Unable to fetch survey details"); } }); - } + }*/ - function loadSurveyors() { + function loadSurveyors(isInitialLoad = false) { + var area = $("#area").val(); + var fromDate = $("#fromDate").val(); + var toDate = $("#toDate").val(); + + // SHOW SWAL ONLY WHEN SEARCH BUTTON CLICKED + if (!isInitialLoad && + area == '' && + fromDate == '' && + toDate == '') { + + Swal.fire({ + icon: 'warning', + title: 'Warning', + text: 'Please select at least one filter.', + confirmButtonColor: '#3085d6' + }); + + return; + } + + if (fromDate != '') { + if (toDate == '') { + Swal.fire({ + icon: 'warning', + title: 'Warning', + text: 'Please select both from date and to date.', + confirmButtonColor: '#3085d6' + }); + return; + } + } + if (toDate != '') { + if (fromDate == '') { + Swal.fire({ + icon: 'warning', + title: 'Warning', + text: 'Please select both from date and to date.', + confirmButtonColor: '#3085d6' + }); + return; + } + } if ($.fn.DataTable.isDataTable('#surveyorTable')) { $('#surveyorTable').DataTable().destroy(); diff --git a/gcc_officer_portal/src/main/resources/templates/modules/childrensurvey/surveyorsreports.html b/gcc_officer_portal/src/main/resources/templates/modules/childrensurvey/surveyorsreports.html index 25675b00..ab727c18 100644 --- a/gcc_officer_portal/src/main/resources/templates/modules/childrensurvey/surveyorsreports.html +++ b/gcc_officer_portal/src/main/resources/templates/modules/childrensurvey/surveyorsreports.html @@ -84,15 +84,18 @@ background: #fff; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08); min-height: 160px; - height: 160px; + /*height: 160px;*/ } - .dashboard-card .card-body { + /*.dashboard-card .card-body { display: flex; flex-direction: column; justify-content: center; align-items: center; height: 100%; + }*/ + .dashboard-card .card-body { + padding: 20px; } .dashboard-card .card-title { @@ -111,6 +114,61 @@ font-weight: 700; margin-top: 10px; } + + /* AREA CARD SCROLL */ + + /* AREA WISE FIXED SCROLL CARD */ + + /* AREA WISE CARD FIXED HEIGHT */ + + /*.area-scroll-card { + height: 500px !important; + overflow: hidden !important; + } + + + + .area-scroll-card .card-body { + height: 100% !important; + overflow-y: auto !important; + overflow-x: hidden !important; + padding-right: 10px; + } + + + + .area-scroll-card .card-body::-webkit-scrollbar { + width: 6px; + } + + .area-scroll-card .card-body::-webkit-scrollbar-thumb { + background: #bdbdbd; + border-radius: 10px; + } + + .area-scroll-card { + height: 500px; + } + + #areaWiseDiv { + max-height: 380px; + overflow-y: auto; + overflow-x: hidden; + padding-right: 8px; + } + + + + #areaWiseDiv::-webkit-scrollbar { + width: 6px; + } + + #areaWiseDiv::-webkit-scrollbar-thumb { + background: #bdbdbd; + border-radius: 10px; + } + + */ @@ -174,7 +232,7 @@ -
+ +
+ +
+
+
+
+ Total Surveyed Children +
+ +

+ 0 +

+
+
+
+ +
+
+
+
+ Areas Covered +
+ +

+ 0 +

+
+
+
+ +
+
+
+
+ Gender - Male +
+ +

+ 0 +

+
+
+
+ +
+
+
+
+ Gender - Female +
+ +

+ 0 +

+
+
+
+ +
+
+
+
+ Currently Studying +
+ +

+ 0 +

+
+
+
+
@@ -339,29 +470,39 @@
-
+ +
-
+
-
- Area-wise Distribution -
-
+
+ Area-wise Distribution +
+ +
+
+ + +
- +
@@ -378,6 +519,53 @@
+
--> +
+ + +
+ +
+ +
+ +
+ Area-wise Distribution +
+ +
+
+ +
+ +
+ +
+ + +
+ +
+ +
+ +
+ Vulnerability Assessment +
+ +
+ +
+ +
+ +
+