Spaces:
Running
Running
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Aerodynamics Laboratory | TecQuipment Research Facility</title> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet"> | |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |
| <style> | |
| body { | |
| font-family: 'Inter', sans-serif; | |
| scroll-behavior: smooth; | |
| } | |
| .hero-gradient { | |
| background: linear-gradient(135deg, #1e3a8a 0%, #0284c7 100%); | |
| } | |
| .equipment-card:hover { | |
| transform: translateY(-5px); | |
| box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); | |
| } | |
| .language-switcher { | |
| transition: all 0.3s ease; | |
| } | |
| .language-switcher:hover { | |
| transform: scale(1.05); | |
| } | |
| .nav-link { | |
| position: relative; | |
| } | |
| .nav-link:after { | |
| content: ''; | |
| position: absolute; | |
| width: 0; | |
| height: 2px; | |
| bottom: -2px; | |
| left: 0; | |
| background-color: #3b82f6; | |
| transition: width 0.3s ease; | |
| } | |
| .nav-link:hover:after { | |
| width: 100%; | |
| } | |
| .active-nav:after { | |
| width: 100%; | |
| } | |
| .spec-icon { | |
| width: 24px; | |
| height: 24px; | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| margin-right: 8px; | |
| color: #3b82f6; | |
| } | |
| </style> | |
| </head> | |
| <body class="bg-gray-50"> | |
| <!-- Language Switcher --> | |
| <div class="fixed top-4 right-4 z-50 flex space-x-2"> | |
| <button onclick="switchLanguage('en')" class="language-switcher bg-white px-3 py-1 rounded-full shadow-md text-sm font-medium flex items-center"> | |
| <i class="fas fa-globe mr-1 text-blue-600"></i> EN | |
| </button> | |
| <button onclick="switchLanguage('fr')" class="language-switcher bg-white px-3 py-1 rounded-full shadow-md text-sm font-medium flex items-center"> | |
| <i class="fas fa-globe mr-1 text-blue-600"></i> FR | |
| </button> | |
| </div> | |
| <!-- Navigation --> | |
| <nav class="bg-white shadow-lg sticky top-0 z-40"> | |
| <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 class="fas fa-wind text-blue-600 text-2xl mr-2"></i> | |
| <span class="text-xl font-bold text-gray-900">AeroLab</span> | |
| </div> | |
| </div> | |
| <div class="hidden md:ml-6 md:flex md:items-center md:space-x-8"> | |
| <a href="#home" class="nav-link text-gray-900 inline-flex items-center px-1 pt-1 text-sm font-medium active-nav">Home</a> | |
| <a href="#about" class="nav-link text-gray-500 hover:text-gray-900 inline-flex items-center px-1 pt-1 text-sm font-medium">About</a> | |
| <a href="#equipment" class="nav-link text-gray-500 hover:text-gray-900 inline-flex items-center px-1 pt-1 text-sm font-medium">Equipment</a> | |
| <a href="#experiments" class="nav-link text-gray-500 hover:text-gray-900 inline-flex items-center px-1 pt-1 text-sm font-medium">Experiments</a> | |
| <a href="#gallery" class="nav-link text-gray-500 hover:text-gray-900 inline-flex items-center px-1 pt-1 text-sm font-medium">Gallery</a> | |
| <a href="#contact" class="nav-link text-gray-500 hover:text-gray-900 inline-flex items-center px-1 pt-1 text-sm font-medium">Contact</a> | |
| </div> | |
| <div class="-mr-2 flex items-center md:hidden"> | |
| <button type="button" onclick="toggleMobileMenu()" class="inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-blue-500" aria-controls="mobile-menu" aria-expanded="false"> | |
| <span class="sr-only">Open main menu</span> | |
| <i class="fas fa-bars text-xl"></i> | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Mobile menu --> | |
| <div class="hidden md:hidden" id="mobile-menu"> | |
| <div class="pt-2 pb-3 space-y-1"> | |
| <a href="#home" class="bg-blue-50 border-blue-500 text-blue-700 block pl-3 pr-4 py-2 border-l-4 text-base font-medium">Home</a> | |
| <a href="#about" class="border-transparent text-gray-600 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-800 block pl-3 pr-4 py-2 border-l-4 text-base font-medium">About</a> | |
| <a href="#equipment" class="border-transparent text-gray-600 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-800 block pl-3 pr-4 py-2 border-l-4 text-base font-medium">Equipment</a> | |
| <a href="#experiments" class="border-transparent text-gray-600 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-800 block pl-3 pr-4 py-2 border-l-4 text-base font-medium">Experiments</a> | |
| <a href="#gallery" class="border-transparent text-gray-600 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-800 block pl-3 pr-4 py-2 border-l-4 text-base font-medium">Gallery</a> | |
| <a href="#contact" class="border-transparent text-gray-600 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-800 block pl-3 pr-4 py-2 border-l-4 text-base font-medium">Contact</a> | |
| </div> | |
| </div> | |
| </nav> | |
| <!-- Hero Section --> | |
| <section id="home" class="hero-gradient text-white"> | |
| <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-20 md:py-32"> | |
| <div class="md:flex items-center"> | |
| <div class="md:w-1/2 mb-10 md:mb-0"> | |
| <h1 class="text-4xl md:text-5xl font-bold mb-6">Advanced Aerodynamics Research Laboratory</h1> | |
| <p class="text-xl mb-8 opacity-90">Equipped with state-of-the-art TecQuipment instruments for cutting-edge research in fluid mechanics, wind tunnel testing, and aerodynamic analysis.</p> | |
| <div class="flex flex-col sm:flex-row space-y-4 sm:space-y-0 sm:space-x-4"> | |
| <a href="#equipment" class="bg-white text-blue-600 hover:bg-gray-100 px-6 py-3 rounded-lg font-medium text-lg shadow-lg transition duration-300 flex items-center justify-center"> | |
| <i class="fas fa-microscope mr-2"></i> Explore Equipment | |
| </a> | |
| <a href="#" class="border-2 border-white text-white hover:bg-white hover:text-blue-600 px-6 py-3 rounded-lg font-medium text-lg shadow-lg transition duration-300 flex items-center justify-center"> | |
| <i class="fas fa-download mr-2"></i> Download Catalogue | |
| </a> | |
| </div> | |
| </div> | |
| <div class="md:w-1/2 flex justify-center"> | |
| <div class="relative w-full max-w-lg"> | |
| <img src="https://images.unsplash.com/photo-1606761568499-6d2451b23c66?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1074&q=80" alt="Wind Tunnel" class="rounded-xl shadow-2xl border-4 border-white transform rotate-1"> | |
| <div class="absolute -bottom-6 -right-6 bg-white p-4 rounded-lg shadow-xl"> | |
| <div class="flex items-center"> | |
| <div class="bg-blue-100 p-3 rounded-full mr-3"> | |
| <i class="fas fa-wind text-blue-600 text-xl"></i> | |
| </div> | |
| <div> | |
| <p class="text-sm text-gray-500">Current Research</p> | |
| <p class="font-bold text-gray-800">Boundary Layer Analysis</p> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- About Section --> | |
| <section id="about" class="py-20 bg-white"> | |
| <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <div class="text-center mb-16"> | |
| <h2 class="text-3xl font-bold text-gray-900 mb-4">About Our Laboratory</h2> | |
| <div class="w-20 h-1 bg-blue-600 mx-auto"></div> | |
| </div> | |
| <div class="md:flex mb-16"> | |
| <div class="md:w-1/2 mb-10 md:mb-0 md:pr-10"> | |
| <h3 class="text-2xl font-semibold text-gray-800 mb-4">Our History & Mission</h3> | |
| <p class="text-gray-600 mb-6">Established in 1995, the Aerodynamics Laboratory has been at the forefront of fluid mechanics research and education. Our mission is to advance the understanding of aerodynamic phenomena through experimental investigation while training the next generation of engineers and researchers.</p> | |
| <p class="text-gray-600">With over 25 years of operation, we've contributed to numerous industrial projects and academic publications, maintaining our position as a leading facility in aerodynamic testing and analysis.</p> | |
| </div> | |
| <div class="md:w-1/2"> | |
| <img src="https://images.unsplash.com/photo-1551288049-bebda4e38f71?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80" alt="Lab interior" class="rounded-lg shadow-lg"> | |
| </div> | |
| </div> | |
| <div class="bg-gray-50 rounded-xl p-8 shadow-inner"> | |
| <h3 class="text-2xl font-semibold text-gray-800 mb-6 text-center">Research Domains</h3> | |
| <div class="grid md:grid-cols-2 lg:grid-cols-4 gap-6"> | |
| <div class="bg-white p-6 rounded-lg shadow-md hover:shadow-lg transition duration-300"> | |
| <div class="text-blue-600 mb-4"> | |
| <i class="fas fa-fan text-3xl"></i> | |
| </div> | |
| <h4 class="font-bold text-lg mb-2">Wind Tunnel Testing</h4> | |
| <p class="text-gray-600">Subsonic and low-speed aerodynamic characterization of models and prototypes.</p> | |
| </div> | |
| <div class="bg-white p-6 rounded-lg shadow-md hover:shadow-lg transition duration-300"> | |
| <div class="text-blue-600 mb-4"> | |
| <i class="fas fa-water text-3xl"></i> | |
| </div> | |
| <h4 class="font-bold text-lg mb-2">Fluid Mechanics</h4> | |
| <p class="text-gray-600">Study of laminar and turbulent flows, boundary layers, and flow separation.</p> | |
| </div> | |
| <div class="bg-white p-6 rounded-lg shadow-md hover:shadow-lg transition duration-300"> | |
| <div class="text-blue-600 mb-4"> | |
| <i class="fas fa-project-diagram text-3xl"></i> | |
| </div> | |
| <h4 class="font-bold text-lg mb-2">CFD Validation</h4> | |
| <p class="text-gray-600">Experimental validation of computational fluid dynamics simulations.</p> | |
| </div> | |
| <div class="bg-white p-6 rounded-lg shadow-md hover:shadow-lg transition duration-300"> | |
| <div class="text-blue-600 mb-4"> | |
| <i class="fas fa-industry text-3xl"></i> | |
| </div> | |
| <h4 class="font-bold text-lg mb-2">Industrial Applications</h4> | |
| <p class="text-gray-600">Aerodynamic optimization for automotive, aerospace, and architectural applications.</p> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Equipment Catalogue --> | |
| <section id="equipment" class="py-20 bg-gray-50"> | |
| <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <div class="text-center mb-16"> | |
| <h2 class="text-3xl font-bold text-gray-900 mb-4">TecQuipment Equipment Catalogue</h2> | |
| <div class="w-20 h-1 bg-blue-600 mx-auto"></div> | |
| </div> | |
| <!-- Search and Filter --> | |
| <div class="mb-10 bg-white p-6 rounded-xl shadow-md"> | |
| <div class="md:flex items-center justify-between"> | |
| <div class="relative mb-4 md:mb-0 md:w-1/2"> | |
| <div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"> | |
| <i class="fas fa-search text-gray-400"></i> | |
| </div> | |
| <input type="text" id="search-equipment" placeholder="Search equipment by name or keyword..." class="pl-10 block w-full border border-gray-300 rounded-md py-2 px-3 focus:outline-none focus:ring-blue-500 focus:border-blue-500"> | |
| </div> | |
| <div class="flex space-x-2"> | |
| <select id="filter-category" class="border border-gray-300 rounded-md py-2 px-3 focus:outline-none focus:ring-blue-500 focus:border-blue-500"> | |
| <option value="">All Categories</option> | |
| <option value="wind-tunnel">Wind Tunnels</option> | |
| <option value="measurement">Measurement Systems</option> | |
| <option value="flow-visualization">Flow Visualization</option> | |
| <option value="data-acquisition">Data Acquisition</option> | |
| </select> | |
| <button onclick="resetFilters()" class="bg-gray-200 hover:bg-gray-300 text-gray-700 py-2 px-4 rounded-md flex items-center"> | |
| <i class="fas fa-redo mr-2"></i> Reset | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Equipment Grid --> | |
| <div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8" id="equipment-grid"> | |
| <!-- Equipment items will be dynamically inserted here --> | |
| </div> | |
| <!-- Export Button --> | |
| <div class="mt-12 text-center"> | |
| <button onclick="exportToPDF()" class="bg-blue-600 hover:bg-blue-700 text-white font-medium py-3 px-6 rounded-lg shadow-lg transition duration-300 flex items-center mx-auto"> | |
| <i class="fas fa-file-pdf mr-2"></i> Export Full Catalogue to PDF | |
| </button> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Experiments Section --> | |
| <section id="experiments" class="py-20 bg-white"> | |
| <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <div class="text-center mb-16"> | |
| <h2 class="text-3xl font-bold text-gray-900 mb-4">Available Experiments</h2> | |
| <div class="w-20 h-1 bg-blue-600 mx-auto"></div> | |
| </div> | |
| <div class="mb-10"> | |
| <div class="flex flex-wrap justify-center gap-2 mb-8"> | |
| <button onclick="filterExperiments('all')" class="experiment-filter-btn bg-blue-600 text-white px-4 py-2 rounded-full text-sm font-medium">All Experiments</button> | |
| <button onclick="filterExperiments('undergraduate')" class="experiment-filter-btn bg-gray-200 hover:bg-gray-300 text-gray-700 px-4 py-2 rounded-full text-sm font-medium">Undergraduate</button> | |
| <button onclick="filterExperiments('graduate')" class="experiment-filter-btn bg-gray-200 hover:bg-gray-300 text-gray-700 px-4 py-2 rounded-full text-sm font-medium">Graduate</button> | |
| <button onclick="filterExperiments('research')" class="experiment-filter-btn bg-gray-200 hover:bg-gray-300 text-gray-700 px-4 py-2 rounded-full text-sm font-medium">Research</button> | |
| <button onclick="filterExperiments('industrial')" class="experiment-filter-btn bg-gray-200 hover:bg-gray-300 text-gray-700 px-4 py-2 rounded-full text-sm font-medium">Industrial</button> | |
| </div> | |
| <div class="bg-gray-50 rounded-xl p-6"> | |
| <div class="overflow-x-auto"> | |
| <table class="min-w-full divide-y divide-gray-200"> | |
| <thead class="bg-gray-100"> | |
| <tr> | |
| <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Experiment</th> | |
| <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Equipment</th> | |
| <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Level</th> | |
| <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Duration</th> | |
| <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Details</th> | |
| </tr> | |
| </thead> | |
| <tbody class="bg-white divide-y divide-gray-200" id="experiments-table"> | |
| <!-- Experiment rows will be dynamically inserted here --> | |
| </tbody> | |
| </table> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Gallery Section --> | |
| <section id="gallery" class="py-20 bg-gray-50"> | |
| <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <div class="text-center mb-16"> | |
| <h2 class="text-3xl font-bold text-gray-900 mb-4">Laboratory Gallery</h2> | |
| <div class="w-20 h-1 bg-blue-600 mx-auto"></div> | |
| </div> | |
| <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6"> | |
| <div class="group relative overflow-hidden rounded-lg shadow-lg"> | |
| <img src="https://images.unsplash.com/photo-1581092921461-39b2f1c9f740?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80" alt="Lab equipment" class="w-full h-64 object-cover transition duration-500 group-hover:scale-110"> | |
| <div class="absolute inset-0 bg-gradient-to-t from-black/60 to-transparent flex items-end p-6"> | |
| <div> | |
| <p class="text-sm text-white/80">Wind Tunnel Testing</p> | |
| <h3 class="text-xl font-bold text-white">AF100 in Operation</h3> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="group relative overflow-hidden rounded-lg shadow-lg"> | |
| <img src="https://images.unsplash.com/photo-1581094271901-8022df4466f9?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80" alt="Students working" class="w-full h-64 object-cover transition duration-500 group-hover:scale-110"> | |
| <div class="absolute inset-0 bg-gradient-to-t from-black/60 to-transparent flex items-end p-6"> | |
| <div> | |
| <p class="text-sm text-white/80">Student Research</p> | |
| <h3 class="text-xl font-bold text-white">Hands-on Learning</h3> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="group relative overflow-hidden rounded-lg shadow-lg"> | |
| <img src="https://images.unsplash.com/photo-1581093057306-d3074c157a4a?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80" alt="Flow visualization" class="w-full h-64 object-cover transition duration-500 group-hover:scale-110"> | |
| <div class="absolute inset-0 bg-gradient-to-t from-black/60 to-transparent flex items-end p-6"> | |
| <div> | |
| <p class="text-sm text-white/80">Flow Analysis</p> | |
| <h3 class="text-xl font-bold text-white">Smoke Visualization</h3> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="group relative overflow-hidden rounded-lg shadow-lg"> | |
| <img src="https://images.unsplash.com/photo-1581094271900-2a5cb7f3a119?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D3D&auto=format&fit=crop&w=1074&q=80" alt="Data analysis" class="w-full h-64 object-cover transition duration-500 group-hover:scale-110"> | |
| <div class="absolute inset-0 bg-gradient-to-t from-black/60 to-transparent flex items-end p-6"> | |
| <div> | |
| <p class="text-sm text-white/80">Data Processing</p> | |
| <h3 class="text-xl font-bold text-white">Results Analysis</h3> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="group relative overflow-hidden rounded-lg shadow-lg"> | |
| <img src="https://images.unsplash.com/photo-1581094271901-8022df4466f9?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80" alt="Equipment setup" class="w-full h-64 object-cover transition duration-500 group-hover:scale-110"> | |
| <div class="absolute inset-0 bg-gradient-to-t from-black/60 to-transparent flex items-end p-6"> | |
| <div> | |
| <p class="text-sm text-white/80">Equipment Setup</p> | |
| <h3 class="text-xl font-bold text-white">Precision Instrumentation</h3> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="group relative overflow-hidden rounded-lg shadow-lg"> | |
| <img src="https://images.unsplash.com/photo-1581093057306-d3074c157a4a?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80" alt="Team meeting" class="w-full h-64 object-cover transition duration-500 group-hover:scale-110"> | |
| <div class="absolute inset-0 bg-gradient-to-t from-black/60 to-transparent flex items-end p-6"> | |
| <div> | |
| <p class="text-sm text-white/80">Research Team</p> | |
| <h3 class="text-xl font-bold text-white">Collaborative Work</h3> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Contact Section --> | |
| <section id="contact" class="py-20 bg-white"> | |
| <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <div class="text-center mb-16"> | |
| <h2 class="text-3xl font-bold text-gray-900 mb-4">Contact Our Laboratory</h2> | |
| <div class="w-20 h-1 bg-blue-600 mx-auto"></div> | |
| </div> | |
| <div class="md:flex"> | |
| <div class="md:w-1/2 mb-10 md:mb-0 md:pr-10"> | |
| <h3 class="text-2xl font-semibold text-gray-800 mb-6">Get In Touch</h3> | |
| <div class="space-y-6"> | |
| <div class="flex items-start"> | |
| <div class="flex-shrink-0 bg-blue-100 p-3 rounded-full"> | |
| <i class="fas fa-map-marker-alt text-blue-600"></i> | |
| </div> | |
| <div class="ml-4"> | |
| <h4 class="text-lg font-medium text-gray-900">Location</h4> | |
| <p class="mt-1 text-gray-600">Department of Mechanical Engineering<br>University Campus, Building 12<br>1234 Science Avenue</p> | |
| </div> | |
| </div> | |
| <div class="flex items-start"> | |
| <div class="flex-shrink-0 bg-blue-100 p-3 rounded-full"> | |
| <i class="fas fa-envelope text-blue-600"></i> | |
| </div> | |
| <div class="ml-4"> | |
| <h4 class="text-lg font-medium text-gray-900">Email</h4> | |
| <p class="mt-1 text-gray-600">aerolab@university.edu</p> | |
| </div> | |
| </div> | |
| <div class="flex items-start"> | |
| <div class="flex-shrink-0 bg-blue-100 p-3 rounded-full"> | |
| <i class="fas fa-phone-alt text-blue-600"></i> | |
| </div> | |
| <div class="ml-4"> | |
| <h4 class="text-lg font-medium text-gray-900">Phone</h4> | |
| <p class="mt-1 text-gray-600">+1 (555) 123-4567</p> | |
| </div> | |
| </div> | |
| <div class="flex items-start"> | |
| <div class="flex-shrink-0 bg-blue-100 p-3 rounded-full"> | |
| <i class="fas fa-clock text-blue-600"></i> | |
| </div> | |
| <div class="ml-4"> | |
| <h4 class="text-lg font-medium text-gray-900">Hours</h4> | |
| <p class="mt-1 text-gray-600">Monday - Friday: 8:00 AM - 6:00 PM<br>Saturday: 9:00 AM - 1:00 PM</p> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="mt-10"> | |
| <h4 class="text-lg font-medium text-gray-900 mb-4">Lab Team</h4> | |
| <div class="flex space-x-4"> | |
| <div class="text-center"> | |
| <img src="https://randomuser.me/api/portraits/women/44.jpg" alt="Lab director" class="w-16 h-16 rounded-full mx-auto mb-2"> | |
| <p class="text-sm font-medium">Dr. Sarah Johnson</p> | |
| <p class="text-xs text-gray-500">Lab Director</p> | |
| </div> | |
| <div class="text-center"> | |
| <img src="https://randomuser.me/api/portraits/men/32.jpg" alt="Technician" class="w-16 h-16 rounded-full mx-auto mb-2"> | |
| <p class="text-sm font-medium">Abdel Belka</p> | |
| <p class="text-xs text-gray-500">Senior Technician</p> | |
| </div> | |
| <div class="text-center"> | |
| <img src="https://randomuser.me/api/portraits/women/68.jpg" alt="Assistant" class="w-16 h-16 rounded-full mx-auto mb-2"> | |
| <p class="text-sm font-medium">Emily Rodriguez</p> | |
| <p class="text-xs text-gray-500">Research Assistant</p> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="md:w-1/2"> | |
| <div class="bg-gray-50 rounded-xl p-8 shadow-md"> | |
| <h3 class="text-2xl font-semibold text-gray-800 mb-6">Send Us a Message</h3> | |
| <form> | |
| <div class="mb-6"> | |
| <label for="name" class="block text-sm font-medium text-gray-700 mb-1">Full Name</label> | |
| <input type="text" id="name" class="w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"> | |
| </div> | |
| <div class="mb-6"> | |
| <label for="email" class="block text-sm font-medium text-gray-700 mb-1">Email Address</label> | |
| <input type="email" id="email" class="w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"> | |
| </div> | |
| <div class="mb-6"> | |
| <label for="subject" class="block text-sm font-medium text-gray-700 mb-1">Subject</label> | |
| <select id="subject" class="w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"> | |
| <option value="">Select a subject</option> | |
| <option value="equipment">Equipment Inquiry</option> | |
| <option value="booking">Lab Booking</option> | |
| <option value="research">Research Collaboration</option> | |
| <option value="other">Other</option> | |
| </select> | |
| </div> | |
| <div class="mb-6"> | |
| <label for="message" class="block text-sm font-medium text-gray-700 mb-1">Message</label> | |
| <textarea id="message" rows="5" class="w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"></textarea> | |
| </div> | |
| <button type="submit" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-medium py-3 px-4 rounded-md shadow-lg transition duration-300"> | |
| Send Message | |
| </button> | |
| </form> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Footer --> | |
| <footer class="bg-gray-900 text-white py-12"> | |
| <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <div class="md:flex md:justify-between"> | |
| <div class="mb-8 md:mb-0"> | |
| <div class="flex items-center"> | |
| <i class="fas fa-wind text-blue-400 text-2xl mr-2"></i> | |
| <span class="text-xl font-bold">AeroLab</span> | |
| </div> | |
| <p class="mt-4 text-gray-400 max-w-xs">Advanced Aerodynamics Research Laboratory equipped with TecQuipment instruments for education and research.</p> | |
| </div> | |
| <div class="grid grid-cols-2 md:grid-cols-3 gap-8"> | |
| <div> | |
| <h3 class="text-sm font-semibold text-gray-300 uppercase tracking-wider mb-4">Navigation</h3> | |
| <ul class="space-y-2"> | |
| <li><a href="#home" class="text-gray-400 hover:text-white transition">Home</a></li> | |
| <li><a href="#about" class="text-gray-400 hover:text-white transition">About</a></li> | |
| <li><a href="#equipment" class="text-gray-400 hover:text-white transition">Equipment</a></li> | |
| <li><a href="#experiments" class="text-gray-400 hover:text-white transition">Experiments</a></li> | |
| <li><a href="#contact" class="text-gray-400 hover:text-white transition">Contact</a></li> | |
| </ul> | |
| </div> | |
| <div> | |
| <h3 class="text-sm font-semibold text-gray-300 uppercase tracking-wider mb-4">Resources</h3> | |
| <ul class="space-y-2"> | |
| <li><a href="#" class="text-gray-400 hover:text-white transition">Equipment Manuals</a></li> | |
| <li><a href="#" class="text-gray-400 hover:text-white transition">Research Papers</a></li> | |
| <li><a href="#" class="text-gray-400 hover:text-white transition">Safety Protocols</a></li> | |
| <li><a href="#" class="text-gray-400 hover:text-white transition">Booking System</a></li> | |
| </ul> | |
| </div> | |
| <div> | |
| <h3 class="text-sm font-semibold text-gray-300 uppercase tracking-wider mb-4">Connect</h3> | |
| <div class="flex space-x-4"> | |
| <a href="#" class="text-gray-400 hover:text-white transition"> | |
| <i class="fab fa-twitter text-xl"></i> | |
| </a> | |
| <a href="#" class="text-gray-400 hover:text-white transition"> | |
| <i class="fab fa-linkedin text-xl"></i> | |
| </a> | |
| <a href="#" class="text-gray-400 hover:text-white transition"> | |
| <i class="fab fa-researchgate text-xl"></i> | |
| </a> | |
| <a href="#" class="text-gray-400 hover:text-white transition"> | |
| <i class="fab fa-youtube text-xl"></i> | |
| </a> | |
| </div> | |
| <div class="mt-4"> | |
| <p class="text-sm text-gray-400">Subscribe to our newsletter</p> | |
| <div class="mt-2 flex"> | |
| <input type="email" placeholder="Your email" class="px-3 py-2 bg-gray-800 text-white rounded-l-md focus:outline-none focus:ring-1 focus:ring-blue-500 w-full"> | |
| <button class="bg-blue-600 hover:bg-blue-700 px-4 py-2 rounded-r-md"> | |
| <i class="fas fa-paper-plane"></i> | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="mt-12 pt-8 border-t border-gray-800 flex flex-col md:flex-row justify-between items-center"> | |
| <p class="text-gray-400 text-sm">© 2023 Aerodynamics Laboratory. All rights reserved.</p> | |
| <div class="flex space-x-6 mt-4 md:mt-0"> | |
| <a href="#" class="text-gray-400 hover:text-white text-sm">Privacy Policy</a> | |
| <a href="#" class="text-gray-400 hover:text-white text-sm">Terms of Service</a> | |
| <a href="#" class="text-gray-400 hover:text-white text-sm">Accessibility</a> | |
| </div> | |
| </div> | |
| </div> | |
| </footer> | |
| <script> | |
| // Sample equipment data | |
| const equipmentData = [ | |
| { | |
| id: 1, | |
| title: "Wind Tunnel - AF100", | |
| category: "wind-tunnel", | |
| image: "https://www.tecquipment.com/images/gallery/AF100_1.jpg", | |
| description: "Open-circuit subsonic wind tunnel for basic aerodynamic experiments with test section of 300mm x 300mm x 600mm.", | |
| specs: [ | |
| {icon: "fas fa-ruler-combined", text: "Test section: 300 x 300 x 600 mm"}, | |
| {icon: "fas fa-tachometer-alt", text: "Max speed: 28 m/s"}, | |
| {icon: "fas fa-fan", text: "Airflow control: Variable speed fan"}, | |
| {icon: "fas fa-tools", text: "Includes: Pitot-static tube, balance system"} | |
| ], | |
| datasheet: "#" | |
| }, | |
| { | |
| id: 2, | |
| title: "Boundary Layer Apparatus - AF10", | |
| category: "measurement", | |
| image: "https://www.tecquipment.com/images/gallery/AF10_1.jpg", | |
| description: "For study of boundary layer development on flat plate with pressure tappings and traversing Pitot tube.", | |
| specs: [ | |
| {icon: "fas fa-ruler", text: "Plate length: 375 mm"}, | |
| {icon: "fas fa-tachometer-alt", text: "Measurement range: 0-30 m/s"}, | |
| {icon: "fas fa-water", text: "Includes: Manometer board, Pitot tube"}, | |
| {icon: "fas fa-chart-line", text: "Data output: Analog and digital"} | |
| ], | |
| datasheet: "#" | |
| }, | |
| { | |
| id: 3, | |
| title: "Flow Visualization - AF130", | |
| category: "flow-visualization", | |
| image: "https://www.tecquipment.com/images/gallery/AF130_1.jpg", | |
| description: "Smoke flow visualization system for studying flow patterns around different shapes and models.", | |
| specs: [ | |
| {icon: "fas fa-smog", text: "Smoke generator output: Adjustable"}, | |
| {icon: "fas fa-lightbulb", text: "LED illumination system"}, | |
| {icon: "fas fa-expand", text: "Working section: 300 x 300 mm"}, | |
| {icon: "fas fa-video", text: "Compatible with high-speed cameras"} | |
| ], | |
| datasheet: "#" | |
| }, | |
| { | |
| id: 4, | |
| title: "Data Acquisition System - AFA7", | |
| category: "data-acquisition", | |
| image: "https://www.tecquipment.com/images/gallery/AFA7_1.jpg", | |
| description: "Advanced data acquisition system for pressure, force and flow measurements with 16-bit resolution.", | |
| specs: [ | |
| {icon: "fas fa-microchip", text: "Channels: 16 analog, 8 digital"}, | |
| {icon: "fas fa-tachometer-alt", text: "Sampling rate: 100 kHz"}, | |
| {icon: "fas fa-laptop", text: "Software: TecQuipment Aero"}, | |
| {icon: "fas fa-plug", text: "Compatible with all TecQuipment sensors"} | |
| ], | |
| datasheet: "#" | |
| }, | |
| { | |
| id: 5, | |
| title: "Aerodynamic Balance - AF112", | |
| category: "measurement", | |
| image: "https://www.tecquipment.com/images/gallery/AF112_1.jpg", | |
| description: "Six-component balance for measurement of lift, drag and pitching moment on airfoils and models.", | |
| specs: [ | |
| {icon: "fas fa-weight", text: "Max lift: 20 N"}, | |
| {icon: "fas fa-ruler", text: "Model size: up to 150 mm chord"}, | |
| {icon: "fas fa-tachometer-alt", text: "Resolution: 0.01 N"}, | |
| {icon: "fas fa-exchange-alt", text: "Automatic angle adjustment"} | |
| ], | |
| datasheet: "#" | |
| }, | |
| { | |
| id: 6, | |
| title: "Supersonic Wind Tunnel - AF300", | |
| category: "wind-tunnel", | |
| image: "https://www.tecquipment.com/images/gallery/AF300_1.jpg", | |
| description: "Intermittent supersonic wind tunnel with interchangeable nozzles for Mach 1.4 to 4.0.", | |
| specs: [ | |
| {icon: "fas fa-rocket", text: "Mach range: 1.4 to 4.0"}, | |
| {icon: "fas fa-ruler", text: "Test section: 100 x 100 mm"}, | |
| {icon: "fas fa-compress-alt", text: "Stagnation pressure: up to 6 bar"}, | |
| {icon: "fas fa-clock", text: "Run time: 15-30 seconds"} | |
| ], | |
| datasheet: "#" | |
| } | |
| ]; | |
| // Sample experiments data | |
| const experimentsData = [ | |
| { | |
| id: 1, | |
| name: "Lift and Drag Measurement", | |
| equipment: "AF112 Aerodynamic Balance", | |
| level: "undergraduate", | |
| duration: "3 hours", | |
| description: "Measure lift and drag coefficients for different airfoil shapes at varying angles of attack." | |
| }, | |
| { | |
| id: 2, | |
| name: "Boundary Layer Analysis", | |
| equipment: "AF10 Boundary Layer Apparatus", | |
| level: "graduate", | |
| duration: "4 hours", | |
| description: "Study boundary layer development and measure velocity profiles on a flat plate." | |
| }, | |
| { | |
| id: 3, | |
| name: "Flow Visualization", | |
| equipment: "AF130 Flow Visualization", | |
| level: "undergraduate", | |
| duration: "2 hours", | |
| description: "Visualize flow patterns around different shapes using smoke and dye injection." | |
| }, | |
| { | |
| id: 4, | |
| name: "Pressure Distribution", | |
| equipment: "AF100 Wind Tunnel", | |
| level: "undergraduate", | |
| duration: "3 hours", | |
| description: "Measure pressure distribution around a cylinder and compare with theoretical predictions." | |
| }, | |
| { | |
| id: 5, | |
| name: "Shock Wave Analysis", | |
| equipment: "AF300 Supersonic Wind Tunnel", | |
| level: "research", | |
| duration: "6 hours", | |
| description: "Study shock wave formation and behavior at different Mach numbers using Schlieren photography." | |
| }, | |
| { | |
| id: 6, | |
| name: "Data Acquisition Techniques", | |
| equipment: "AFA7 Data Acquisition", | |
| level: "graduate", | |
| duration: "4 hours", | |
| description: "Learn advanced techniques for acquiring and processing aerodynamic data." | |
| }, | |
| { | |
| id: 7, | |
| name: "Automotive Drag Reduction", | |
| equipment: "AF100 Wind Tunnel", | |
| level: "industrial", | |
| duration: "8 hours", | |
| description: "Test and optimize vehicle shapes for reduced aerodynamic drag." | |
| }, | |
| { | |
| id: 8, | |
| name: "Wind Load Analysis", | |
| equipment: "AF100 Wind Tunnel", | |
| level: "industrial", | |
| duration: "5 hours", | |
| description: "Measure wind loads on architectural models for structural design." | |
| } | |
| ]; | |
| // Initialize the page | |
| document.addEventListener('DOMContentLoaded', function() { | |
| renderEquipment(); | |
| renderExperiments(); | |
| setupEventListeners(); | |
| }); | |
| // Render equipment cards | |
| function renderEquipment() { | |
| const equipmentGrid = document.getElementById('equipment-grid'); | |
| equipmentGrid.innerHTML = ''; | |
| equipmentData.forEach(equipment => { | |
| const specsHTML = equipment.specs.map(spec => ` | |
| <div class="flex items-start mb-2"> | |
| <div class="spec-icon"> | |
| <i class="${spec.icon}"></i> | |
| </div> | |
| <span class="text-gray-600 text-sm">${spec.text}</span> | |
| </div> | |
| `).join(''); | |
| const card = document.createElement('div'); | |
| card.className = 'equipment-card bg-white rounded-xl overflow-hidden shadow-md transition duration-300'; | |
| card.dataset.category = equipment.category; | |
| card.dataset.title = equipment.title.toLowerCase(); | |
| card.innerHTML = ` | |
| <img src="${equipment.image}" alt="${equipment.title}" class="w-full h-48 object-cover"> | |
| <div class="p-6"> | |
| <h3 class="text-xl font-bold text-gray-800 mb-2">${equipment.title}</h3> | |
| <p class="text-gray-600 mb-4">${equipment.description}</p> | |
| <div class="mb-6"> | |
| ${specsHTML} | |
| </div> | |
| <div class="flex justify-between items-center"> | |
| <a href="#" class="text-blue-600 hover:text-blue-800 font-medium flex items-center"> | |
| <i class="fas fa-info-circle mr-2"></i> Details | |
| </a> | |
| <a href="${equipment.datasheet}" class="bg-blue-100 hover:bg-blue-200 text-blue-800 px-4 py-2 rounded-md text-sm font-medium flex items-center"> | |
| <i class="fas fa-file-pdf mr-2"></i> Datasheet | |
| </a> | |
| </div> | |
| </div> | |
| `; | |
| equipmentGrid.appendChild(card); | |
| }); | |
| } | |
| // Render experiments table | |
| function renderExperiments(filter = 'all') { | |
| const experimentsTable = document.getElementById('experiments-table'); | |
| experimentsTable.innerHTML = ''; | |
| const filteredExperiments = filter === 'all' | |
| ? experimentsData | |
| : experimentsData.filter(exp => exp.level === filter); | |
| filteredExperiments.forEach(exp => { | |
| const levelBadge = getLevelBadge(exp.level); | |
| const row = document.createElement('tr'); | |
| row.innerHTML = ` | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <div class="text-sm font-medium text-gray-900">${exp.name}</div> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <div class="text-sm text-gray-500">${exp.equipment}</div> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| ${levelBadge} | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <div class="text-sm text-gray-500">${exp.duration}</div> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <button onclick="showExperimentDetails(${exp.id})" class="text-blue-600 hover:text-blue-900 text-sm font-medium"> | |
| <i class="fas fa-eye mr-1"></i> View | |
| </button> | |
| </td> | |
| `; | |
| experimentsTable.appendChild(row); | |
| }); | |
| } | |
| // Get badge for experiment level | |
| function getLevelBadge(level) { | |
| const classes = { | |
| undergraduate: 'bg-green-100 text-green-800', | |
| graduate: 'bg-blue-100 text-blue-800', | |
| research: 'bg-purple-100 text-purple-800', | |
| industrial: 'bg-yellow-100 text-yellow-800' | |
| }; | |
| const text = { | |
| undergraduate: 'Undergrad', | |
| graduate: 'Graduate', | |
| research: 'Research', | |
| industrial: 'Industrial' | |
| }; | |
| return `<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full ${classes[level]}">${text[level]}</span>`; | |
| } | |
| // Filter experiments | |
| function filterExperiments(level) { | |
| // Update active button | |
| document.querySelectorAll('.experiment-filter-btn').forEach(btn => { | |
| btn.classList.remove('bg-blue-600', 'text-white'); | |
| btn.classList.add('bg-gray-200', 'text-gray-700', 'hover:bg-gray-300'); | |
| }); | |
| if (level !== 'all') { | |
| const activeBtn = document.querySelector(`.experiment-filter-btn[onclick="filterExperiments('${level}')"]`); | |
| activeBtn.classList.remove('bg-gray-200', 'text-gray-700', 'hover:bg-gray-300'); | |
| activeBtn.classList.add('bg-blue-600', 'text-white'); | |
| } else { | |
| document.querySelector('.experiment-filter-btn[onclick="filterExperiments(\'all\')"]').classList.add('bg-blue-600', 'text-white'); | |
| } | |
| renderExperiments(level); | |
| } | |
| // Show experiment details | |
| function showExperimentDetails(id) { | |
| const experiment = experimentsData.find(exp => exp.id === id); | |
| alert(`Experiment Details:\n\nName: ${experiment.name}\nEquipment: ${experiment.equipment}\nLevel: ${experiment.level}\nDuration: ${experiment.duration}\nDescription: ${experiment.description}`); | |
| } | |
| // Search and filter equipment | |
| function setupEventListeners() { | |
| const searchInput = document.getElementById('search-equipment'); | |
| const categoryFilter = document.getElementById('filter-category'); | |
| searchInput.addEventListener('input', filterEquipment); | |
| categoryFilter.addEventListener('change', filterEquipment); | |
| } | |
| function filterEquipment() { | |
| const searchTerm = document.getElementById('search-equipment').value.toLowerCase(); | |
| const category = document.getElementById('filter-category').value; | |
| document.querySelectorAll('.equipment-card').forEach(card => { | |
| const matchesSearch = card.dataset.title.includes(searchTerm); | |
| const matchesCategory = category === '' || card.dataset.category === category; | |
| if (matchesSearch && matchesCategory) { | |
| card.style.display = 'block'; | |
| } else { | |
| card.style.display = 'none'; | |
| } | |
| }); | |
| } | |
| function resetFilters() { | |
| document.getElementById('search-equipment').value = ''; | |
| document.getElementById('filter-category').value = ''; | |
| filterEquipment(); | |
| } | |
| // Export to PDF | |
| function exportToPDF() { | |
| alert('Exporting full equipment catalogue to PDF...'); | |
| // In a real implementation, this would generate and download a PDF | |
| } | |
| // Language switcher | |
| function switchLanguage(lang) { | |
| alert(`Switching to ${lang === 'en' ? 'English' : 'French'}...`); | |
| // In a real implementation, this would change the language of all text | |
| } | |
| // Mobile menu toggle | |
| function toggleMobileMenu() { | |
| const menu = document.getElementById('mobile-menu'); | |
| menu.classList.toggle('hidden'); | |
| } | |
| // Smooth scrolling for anchor links | |
| document.querySelectorAll('a[href^="#"]').forEach(anchor => { | |
| anchor.addEventListener('click', function (e) { | |
| e.preventDefault(); | |
| const targetId = this.getAttribute('href'); | |
| const targetElement = document.querySelector(targetId); | |
| if (targetElement) { | |
| window.scrollTo({ | |
| top: targetElement.offsetTop - 80, | |
| behavior: 'smooth' | |
| }); | |
| // Close mobile menu if open | |
| const mobileMenu = document.getElementById('mobile-menu'); | |
| if (!mobileMenu.classList.contains('hidden')) { | |
| mobileMenu.classList.add('hidden'); | |
| } | |
| } | |
| }); | |
| }); | |
| </script> | |
| <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Aerotech/aerodynamic-laboratory" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
| </html> |