safetyguardian-sentinel / safety-checklist.html
balaji-detect's picture
Generate interface for incidents, compliance, reports and training page as well
0cf5ea8 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Safety Checklist | Safety Sentinel</title>
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://unpkg.com/feather-icons"></script>
<script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.waves.min.js"></script>
</head>
<body class="bg-gray-50">
<div id="vanta-bg" class="fixed inset-0 -z-10"></div>
<!-- Navigation -->
<nav class="bg-white bg-opacity-90 backdrop-blur-md border-b border-gray-200 fixed w-full z-10">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex justify-between h-16">
<div class="flex items-center">
<div class="flex-shrink-0 flex items-center">
<i data-feather="shield" class="h-8 w-8 text-blue-600"></i>
<span class="ml-2 text-xl font-bold text-gray-900">Safety Sentinel</span>
</div>
</div>
<div class="flex items-center">
<a href="index.html" class="text-gray-600 hover:text-gray-900 px-3 py-2 rounded-md text-sm font-medium">Back to Dashboard</a>
</div>
</div>
</div>
</nav>
<!-- Main Form -->
<div class="pt-24 pb-12 px-4 sm:px-6 lg:px-8 max-w-3xl mx-auto">
<div class="bg-white p-8 rounded-lg shadow">
<h1 class="text-2xl font-bold text-gray-900 mb-6">Safety Inspection Checklist</h1>
<form>
<div class="mb-8">
<label for="location" class="block text-sm font-medium text-gray-700 mb-1">Location</label>
<input type="text" id="location" class="mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm" placeholder="Building 4, North Processing Unit">
</div>
<div class="mb-8">
<label for="inspector" class="block text-sm font-medium text-gray-700 mb-1">Inspector</label>
<input type="text" id="inspector" class="mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm" placeholder="Your name">
</div>
<div class="mb-8">
<label for="date" class="block text-sm font-medium text-gray-700 mb-1">Date</label>
<input type="date" id="date" class="mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm">
</div>
<div class="divide-y divide-gray-200">
<div class="py-4">
<h2 class="text-lg font-medium text-gray-900 mb-4">PPE Compliance</h2>
<div class="space-y-4">
<div class="flex items-center justify-between">
<label class="block text-sm font-medium text-gray-700">All personnel wearing required PPE</label>
<div class="flex space-x-4">
<div class="flex items-center">
<input id="ppe-1-yes" name="ppe-1" type="radio" class="h-4 w-4 text-green-600 focus:ring-green-500 border-gray-300">
<label for="ppe-1-yes" class="ml-2 block text-sm text-gray-700">Yes</label>
</div>
<div class="flex items-center">
<input id="ppe-1-no" name="ppe-1" type="radio" class="h-4 w-4 text-red-600 focus:ring-red-500 border-gray-300">
<label for="ppe-1-no" class="ml-2 block text-sm text-gray-700">No</label>
</div>
<div class="flex items-center">
<input id="ppe-1-na" name="ppe-1" type="radio" class="h-4 w-4 text-gray-600 focus:ring-gray-500 border-gray-300">
<label for="ppe-1-na" class="ml-2 block text-sm text-gray-700">N/A</label>
</div>
</div>
</div>
<div class="flex items-center justify-between">
<label class="block text-sm font-medium text-gray-700">PPE in good condition</label>
<div class="flex space-x-4">
<div class="flex items-center">
<input id="ppe-2-yes" name="ppe-2" type="radio" class="h-4 w-4 text-green-600 focus:ring-green-500 border-gray-300">
<label for="ppe-2-yes" class="ml-2 block text-sm text-gray-700">Yes</label>
</div>
<div class="flex items-center">
<input id="ppe-2-no" name="ppe-2" type="radio" class="h-4 w-4 text-red-600 focus:ring-red-500 border-gray-300">
<label for="ppe-2-no" class="ml-2 block text-sm text-gray-700">No</label>
</div>
<div class="flex items-center">
<input id="ppe-2-na" name="ppe-2" type="radio" class="h-4 w-4 text-gray-600 focus:ring-gray-500 border-gray-300">
<label for="ppe-2-na" class="ml-2 block text-sm text-gray-700">N/A</label>
</div>
</div>
</div>
<div class="flex items-center justify-between">
<label class="block text-sm font-medium text-gray-700">Proper storage of PPE</label>
<div class="flex space-x-4">
<div class="flex items-center">
<input id="ppe-3-yes" name="ppe-3" type="radio" class="h-4 w-4 text-green-600 focus:ring-green-500 border-gray-300">
<label for="ppe-3-yes" class="ml-2 block text-sm text-gray-700">Yes</label>
</div>
<div class="flex items-center">
<input id="ppe-3-no" name="ppe-3" type="radio" class="h-4 w-4 text-red-600 focus:ring-red-500 border-gray-300">
<label for="ppe-3-no" class="ml-2 block text-sm text-gray-700">No</label>
</div>
<div class="flex items-center">
<input id="ppe-3-na" name="ppe-3" type="radio" class="h-4 w-4 text-gray-600 focus:ring-gray-500 border-gray-300">
<label for="ppe-3-na" class="ml-2 block text-sm text-gray-700">N/A</label>
</div>
</div>
</div>
</div>
</div>
<div class="py-4">
<h2 class="text-lg font-medium text-gray-900 mb-4">Equipment Safety</h2>
<div class="space-y-4">
<div class="flex items-center justify-between">
<label class="block text-sm font-medium text-gray-700">Equipment properly guarded</label>
<div class="flex space-x-4">
<div class="flex items-center">
<input id="equip-1-yes" name="equip-1" type="radio" class="h-4 w-4 text-green-600 focus:ring-green-500 border-gray-300">
<label for="equip-1-yes" class="ml-2 block text-sm text-gray-700">Yes</label>
</div>
<div class="flex items-center">
<input id="equip-1-no" name="equip-1" type="radio" class="h-4 w-4 text-red-600 focus:ring-red-500 border-gray-300">
<label for="equip-1-no" class="ml-2 block text-sm text-gray-700">No</label>
</div>
<div class="flex items-center">
<input id="equip-1-na" name="equip-1" type="radio" class="h-4 w-4 text-gray-600 focus:ring-gray-500 border-gray-300">
<label for="equip-1-na" class="ml-2 block text-sm text-gray-700">N/A</label>
</div>
</div>
</div>
<div class="flex items-center justify-between">
<label class="block text-sm font-medium text-gray-700">LOTO procedures followed</label>
<div class="flex space-x-4">
<div class="flex items-center">
<input id="equip-2-yes" name="equip-2" type="radio" class="h-4 w-4 text-green-600 focus:ring-green-500 border-gray-300">
<label for="equip-2-yes" class="ml-2 block text-sm text-gray-700">Yes</label>
</div>
<div class="flex items-center">
<input id="equip-2-no" name="equip-2" type="radio" class="h-4 w-4 text-red-600 focus:ring-red-500 border-gray-300">
<label for="equip-2-no" class="ml-2 block text-sm text-gray-700">No</label>
</div>
<div class="flex items-center">
<input id="equip-2-na" name="equip-2" type="radio" class="h-4 w-4 text-gray-600 focus:ring-gray-500 border-gray-300">
<label for="equip-2-na" class="ml-2 block text-sm text-gray-700">N/A</label>
</div>
</div>
</div>
<div class="flex items-center justify-between">
<label class="block text-sm font-medium text-gray-700">Equipment in good working condition</label>
<div class="flex space-x-4">
<div class="flex items-center">
<input id="equip-3-yes" name="equip-3" type="radio" class="h-4 w-4 text-green-600 focus:ring-green-500 border-gray-300">
<label for="equip-3-yes" class="ml-2 block text-sm text-gray-700">Yes</label>
</div>
<div class="flex items-center">
<input id="equip-3-no" name="equip-3" type="radio" class="h-4 w-4 text-red-600 focus:ring-red-500 border-gray-300">
<label for="equip-3-no" class="ml-2 block text-sm text-gray-700">No</label>
</div>
<div class="flex items-center">
<input id="equip-3-na" name="equip-3" type="radio" class="h-4 w-4 text-gray-600 focus:ring-gray-500 border-gray-300">
<label for="equip-3-na" class="ml-2 block text-sm text-gray-700">N/A</label>
</div>
</div>
</div>
</div>
</div>
<div class="py-4">
<h2 class="text-lg font-medium text-gray-900 mb-4">Hazardous Materials</h2>
<div class="space-y-4">
<div class="flex items-center justify-between">
<label class="block text-sm font-medium text-gray-700">Proper labeling of containers</label>
<div class="flex space-x-4">
<div class="flex items-center">
<input id="hazmat-1-yes" name="hazmat-1" type="radio" class="h-4 w-4 text-green-600 focus:ring-green-500 border-gray-300">
<label for="hazmat-1-yes" class="ml-2 block text-sm text-gray-700">Yes</label>
</div>
<div class="flex items-center">
<input id="hazmat-1-no" name="hazmat-1" type="radio" class="h-4 w-4 text-red-600 focus:ring-red-500 border-gray-300">
<label for="hazmat-1-no" class="ml-2 block text-sm text-gray-700">No</label>
</div>
<div class="flex items-center">
<input id="hazmat-1-na" name="hazmat-1" type="radio" class="h-4 w-4 text-gray-600 focus:ring-gray-500 border-gray-300">
<label for="hazmat-1-na" class="ml-2 block text-sm text-gray-700">N/A</label>
</div>
</div>
</div>
<div class="flex items-center justify-between">
<label class="block text-sm font-medium text-gray-700">MSDS/SDS available</label>
<div class="flex space-x-4">
<div class="flex items-center">
<input id="hazmat-2-yes" name="hazmat-2" type="radio" class="h-4 w-4 text-green-600 focus:ring-green-500 border-gray-300">
<label for="hazmat-2-yes" class="ml-2 block text-sm text-gray-700">Yes</label>
</div>
<div class="flex items-center">
<input id="hazmat-2-no" name="hazmat-2" type="radio" class="h-4 w-4 text-red-600 focus:ring-red-500 border-gray-300">
<label for="hazmat-2-no" class="ml-2 block text-sm text-gray-700">No</label>
</div>
<div class="flex items-center">
<input id="hazmat-2-na" name="hazmat-2" type="radio" class="h-4 w-4 text-gray-600 focus:ring-gray-500 border-gray-300">
<label for="hazmat-2-na" class="ml-2 block text-sm text-gray-700">N/A</label>
</div>
</div>
</div>
<div class="flex items-center justify-between">
<label class="block text-sm font-medium text-gray-700">Proper storage of hazardous materials</label>
<div class="flex space-x-4">
<div class="flex items-center">
<input id="hazmat-3-yes" name="hazmat-3" type="radio" class="h-4 w-4 text-green-600 focus:ring-green-500 border-gray-300">
<label for="hazmat-3-yes" class="ml-2 block text-sm text-gray-700">Yes</label>
</div>
<div class="flex items-center">
<input id="hazmat-3-no" name="hazmat-3" type="radio" class="h-4 w-4 text-red-600 focus:ring-red-500 border-gray-300">
<label for="hazmat-3-no" class="ml-2 block text-sm text-gray-700">No</label>
</div>
<div class="flex items-center">
<input id="hazmat-3-na" name="hazmat-3" type="radio" class="h-4 w-4 text-gray-600 focus:ring-gray-500 border-gray-300">
<label for="hazmat-3-na" class="ml-2 block text-sm text-gray-700">N/A</label>
</div>
</div>
</div>
</div>
</div>
<div class="py-4">
<h2 class="text-lg font-medium text-gray-900 mb-4">Emergency Preparedness</h2>
<div class="space-y-4">
<div class="flex items-center justify-between">
<label class="block text-sm font-medium text-gray-700">Emergency exits unobstructed</label>
<div class="flex space-x-4">
<div class="flex items-center">
<input id="emerg-1-yes" name="emerg-1" type="radio" class="h-4 w-4 text-green-600 focus:ring-green-500 border-gray-300">
<label for="emerg-1-yes" class="ml-2 block text-sm text-gray-700">Yes</label>
</div>
<div class="flex items-center">
<input id="emerg-1-no" name="emerg-1" type="radio" class="h-4 w-4 text-red-600 focus:ring-red-500 border-gray-300">
<label for="emerg-1-no" class="ml-2 block text-sm text-gray-700">No</label>
</div>
<div class="flex items-center">
<input id="emerg-1-na" name="emerg-1" type="radio" class="h-4 w-4 text-gray-600 focus:ring-gray-500 border-gray-300">
<label for="emerg-1-na" class="ml-2 block text-sm text-gray-700">N/A</label>
</div>
</div>
</div>
<div class="flex items-center justify-between">
<label class="block text-sm font-medium text-gray-700">Fire extinguishers charged and accessible</label>
<div class="flex space-x-4">
<div class="flex items-center">
<input id="emerg-2-yes" name="emerg-2" type="radio" class="h-4 w-4 text-green-600 focus:ring-green-500 border-gray-300">
<label for="emerg-2-yes" class="ml-2 block text-sm text-gray-700">Yes</label>
</div>
<div class="flex items-center">
<input id="emerg-2-no" name="emerg-2" type="radio" class="h-4 w-4 text-red-600 focus:ring-red-500 border-gray-300">
<label for="emerg-2-no" class="ml-2 block text-sm text-gray-700">No</label>
</div>
<div class="flex items-center">
<input id="emerg-2-na" name="emerg-2" type="radio" class="h-4 w-4 text-gray-600 focus:ring-gray-500 border-gray-300">
<label for="emerg-2-na" class="ml-2 block text-sm text-gray-700">N/A</label>
</div>
</div>
</div>
<div class="flex items-center justify-between">
<label class="block text-sm font-medium text-gray-700">First aid kits fully stocked</label>
<div class="flex space-x-4">
<div class="flex items-center">
<input id="emerg-3-yes" name="emerg-3" type="radio" class="h-4 w-4 text-green-600 focus:ring-green-500 border-gray-300">
<label for="emerg-3-yes" class="ml-2 block text-sm text-gray-700">Yes</label>
</div>
<div class="flex items-center">
<input id="emerg-3-no" name="emerg-3" type="radio" class="h-4 w-4 text-red-600 focus:ring-red-500 border-gray-300">
<label for="emerg-3-no" class="ml-2 block text-sm text-gray-700">No</label>
</div>
<div class="flex items-center">
<input id="emerg-3-na" name="emerg-3" type="radio" class="h-4 w-4 text-gray-600 focus:ring-gray-500 border-gray-300">
<label for="emerg-3-na" class="ml-2 block text-sm text-gray-700">N/A</label>
</div>
</div>
</div>
</div>
</div>
<div class="py-4">
<label for="notes" class="block text-sm font-medium text-gray-700 mb-1">Additional Notes</label>
<textarea id="notes" rows="4" class="mt-1 block w-full border border-gray-300 rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm" placeholder="Any additional observations or comments"></textarea>
</div>
<div class="py-4">
<label class="block text-sm font-medium text-gray-700 mb-1">Attach Photos (if applicable)</label>
<div class="mt-1 flex justify-center px-6 pt-5 pb-6 border-2 border-gray-300 border-dashed rounded-md">
<div class="space-y-1 text-center">
<div class="flex text-sm text-gray-600">
<label for="file-upload" class="relative cursor-pointer bg-white rounded-md font-medium text-blue-600 hover:text-blue-500 focus-within:outline-none">
<span>Upload files</span>
<input id="file-upload" name="file-upload" type="file" class="sr-only" multiple>
</label>
<p class="pl-1">or drag and drop</p>
</div>
<p class="text-xs text-gray-500">PNG, JPG up to 10MB</p>
</div>
</div>
</div>
<div class="flex justify-end space-x-3 pt-6">
<button type="button" class="bg-white py-2 px-4 border border-gray-300 rounded-md shadow-sm text-sm font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
Cancel
</button>
<button type="submit" class="inline-flex justify-center py-2 px-4 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
Submit Inspection
</button>
</div>
</div>
</form>
</div>
</div>
<script>
feather.replace();
VANTA.WAVES({
el: "#vanta-bg",
color: 0x172b4d,
waveHeight: 15.00,
waveSpeed: 0.75,
zoom: 0.8
});
</script>
</body>
</html>