website / index.html
NambAnand's picture
make it such that mail send from website itself, and user doesnt have to open any email service provider to send the mail - Follow Up Deployment
712ee84 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Alex Carter | Undergraduate Portfolio</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
/* Custom CSS for animations and effects */
@keyframes fadeIn {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
.fade-in {
animation: fadeIn 1s ease-out forwards;
}
.delay-1 { animation-delay: 0.2s; }
.delay-2 { animation-delay: 0.4s; }
.delay-3 { animation-delay: 0.6s; }
.delay-4 { animation-delay: 0.8s; }
.card-hover {
transition: all 0.3s ease;
}
.card-hover:hover {
transform: translateY(-5px);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
}
.nav-link {
position: relative;
}
.nav-link::after {
content: '';
position: absolute;
width: 0;
height: 2px;
bottom: 0;
left: 0;
background-color: #3b82f6;
transition: width 0.3s ease;
}
.nav-link:hover::after {
width: 100%;
}
.active-nav::after {
width: 100%;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: #f1f1f1;
}
::-webkit-scrollbar-thumb {
background: #3b82f6;
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: #2563eb;
}
</style>
</head>
<body class="bg-gray-50 font-sans text-gray-800">
<!-- Navigation -->
<nav class="fixed w-full bg-white shadow-md z-50">
<div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex justify-between h-16">
<div class="flex items-center">
<a href="#home" class="text-xl font-bold text-blue-500">Alex Carter</a>
</div>
<div class="hidden md:flex items-center space-x-8">
<a href="#home" class="nav-link text-gray-700 hover:text-blue-500 px-3 py-2 text-sm font-medium">Home</a>
<a href="#about" class="nav-link text-gray-700 hover:text-blue-500 px-3 py-2 text-sm font-medium">About</a>
<a href="#projects" class="nav-link text-gray-700 hover:text-blue-500 px-3 py-2 text-sm font-medium">Projects</a>
<a href="#skills" class="nav-link text-gray-700 hover:text-blue-500 px-3 py-2 text-sm font-medium">Skills</a>
<a href="#contact" class="nav-link text-gray-700 hover:text-blue-500 px-3 py-2 text-sm font-medium">Contact</a>
</div>
<div class="md:hidden flex items-center">
<button id="menu-btn" class="text-gray-700 hover:text-blue-500 focus:outline-none">
<i class="fas fa-bars text-xl"></i>
</button>
</div>
</div>
</div>
<!-- Mobile menu -->
<div id="mobile-menu" class="hidden md:hidden bg-white shadow-lg">
<div class="px-2 pt-2 pb-3 space-y-1 sm:px-3">
<a href="#home" class="block px-3 py-2 text-base font-medium text-gray-700 hover:text-blue-500 hover:bg-gray-100">Home</a>
<a href="#about" class="block px-3 py-2 text-base font-medium text-gray-700 hover:text-blue-500 hover:bg-gray-100">About</a>
<a href="#projects" class="block px-3 py-2 text-base font-medium text-gray-700 hover:text-blue-500 hover:bg-gray-100">Projects</a>
<a href="#skills" class="block px-3 py-2 text-base font-medium text-gray-700 hover:text-blue-500 hover:bg-gray-100">Skills</a>
<a href="#contact" class="block px-3 py-2 text-base font-medium text-gray-700 hover:text-blue-500 hover:bg-gray-100">Contact</a>
</div>
</div>
</nav>
<!-- Hero Section -->
<section id="home" class="pt-24 pb-16 md:pt-32 md:pb-24 bg-gradient-to-r from-blue-50 to-indigo-50">
<div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex flex-col md:flex-row items-center">
<div class="md:w-1/2 mb-8 md:mb-0 fade-in">
<h1 class="text-4xl md:text-5xl font-bold text-gray-800 mb-4">Hi, I'm <span class="text-blue-500">Alex Carter</span></h1>
<h2 class="text-2xl md:text-3xl font-semibold text-gray-700 mb-6">Computer Science Student</h2>
<p class="text-gray-600 mb-8 text-lg">Passionate about building innovative solutions and exploring the intersection of technology and human needs.</p>
<div class="flex space-x-4">
<a href="#projects" class="bg-blue-500 hover:bg-blue-600 text-white px-6 py-3 rounded-lg font-medium transition duration-300">View My Work</a>
<a href="#contact" class="border-2 border-blue-500 text-blue-500 hover:bg-blue-50 px-6 py-3 rounded-lg font-medium transition duration-300">Contact Me</a>
</div>
</div>
<div class="md:w-1/2 flex justify-center fade-in delay-1">
<div class="relative w-64 h-64 md:w-80 md:h-80 rounded-full overflow-hidden border-4 border-white shadow-xl">
<img src="https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=774&q=80"
alt="Alex Carter"
class="w-full h-full object-cover">
</div>
</div>
</div>
</div>
</section>
<!-- About Section -->
<section id="about" class="py-16 bg-white">
<div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8">
<h2 class="text-3xl font-bold text-center text-gray-800 mb-12 fade-in">About Me</h2>
<div class="flex flex-col md:flex-row items-center gap-8">
<div class="md:w-1/3 mb-8 md:mb-0 fade-in delay-1">
<div class="bg-gray-100 p-6 rounded-xl shadow-md h-full">
<h3 class="text-xl font-semibold text-blue-500 mb-4">Education</h3>
<div class="space-y-4">
<div>
<h4 class="font-medium text-gray-800">Bachelor of Science in Computer Science</h4>
<p class="text-gray-600">University of Technology, 2021 - Present</p>
<p class="text-gray-600 mt-1">GPA: 3.8/4.0</p>
</div>
<div>
<h4 class="font-medium text-gray-800">Relevant Coursework</h4>
<ul class="list-disc list-inside text-gray-600 space-y-1">
<li>Data Structures & Algorithms</li>
<li>Database Systems</li>
<li>Web Development</li>
<li>Machine Learning</li>
<li>Software Engineering</li>
</ul>
</div>
</div>
</div>
</div>
<div class="md:w-1/3 fade-in delay-2">
<div class="bg-gray-100 p-6 rounded-xl shadow-md h-full">
<h3 class="text-xl font-semibold text-blue-500 mb-4">Experience</h3>
<div class="space-y-4">
<div>
<h4 class="font-medium text-gray-800">Software Development Intern</h4>
<p class="text-gray-600">TechSolutions Inc., Summer 2023</p>
<ul class="list-disc list-inside text-gray-600 mt-1 space-y-1">
<li>Developed REST APIs for customer portal</li>
<li>Implemented automated testing framework</li>
<li>Collaborated with cross-functional teams</li>
</ul>
</div>
<div>
<h4 class="font-medium text-gray-800">Teaching Assistant</h4>
<p class="text-gray-600">University of Technology, 2022 - Present</p>
<ul class="list-disc list-inside text-gray-600 mt-1 space-y-1">
<li>Assist students with programming concepts</li>
<li>Grade assignments and provide feedback</li>
<li>Conduct weekly lab sessions</li>
</ul>
</div>
</div>
</div>
</div>
<div class="md:w-1/3 fade-in delay-3">
<div class="bg-gray-100 p-6 rounded-xl shadow-md h-full">
<h3 class="text-xl font-semibold text-blue-500 mb-4">Personal</h3>
<p class="text-gray-600 mb-4">
I'm a passionate computer science student with a strong interest in full-stack development and machine learning.
When I'm not coding, you can find me hiking, reading sci-fi novels, or contributing to open-source projects.
</p>
<div class="mt-6">
<h4 class="font-medium text-gray-800 mb-2">Hobbies & Interests</h4>
<div class="flex flex-wrap gap-2">
<span class="bg-blue-100 text-blue-800 px-3 py-1 rounded-full text-sm">Photography</span>
<span class="bg-blue-100 text-blue-800 px-3 py-1 rounded-full text-sm">Chess</span>
<span class="bg-blue-100 text-blue-800 px-3 py-1 rounded-full text-sm">Open Source</span>
<span class="bg-blue-100 text-blue-800 px-3 py-1 rounded-full text-sm">Travel</span>
<span class="bg-blue-100 text-blue-800 px-3 py-1 rounded-full text-sm">AI Ethics</span>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Projects Section -->
<section id="projects" class="py-16 bg-gray-50">
<div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8">
<h2 class="text-3xl font-bold text-center text-gray-800 mb-4 fade-in">My Projects</h2>
<p class="text-center text-gray-600 mb-12 max-w-2xl mx-auto fade-in delay-1">Here are some of my recent projects that showcase my skills and interests.</p>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
<!-- Project 1 -->
<div class="bg-white rounded-xl overflow-hidden shadow-md card-hover fade-in delay-2">
<div class="h-48 bg-gradient-to-r from-blue-400 to-indigo-500 flex items-center justify-center">
<i class="fas fa-graduation-cap text-white text-6xl"></i>
</div>
<div class="p-6">
<h3 class="text-xl font-bold text-gray-800 mb-2">Student Portal</h3>
<p class="text-gray-600 mb-4">A comprehensive portal for students to manage courses, assignments, and grades.</p>
<div class="flex flex-wrap gap-2 mb-4">
<span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">React</span>
<span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">Node.js</span>
<span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">MongoDB</span>
</div>
<div class="flex space-x-3">
<a href="#" class="text-blue-500 hover:text-blue-700"><i class="fab fa-github"></i> Code</a>
<a href="#" class="text-blue-500 hover:text-blue-700"><i class="fas fa-external-link-alt"></i> Live Demo</a>
</div>
</div>
</div>
<!-- Project 2 -->
<div class="bg-white rounded-xl overflow-hidden shadow-md card-hover fade-in delay-3">
<div class="h-48 bg-gradient-to-r from-purple-400 to-pink-500 flex items-center justify-center">
<i class="fas fa-robot text-white text-6xl"></i>
</div>
<div class="p-6">
<h3 class="text-xl font-bold text-gray-800 mb-2">AI Chatbot</h3>
<p class="text-gray-600 mb-4">A conversational AI assistant trained to answer university-related queries.</p>
<div class="flex flex-wrap gap-2 mb-4">
<span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">Python</span>
<span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">TensorFlow</span>
<span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">NLP</span>
</div>
<div class="flex space-x-3">
<a href="#" class="text-blue-500 hover:text-blue-700"><i class="fab fa-github"></i> Code</a>
<a href="#" class="text-blue-500 hover:text-blue-700"><i class="fas fa-external-link-alt"></i> Live Demo</a>
</div>
</div>
</div>
<!-- Project 3 -->
<div class="bg-white rounded-xl overflow-hidden shadow-md card-hover fade-in delay-4">
<div class="h-48 bg-gradient-to-r from-green-400 to-teal-500 flex items-center justify-center">
<i class="fas fa-shopping-cart text-white text-6xl"></i>
</div>
<div class="p-6">
<h3 class="text-xl font-bold text-gray-800 mb-2">E-commerce Platform</h3>
<p class="text-gray-600 mb-4">A full-featured online store with payment integration and admin dashboard.</p>
<div class="flex flex-wrap gap-2 mb-4">
<span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">Vue.js</span>
<span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">Express</span>
<span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">PostgreSQL</span>
<span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">Stripe API</span>
</div>
<div class="flex space-x-3">
<a href="#" class="text-blue-500 hover:text-blue-700"><i class="fab fa-github"></i> Code</a>
<a href="#" class="text-blue-500 hover:text-blue-700"><i class="fas fa-external-link-alt"></i> Live Demo</a>
</div>
</div>
</div>
</div>
<div class="text-center mt-12 fade-in delay-4">
<a href="#" class="inline-flex items-center text-blue-500 hover:text-blue-700 font-medium">
View All Projects <i class="fas fa-arrow-right ml-2"></i>
</a>
</div>
</div>
</section>
<!-- Skills Section -->
<section id="skills" class="py-16 bg-white">
<div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8">
<h2 class="text-3xl font-bold text-center text-gray-800 mb-4 fade-in">My Skills</h2>
<p class="text-center text-gray-600 mb-12 max-w-2xl mx-auto fade-in delay-1">Technologies and tools I'm proficient in.</p>
<div class="grid grid-cols-2 md:grid-cols-4 gap-6">
<!-- Programming Languages -->
<div class="bg-gray-50 p-6 rounded-xl fade-in delay-2">
<h3 class="text-lg font-semibold text-blue-500 mb-4 flex items-center">
<i class="fas fa-code mr-2"></i> Languages
</h3>
<ul class="space-y-3">
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>JavaScript/TypeScript</span>
</li>
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>Python</span>
</li>
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>Java</span>
</li>
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>C++</span>
</li>
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>SQL</span>
</li>
</ul>
</div>
<!-- Frontend -->
<div class="bg-gray-50 p-6 rounded-xl fade-in delay-3">
<h3 class="text-lg font-semibold text-blue-500 mb-4 flex items-center">
<i class="fas fa-paint-brush mr-2"></i> Frontend
</h3>
<ul class="space-y-3">
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>React</span>
</li>
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>Vue.js</span>
</li>
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>HTML5/CSS3</span>
</li>
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>Tailwind CSS</span>
</li>
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>Redux</span>
</li>
</ul>
</div>
<!-- Backend -->
<div class="bg-gray-50 p-6 rounded-xl fade-in delay-4">
<h3 class="text-lg font-semibold text-blue-500 mb-4 flex items-center">
<i class="fas fa-server mr-2"></i> Backend
</h3>
<ul class="space-y-3">
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>Node.js</span>
</li>
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>Express</span>
</li>
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>Django</span>
</li>
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>Flask</span>
</li>
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>REST APIs</span>
</li>
</ul>
</div>
<!-- Tools & Other -->
<div class="bg-gray-50 p-6 rounded-xl fade-in delay-4">
<h3 class="text-lg font-semibold text-blue-500 mb-4 flex items-center">
<i class="fas fa-tools mr-2"></i> Tools & Other
</h3>
<ul class="space-y-3">
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>Git/GitHub</span>
</li>
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>Docker</span>
</li>
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>PostgreSQL</span>
</li>
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>MongoDB</span>
</li>
<li class="flex items-center">
<div class="w-2 h-2 bg-blue-500 rounded-full mr-2"></div>
<span>AWS Basics</span>
</li>
</ul>
</div>
</div>
<!-- Skill bars -->
<div class="mt-12 max-w-3xl mx-auto fade-in delay-4">
<h3 class="text-xl font-semibold text-gray-800 mb-6">Proficiency Levels</h3>
<div class="space-y-4">
<div>
<div class="flex justify-between mb-1">
<span class="text-sm font-medium text-gray-700">JavaScript/React</span>
<span class="text-sm font-medium text-gray-500">90%</span>
</div>
<div class="w-full bg-gray-200 rounded-full h-2.5">
<div class="bg-blue-500 h-2.5 rounded-full" style="width: 90%"></div>
</div>
</div>
<div>
<div class="flex justify-between mb-1">
<span class="text-sm font-medium text-gray-700">Python</span>
<span class="text-sm font-medium text-gray-500">85%</span>
</div>
<div class="w-full bg-gray-200 rounded-full h-2.5">
<div class="bg-blue-500 h-2.5 rounded-full" style="width: 85%"></div>
</div>
</div>
<div>
<div class="flex justify-between mb-1">
<span class="text-sm font-medium text-gray-700">Node.js/Express</span>
<span class="text-sm font-medium text-gray-500">80%</span>
</div>
<div class="w-full bg-gray-200 rounded-full h-2.5">
<div class="bg-blue-500 h-2.5 rounded-full" style="width: 80%"></div>
</div>
</div>
<div>
<div class="flex justify-between mb-1">
<span class="text-sm font-medium text-gray-700">Database Design</span>
<span class="text-sm font-medium text-gray-500">75%</span>
</div>
<div class="w-full bg-gray-200 rounded-full h-2.5">
<div class="bg-blue-500 h-2.5 rounded-full" style="width: 75%"></div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Contact Section -->
<section id="contact" class="py-16 bg-gray-50">
<div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8">
<h2 class="text-3xl font-bold text-center text-gray-800 mb-4 fade-in">Get In Touch</h2>
<p class="text-center text-gray-600 mb-12 max-w-2xl mx-auto fade-in delay-1">Feel free to reach out for collaborations or just to say hello!</p>
<div class="flex flex-col md:flex-row gap-8">
<div class="md:w-1/2 fade-in delay-2">
<form id="contactForm" class="space-y-6">
<div id="formStatus" class="hidden"></div>
<div>
<label for="name" class="block text-sm font-medium text-gray-700 mb-1">Name</label>
<input type="text" id="name" name="name" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-blue-500 focus:border-blue-500">
</div>
<div>
<label for="email" class="block text-sm font-medium text-gray-700 mb-1">Email</label>
<input type="email" id="email" name="email" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-blue-500 focus:border-blue-500">
</div>
<div>
<label for="subject" class="block text-sm font-medium text-gray-700 mb-1">Subject</label>
<input type="text" id="subject" name="subject" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-blue-500 focus:border-blue-500">
</div>
<div>
<label for="message" class="block text-sm font-medium text-gray-700 mb-1">Message</label>
<textarea id="message" name="message" rows="5" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-blue-500 focus:border-blue-500"></textarea>
</div>
<button type="submit" class="bg-blue-500 hover:bg-blue-600 text-white px-6 py-3 rounded-lg font-medium transition duration-300 w-full">Send Message</button>
</form>
</div>
<div class="md:w-1/2 fade-in delay-3">
<div class="bg-white p-8 rounded-xl shadow-md h-full">
<h3 class="text-xl font-semibold text-gray-800 mb-6">Contact Information</h3>
<div class="space-y-6">
<div class="flex items-start">
<div class="flex-shrink-0 bg-blue-100 p-3 rounded-lg">
<i class="fas fa-envelope text-blue-500"></i>
</div>
<div class="ml-4">
<h4 class="text-sm font-medium text-gray-500">Email</h4>
<a href="mailto:[email protected]" class="text-base text-gray-800 hover:text-blue-500">[email protected]</a>
</div>
</div>
<div class="flex items-start">
<div class="flex-shrink-0 bg-blue-100 p-3 rounded-lg">
<i class="fas fa-phone-alt text-blue-500"></i>
</div>
<div class="ml-4">
<h4 class="text-sm font-medium text-gray-500">Phone</h4>
<a href="tel:+1234567890" class="text-base text-gray-800 hover:text-blue-500">+1 (234) 567-890</a>
</div>
</div>
<div class="flex items-start">
<div class="flex-shrink-0 bg-blue-100 p-3 rounded-lg">
<i class="fas fa-map-marker-alt text-blue-500"></i>
</div>
<div class="ml-4">
<h4 class="text-sm font-medium text-gray-500">Location</h4>
<p class="text-base text-gray-800">San Francisco, CA</p>
</div>
</div>
<div class="pt-4">
<h4 class="text-sm font-medium text-gray-500 mb-4">Connect with me</h4>
<div class="flex space-x-4">
<a href="#" class="bg-gray-100 hover:bg-blue-100 w-10 h-10 rounded-full flex items-center justify-center transition duration-300">
<i class="fab fa-linkedin-in text-gray-700 hover:text-blue-700"></i>
</a>
<a href="#" class="bg-gray-100 hover:bg-blue-100 w-10 h-10 rounded-full flex items-center justify-center transition duration-300">
<i class="fab fa-github text-gray-700 hover:text-blue-700"></i>
</a>
<a href="#" class="bg-gray-100 hover:bg-blue-100 w-10 h-10 rounded-full flex items-center justify-center transition duration-300">
<i class="fab fa-twitter text-gray-700 hover:text-blue-700"></i>
</a>
<a href="#" class="bg-gray-100 hover:bg-blue-100 w-10 h-10 rounded-full flex items-center justify-center transition duration-300">
<i class="fab fa-instagram text-gray-700 hover:text-blue-700"></i>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Footer -->
<footer class="bg-gray-800 text-white py-8">
<div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex flex-col md:flex-row justify-between items-center">
<div class="mb-4 md:mb-0">
<a href="#home" class="text-xl font-bold text-white">Alex Carter</a>
<p class="text-gray-400 mt-1">Computer Science Student & Developer</p>
</div>
<div class="flex space-x-6">
<a href="#home" class="text-gray-400 hover:text-white">Home</a>
<a href="#about" class="text-gray-400 hover:text-white">About</a>
<a href="#projects" class="text-gray-400 hover:text-white">Projects</a>
<a href="#contact" class="text-gray-400 hover:text-white">Contact</a>
</div>
</div>
<div class="border-t border-gray-700 mt-8 pt-8 text-center text-gray-400">
<p>&copy; 2023 Alex Carter. All rights reserved.</p>
</div>
</div>
</footer>
<!-- Back to top button -->
<button id="back-to-top" class="fixed bottom-8 right-8 bg-blue-500 text-white w-12 h-12 rounded-full shadow-lg hidden items-center justify-center">
<i class="fas fa-arrow-up"></i>
</button>
<script>
// Mobile menu toggle
const menuBtn = document.getElementById('menu-btn');
const mobileMenu = document.getElementById('mobile-menu');
menuBtn.addEventListener('click', () => {
mobileMenu.classList.toggle('hidden');
});
// Smooth scrolling for navigation 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) {
// Close mobile menu if open
mobileMenu.classList.add('hidden');
// Scroll to target
window.scrollTo({
top: targetElement.offsetTop - 80,
behavior: 'smooth'
});
// Update active nav link
document.querySelectorAll('.nav-link').forEach(link => {
link.classList.remove('active-nav');
});
// Add active class to clicked link
if (this.classList.contains('nav-link')) {
this.classList.add('active-nav');
}
}
});
});
// Back to top button
const backToTopBtn = document.getElementById('back-to-top');
window.addEventListener('scroll', () => {
if (window.pageYOffset > 300) {
backToTopBtn.classList.remove('hidden');
backToTopBtn.classList.add('flex');
} else {
backToTopBtn.classList.add('hidden');
backToTopBtn.classList.remove('flex');
}
});
backToTopBtn.addEventListener('click', () => {
window.scrollTo({
top: 0,
behavior: 'smooth'
});
});
// Highlight active nav link on scroll
const sections = document.querySelectorAll('section');
const navLinks = document.querySelectorAll('.nav-link');
window.addEventListener('scroll', () => {
let current = '';
sections.forEach(section => {
const sectionTop = section.offsetTop;
const sectionHeight = section.clientHeight;
if (pageYOffset >= sectionTop - 100) {
current = section.getAttribute('id');
}
});
navLinks.forEach(link => {
link.classList.remove('active-nav');
if (link.getAttribute('href') === `#${current}`) {
link.classList.add('active-nav');
}
});
});
// Form submission
const contactForm = document.getElementById('contactForm');
const formStatus = document.getElementById('formStatus');
if (contactForm) {
contactForm.addEventListener('submit', async (e) => {
e.preventDefault();
// Get form values
const formData = {
name: document.getElementById('name').value,
email: document.getElementById('email').value,
subject: document.getElementById('subject').value,
message: document.getElementById('message').value
};
// Show loading state
formStatus.classList.remove('hidden');
formStatus.textContent = 'Sending message...';
formStatus.className = 'text-blue-500 p-4 rounded-lg bg-blue-50';
try {
// Send to server endpoint (you'll need to implement this)
const response = await fetch('https://your-server.com/send-email', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
to: '[email protected]',
...formData
})
});
const result = await response.json();
if (response.ok) {
// Success message
formStatus.textContent = 'Message sent successfully!';
formStatus.className = 'text-green-500 p-4 rounded-lg bg-green-50';
contactForm.reset();
} else {
throw new Error(result.message || 'Failed to send message');
}
} catch (error) {
// Error message
formStatus.textContent = `Error: ${error.message}`;
formStatus.className = 'text-red-500 p-4 rounded-lg bg-red-50';
}
// Hide status after 5 seconds
setTimeout(() => {
formStatus.classList.add('hidden');
}, 5000);
});
}
</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=NambAnand/website" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>