Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
7 views7 pages

HTML Code

immediate ,lefvel of coding

Uploaded by

jayasuryarsj1409
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views7 pages

HTML Code

immediate ,lefvel of coding

Uploaded by

jayasuryarsj1409
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 7

<!

DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>AI-Driven Natural Disaster Prediction & Management System</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0 1rem;
background: #f5f8fa;
color: #333;
}
header {
background: #00529B;
color: white;
padding: 1rem;
text-align: center;
}
h1, h2 {
margin-bottom: 0.5rem;
}
section {
background: white;
margin: 1rem 0;
padding: 1rem;
border-radius: 8px;
box-shadow: 0 0 6px #ccc;
}
.alert {
padding: 1rem;
margin: 1rem 0;
border-radius: 6px;
font-weight: bold;
color: white;
display: flex;
align-items: center;
gap: 1rem;
}
.alert.low { background-color: #2e7d32; } /* green */
.alert.medium { background-color: #f9a825; } /* amber */
.alert.high { background-color: #c62828; } /* red */
button {
background: #00529B;
color: white;
border: none;
border-radius: 5px;
padding: 0.5rem 1rem;
cursor: pointer;
transition: background 0.3s;
}
button:hover {
background: #003f75;
}
label {
display: block;
margin: 0.5rem 0 0.25rem;
}
input, select, textarea {
width: 100%;
padding: 0.4rem;
border: 1px solid #ccc;
border-radius: 4px;
}
#map {
height: 300px;
border-radius: 6px;
margin-top: 0.5rem;
border: 1px solid #aaa;
}
.shelter-list {
margin-top: 0.5rem;
}
.shelter-item {
border: 1px solid #ccc;
padding: 0.5rem;
border-radius: 4px;
margin-bottom: 0.5rem;
display: flex;
justify-content: space-between;
align-items: center;
}
footer {
text-align: center;
font-size: 0.8rem;
color: #777;
margin: 2rem 0;
}
</style>
</head>
<body>
<header>
<h1>AI-Driven Natural Disaster Prediction & Management System</h1>
<p>Inclusive disaster prediction, alerts, evacuation & recovery</p>
</header>

<!-- AI Prediction & Alert System -->


<section>
<h2>Disaster Prediction & Alerts</h2>
<p>Simulated AI-generated disaster prediction based on historic and real-time
data.</p>
<button id="predictBtn">Run Disaster Prediction</button>
<div id="alertArea" aria-live="polite" role="alert" style="margin-
top:1rem;"></div>
</section>

<!-- Evacuation Route Mapping -->


<section>
<h2>Evacuation Route Mapping</h2>
<p>Dynamic route updates based on simulated road conditions.</p>
<label for="userLocation">Select Your Location:</label>
<select id="userLocation">
<option value="coastalTown">Coastal Town</option>
<option value="riversideVillage">Riverside Village</option>
<option value="urbanArea">Urban Area</option>
</select>
<button id="showRouteBtn">Show Evacuation Route</button>
<div id="map" aria-label="Map showing evacuation routes"></div>
</section>

<!-- Shelter Locator & Booking -->


<section>
<h2>Shelter Locator & Booking</h2>
<p>Find and book a shelter near you.</p>
<label for="shelterSelect">Available Shelters:</label>
<select id="shelterSelect" aria-label="List of shelters">
<!-- Options populated by JS -->
</select>
<button id="bookShelterBtn">Book Shelter</button>
<div id="bookingStatus" role="status" style="margin-top:0.5rem;"></div>
</section>

<!-- Community Reporting -->


<section>
<h2>Community Damage Reporting</h2>
<p>Report broken roads, power outages, or missing persons.</p>
<form id="reportForm" aria-label="Damage report form">
<label for="reportType">Report Type:</label>
<select id="reportType" required>
<option value="">Select type</option>
<option value="road">Broken Road</option>
<option value="power">Power Outage</option>
<option value="missing">Missing Person</option>
<option value="other">Other</option>
</select>

<label for="reportDesc">Description:</label>
<textarea id="reportDesc" rows="3" placeholder="Describe the issue"
required></textarea>

<button type="submit">Submit Report</button>


</form>
<div id="reportStatus" role="status" style="margin-top:0.5rem;"></div>
</section>

<footer>
&copy; 2024 Natural Disaster Management Project
</footer>

<script>
// Simulated disaster data and alerts
const disasterLevels = ['low', 'medium', 'high'];
const disasterMessages = {
low: 'Low risk: Stay informed and prepare for possible weather changes.',
medium: 'Medium risk: Monitor alerts closely and start preparing evacuation
kit.',
high: 'High risk: Immediate evacuation advised. Follow route and shelter
instructions!'
};
const alertColors = { low: 'low', medium: 'medium', high: 'high' };

// Voice alert - multilingual (only English demo here)


function speakAlert(message) {
if (!('speechSynthesis' in window)) return;
const utterance = new SpeechSynthesisUtterance(message);
utterance.lang = 'en-US';
window.speechSynthesis.speak(utterance);
}

// Mock AI disaster prediction function


function runPrediction() {
// Randomly select a disaster level for demo
const index = Math.floor(Math.random() * disasterLevels.length);
return disasterLevels[index];
}

// Display alert with visual and voice


function showAlert(level) {
const alertArea = document.getElementById('alertArea');
alertArea.className = 'alert ' + alertColors[level];
alertArea.textContent = disasterMessages[level];
speakAlert(disasterMessages[level]);
alertArea.setAttribute('aria-label', 'Disaster alert: ' +
disasterMessages[level]);
}

document.getElementById('predictBtn').addEventListener('click', () => {
const level = runPrediction();
showAlert(level);
});

// Shelter data simulation


const shelters = [
{ id: 's1', name: 'Community Shelter 1', capacity: 20, booked: 10, priority:
['elderly', 'children', 'disabled'] },
{ id: 's2', name: 'Town Hall Shelter', capacity: 15, booked: 15, priority:
['general'] },
{ id: 's3', name: 'School Gym Shelter', capacity: 25, booked: 5, priority:
['general', 'elderly'] }
];

function populateShelters() {
const select = document.getElementById('shelterSelect');
select.innerHTML = '';
shelters.forEach(shelter => {
const available = shelter.capacity - shelter.booked;
const option = document.createElement('option');
option.value = shelter.id;
option.textContent = \\${shelter.name} - Available spots: \${available >
0 ? available : 0}\;
if (available <= 0) option.disabled = true;
select.appendChild(option);
});
}
populateShelters();

document.getElementById('bookShelterBtn').addEventListener('click', () => {
const select = document.getElementById('shelterSelect');
const bookingStatus = document.getElementById('bookingStatus');
const shelter = shelters.find(s => s.id === select.value);
if (!shelter) {
bookingStatus.textContent = 'Please select a shelter.';
return;
}
const available = shelter.capacity - shelter.booked;
if (available > 0) {
shelter.booked++;
bookingStatus.textContent = \Successfully booked \${shelter.name}. Stay
safe!\;
populateShelters();
} else {
bookingStatus.textContent = 'Selected shelter is full. Please choose
another.';
}
});

// Community reporting form submission simulation


document.getElementById('reportForm').addEventListener('submit', e => {
e.preventDefault();
const type = document.getElementById('reportType').value;
const desc = document.getElementById('reportDesc').value.trim();
const status = document.getElementById('reportStatus');

if (!type || !desc) {
status.textContent = 'Please fill out all fields.';
return;
}

// Simulate sending report to authorities


status.textContent = 'Submitting your report...';
setTimeout(() => {
status.textContent = 'Report submitted successfully. Authorities will
review and respond soon.';
e.target.reset();
}, 1500);
});

// Google Maps integration for evacuation routes


let map;
let directionsRenderer;
let directionsService;

// Coordinates for locations and shelters (simplified)


const locations = {
coastalTown: { lat: 11.0, lng: 79.8 },
riversideVillage: { lat: 10.7, lng: 79.9 },
urbanArea: { lat: 11.4, lng: 79.7 }
};

const shelterLocations = {
'Community Shelter 1': { lat: 11.01, lng: 79.81 },
'Town Hall Shelter': { lat: 10.69, lng: 79.91 },
'School Gym Shelter': { lat: 11.41, lng: 79.69 }
};

function initMap() {
const defaultCenter = { lat: 11.0, lng: 79.8 };
map = new google.maps.Map(document.getElementById('map'), {
zoom: 11,
center: defaultCenter
});

directionsService = new google.maps.DirectionsService();


directionsRenderer = new google.maps.DirectionsRenderer({ map: map });
}

// Show route from user location to nearest available shelter


function showRoute() {
const userLocKey = document.getElementById('userLocation').value;
const userLoc = locations[userLocKey];
if (!userLoc) return;

const availableShelters = shelters.filter(shelter => (shelter.capacity -


shelter.booked) > 0);
if (availableShelters.length === 0) {
alert('No shelters available currently.');
return;
}

// Find nearest shelter with simple distance formula


function distance(loc1, loc2) {
return Math.sqrt(Math.pow(loc1.lat - loc2.lat, 2) + Math.pow(loc1.lng -
loc2.lng, 2));
}
let nearestShelter = availableShelters[0];
let minDist = distance(userLoc, shelterLocations[nearestShelter.name]);
for (let i = 1; i < availableShelters.length; i++) {
const dist = distance(userLoc,
shelterLocations[availableShelters[i].name]);
if (dist < minDist) {
nearestShelter = availableShelters[i];
minDist = dist;
}
}

const shelterLoc = shelterLocations[nearestShelter.name];

// Plot route with Directions API if possible, else just markers and polyline
const request = {
origin: userLoc,
destination: shelterLoc,
travelMode: google.maps.TravelMode.DRIVING
};
directionsService.route(request, function(result, status) {
if (status === 'OK') {
directionsRenderer.setDirections(result);
} else {
// On error just center map and place markers with line
directionsRenderer.set('directions', null);
map.setCenter(userLoc);
map.setZoom(12);
// Clear previous markers
if (window.userMarker) window.userMarker.setMap(null);
if (window.shelterMarker) window.shelterMarker.setMap(null);
if (window.routePolyline) window.routePolyline.setMap(null);

window.userMarker = new google.maps.Marker({


position: userLoc,
map: map,
title: 'Your Location',
icon: 'http://maps.google.com/mapfiles/ms/icons/blue-dot.png'
});
window.shelterMarker = new google.maps.Marker({
position: shelterLoc,
map: map,
title: 'Shelter: ' + nearestShelter.name,
icon: 'http://maps.google.com/mapfiles/ms/icons/green-dot.png'
});
window.routePolyline = new google.maps.Polyline({
path: [userLoc, shelterLoc],
geodesic: true,
strokeColor: '#00529B',
strokeOpacity: 0.8,
strokeWeight: 6,
map: map
});
}
});
}

document.getElementById('showRouteBtn').addEventListener('click', showRoute);
</script>

<!-- Google Maps JS API include: Replace YOUR_API_KEY with actual API Key -->
<script async defer
src="https://maps.googleapis.com/maps/api/js?
key=YOUR_API_KEY&callback=initMap">
</script>
</body>
</html>

You might also like