Spaces:
Running
Running
| <html lang="tr"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Hasan Köstek - Kişisel Blog</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> | |
| @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap'); | |
| body { | |
| font-family: 'Poppins', sans-serif; | |
| background-color: #f8fafc; | |
| scroll-behavior: smooth; | |
| } | |
| .gradient-text { | |
| background: linear-gradient(90deg, #6366f1, #8b5cf6); | |
| -webkit-background-clip: text; | |
| background-clip: text; | |
| color: transparent; | |
| } | |
| .nav-link { | |
| position: relative; | |
| } | |
| .nav-link::after { | |
| content: ''; | |
| position: absolute; | |
| width: 0; | |
| height: 2px; | |
| bottom: -4px; | |
| left: 0; | |
| background-color: #6366f1; | |
| transition: width 0.3s ease; | |
| } | |
| .nav-link:hover::after { | |
| width: 100%; | |
| } | |
| .card-hover { | |
| transition: all 0.3s ease; | |
| } | |
| .card-hover:hover { | |
| transform: translateY(-8px); | |
| box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); | |
| } | |
| .floating { | |
| animation: floating 6s ease-in-out infinite; | |
| } | |
| @keyframes floating { | |
| 0% { transform: translateY(0px); } | |
| 50% { transform: translateY(-15px); } | |
| 100% { transform: translateY(0px); } | |
| } | |
| .bg-dots { | |
| background-image: radial-gradient(#d1d5db 1px, transparent 1px); | |
| background-size: 20px 20px; | |
| } | |
| </style> | |
| </head> | |
| <body class="min-h-screen flex flex-col"> | |
| <!-- Navigation --> | |
| <nav class="bg-white/80 backdrop-blur-md shadow-sm sticky top-0 z-50 border-b border-gray-100"> | |
| <div class="container mx-auto px-4 py-3 flex justify-between items-center"> | |
| <div class="flex items-center space-x-2"> | |
| <div class="w-8 h-8 rounded-full bg-indigo-500 flex items-center justify-center"> | |
| <i class="fas fa-code text-white text-sm"></i> | |
| </div> | |
| <a href="#" class="text-xl font-bold text-gray-800">Hasan<span class="gradient-text">Köstek</span></a> | |
| </div> | |
| <div class="hidden md:flex space-x-8"> | |
| <a href="#about" class="nav-link text-gray-600 hover:text-indigo-600 transition font-medium">Hakkımda</a> | |
| <a href="#articles" class="nav-link text-gray-600 hover:text-indigo-600 transition font-medium">Yazılar</a> | |
| <a href="#projects" class="nav-link text-gray-600 hover:text-indigo-600 transition font-medium">Projeler</a> | |
| <a href="#contact" class="nav-link text-gray-600 hover:text-indigo-600 transition font-medium">İletişim</a> | |
| </div> | |
| <div class="flex items-center space-x-4"> | |
| <button class="hidden md:block bg-indigo-500 hover:bg-indigo-600 text-white px-4 py-2 rounded-full text-sm font-medium transition shadow-md shadow-indigo-500/20"> | |
| <i class="fas fa-paper-plane mr-2"></i> Mesaj Gönder | |
| </button> | |
| <button id="mobile-menu-button" class="md:hidden text-gray-700"> | |
| <i class="fas fa-bars text-xl"></i> | |
| </button> | |
| </div> | |
| </div> | |
| <!-- Mobile Menu --> | |
| <div id="mobile-menu" class="hidden md:hidden bg-white py-4 px-6 border-t border-gray-100"> | |
| <div class="flex flex-col space-y-4"> | |
| <a href="#about" class="text-gray-700 hover:text-indigo-600 font-medium">Hakkımda</a> | |
| <a href="#articles" class="text-gray-700 hover:text-indigo-600 font-medium">Yazılar</a> | |
| <a href="#projects" class="text-gray-700 hover:text-indigo-600 font-medium">Projeler</a> | |
| <a href="#contact" class="text-gray-700 hover:text-indigo-600 font-medium">İletişim</a> | |
| <button class="bg-indigo-500 hover:bg-indigo-600 text-white px-4 py-2 rounded-full text-sm font-medium transition mt-2"> | |
| Mesaj Gönder | |
| </button> | |
| </div> | |
| </div> | |
| </nav> | |
| <!-- Hero Section --> | |
| <header class="bg-gradient-to-br from-indigo-50 via-purple-50 to-blue-50 py-20 md:py-28"> | |
| <div class="container mx-auto px-4 flex flex-col md:flex-row items-center"> | |
| <div class="md:w-1/2 mb-12 md:mb-0"> | |
| <div class="inline-block bg-indigo-100 text-indigo-800 px-3 py-1 rounded-full text-xs font-medium mb-4"> | |
| <i class="fas fa-rocket mr-1"></i> Yeni Yazı Yayında! | |
| </div> | |
| <h1 class="text-4xl md:text-5xl lg:text-6xl font-bold text-gray-800 mb-4 leading-tight">Merhaba, Ben <span class="gradient-text">Hasan Köstek</span></h1> | |
| <p class="text-lg text-gray-600 mb-8 max-w-lg">Yazılım geliştirici ve teknoloji tutkunu. Burada deneyimlerimi, öğrendiklerimi ve projelerimi paylaşıyorum.</p> | |
| <div class="flex flex-wrap gap-4"> | |
| <a href="#articles" class="bg-indigo-500 hover:bg-indigo-600 text-white px-6 py-3 rounded-full transition shadow-md shadow-indigo-500/30 flex items-center"> | |
| <i class="fas fa-book-open mr-2"></i> Yazılarım | |
| </a> | |
| <a href="#contact" class="border border-indigo-500 text-indigo-500 hover:bg-indigo-50 px-6 py-3 rounded-full transition flex items-center"> | |
| <i class="fas fa-envelope mr-2"></i> İletişim | |
| </a> | |
| </div> | |
| <div class="flex items-center mt-8 space-x-4"> | |
| <div class="flex -space-x-2"> | |
| <img src="https://randomuser.me/api/portraits/women/12.jpg" class="w-10 h-10 rounded-full border-2 border-white" alt="Follower"> | |
| <img src="https://randomuser.me/api/portraits/men/32.jpg" class="w-10 h-10 rounded-full border-2 border-white" alt="Follower"> | |
| <img src="https://randomuser.me/api/portraits/women/45.jpg" class="w-10 h-10 rounded-full border-2 border-white" alt="Follower"> | |
| </div> | |
| <div class="text-sm text-gray-600"> | |
| <p><span class="font-medium text-gray-800">1.2K+</span> takipçi</p> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="md:w-1/2 flex justify-center relative"> | |
| <div class="relative w-64 h-64 md:w-80 md:h-80 lg:w-96 lg:h-96"> | |
| <div class="absolute inset-0 bg-indigo-200 rounded-full opacity-20 -z-10"></div> | |
| <div class="absolute inset-4 bg-indigo-300 rounded-full opacity-30 -z-10"></div> | |
| <div class="absolute -bottom-4 -left-4 w-24 h-24 bg-purple-100 rounded-full opacity-30 -z-10"></div> | |
| <div class="absolute -top-4 -right-4 w-16 h-16 bg-blue-100 rounded-full opacity-30 -z-10"></div> | |
| <img src="https://images.unsplash.com/photo-1560250097-0b93528c311a?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" | |
| alt="Hasan Köstek" | |
| class="absolute inset-0 w-full h-full object-cover rounded-full border-4 border-white shadow-xl floating"> | |
| </div> | |
| <div class="hidden lg:block absolute -right-10 top-1/2 transform -translate-y-1/2 bg-white p-6 rounded-xl shadow-lg w-64"> | |
| <div class="flex items-center mb-3"> | |
| <div class="bg-indigo-100 p-2 rounded-lg mr-3"> | |
| <i class="fas fa-medal text-indigo-500"></i> | |
| </div> | |
| <h4 class="font-medium text-gray-800">10+ Yıl Deneyim</h4> | |
| </div> | |
| <p class="text-sm text-gray-600">Web ve mobil uygulama geliştirme konusunda uzmanlık</p> | |
| </div> | |
| </div> | |
| </div> | |
| </header> | |
| <!-- About Section --> | |
| <section id="about" class="py-16 bg-white"> | |
| <div class="container mx-auto px-4"> | |
| <div class="text-center mb-16"> | |
| <span class="inline-block bg-indigo-100 text-indigo-800 px-3 py-1 rounded-full text-sm font-medium mb-4"> | |
| PROFESYONEL PROFİL | |
| </span> | |
| <h2 class="text-3xl md:text-4xl font-bold text-gray-800 mb-4">Hakkımda</h2> | |
| <div class="w-20 h-1 bg-gradient-to-r from-indigo-500 to-purple-500 mx-auto"></div> | |
| </div> | |
| <div class="flex flex-col lg:flex-row items-center gap-12"> | |
| <div class="lg:w-2/5 relative"> | |
| <img src="https://images.unsplash.com/photo-1571171637578-41bc2dd41cd2?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" | |
| alt="Hasan Köstek Çalışırken" | |
| class="rounded-xl shadow-lg w-full max-w-md border-4 border-white"> | |
| <div class="absolute -bottom-6 -right-6 bg-indigo-500 text-white p-4 rounded-lg shadow-lg hidden lg:block"> | |
| <div class="text-2xl font-bold">10+</div> | |
| <div class="text-sm">Tamamlanan Proje</div> | |
| </div> | |
| </div> | |
| <div class="lg:w-3/5"> | |
| <h3 class="text-2xl font-bold text-gray-800 mb-6">Yazılım Geliştirici & Teknoloji Meraklısı</h3> | |
| <p class="text-gray-600 mb-6 leading-relaxed">Merhaba, ben Hasan Köstek. 10 yılı aşkın süredir yazılım sektöründe çeşitli projelerde yer aldım. Frontend ve backend teknolojileriyle ilgileniyorum ve özellikle JavaScript ekosistemine büyük ilgi duyuyorum.</p> | |
| <p class="text-gray-600 mb-6 leading-relaxed">Bu blogda, edindiğim tecrübeleri, öğrendiğim yeni teknolojileri ve sektördeki gelişmeleri paylaşmayı hedefliyorum. Amacım, okuyuculara faydalı bilgiler sunmak ve aynı zamanda kendi öğrenme sürecimi belgelemek.</p> | |
| <div class="mb-8"> | |
| <h4 class="font-bold text-gray-800 mb-4">Uzmanlık Alanlarım</h4> | |
| <div class="flex flex-wrap gap-3"> | |
| <div class="bg-indigo-50 border border-indigo-100 px-4 py-2 rounded-full flex items-center"> | |
| <i class="fab fa-js text-yellow-400 mr-2"></i> | |
| <span class="text-sm">JavaScript</span> | |
| </div> | |
| <div class="bg-indigo-50 border border-indigo-100 px-4 py-2 rounded-full flex items-center"> | |
| <i class="fab fa-react text-blue-400 mr-2"></i> | |
| <span class="text-sm">React</span> | |
| </div> | |
| <div class="bg-indigo-50 border border-indigo-100 px-4 py-2 rounded-full flex items-center"> | |
| <i class="fab fa-node-js text-green-500 mr-2"></i> | |
| <span class="text-sm">Node.js</span> | |
| </div> | |
| <div class="bg-indigo-50 border border-indigo-100 px-4 py-2 rounded-full flex items-center"> | |
| <i class="fas fa-database text-blue-500 mr-2"></i> | |
| <span class="text-sm">SQL/NoSQL</span> | |
| </div> | |
| <div class="bg-indigo-50 border border-indigo-100 px-4 py-2 rounded-full flex items-center"> | |
| <i class="fab fa-vuejs text-green-400 mr-2"></i> | |
| <span class="text-sm">Vue.js</span> | |
| </div> | |
| <div class="bg-indigo-50 border border-indigo-100 px-4 py-2 rounded-full flex items-center"> | |
| <i class="fas fa-cloud text-blue-300 mr-2"></i> | |
| <span class="text-sm">Cloud Computing</span> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="flex flex-wrap gap-4"> | |
| <a href="#projects" class="bg-indigo-500 hover:bg-indigo-600 text-white px-6 py-3 rounded-full transition shadow-md shadow-indigo-500/30 flex items-center"> | |
| <i class="fas fa-briefcase mr-2"></i> Projelerim | |
| </a> | |
| <a href="#" class="border border-gray-300 text-gray-700 hover:bg-gray-50 px-6 py-3 rounded-full transition flex items-center"> | |
| <i class="fas fa-file-pdf mr-2"></i> CV İndir | |
| </a> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Articles Section --> | |
| <section id="articles" class="py-16 bg-gray-50"> | |
| <div class="container mx-auto px-4"> | |
| <div class="text-center mb-16"> | |
| <span class="inline-block bg-indigo-100 text-indigo-800 px-3 py-1 rounded-full text-sm font-medium mb-4"> | |
| BLOG YAZILARI | |
| </span> | |
| <h2 class="text-3xl md:text-4xl font-bold text-gray-800 mb-4">Son Yazılar</h2> | |
| <p class="text-gray-600 mb-6 max-w-2xl mx-auto">Teknoloji, programlama ve kişisel gelişim üzerine en güncel yazılarım.</p> | |
| <div class="w-20 h-1 bg-gradient-to-r from-indigo-500 to-purple-500 mx-auto"></div> | |
| </div> | |
| <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> | |
| <!-- Article 1 --> | |
| <article class="bg-white rounded-xl overflow-hidden shadow-md card-hover"> | |
| <div class="relative"> | |
| <img src="https://images.unsplash.com/photo-1555066931-4365d14bab8c?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" | |
| alt="React Hooks" | |
| class="w-full h-48 object-cover"> | |
| <div class="absolute top-4 right-4 bg-indigo-500 text-white px-3 py-1 rounded-full text-xs font-medium"> | |
| <i class="fas fa-tag mr-1"></i> React | |
| </div> | |
| </div> | |
| <div class="p-6"> | |
| <div class="flex items-center text-xs text-gray-500 mb-3"> | |
| <i class="far fa-calendar mr-1"></i> | |
| <span>15 Haziran 2023</span> | |
| <span class="mx-2">•</span> | |
| <i class="far fa-clock mr-1"></i> | |
| <span>8 dk okuma</span> | |
| </div> | |
| <h3 class="text-xl font-bold text-gray-800 mb-3">React Hooks: Modern React Geliştirme</h3> | |
| <p class="text-gray-600 mb-4">React Hooks, fonksiyonel bileşenlerde state ve lifecycle özelliklerini kullanmamızı sağlayan bir özelliktir. Bu yazıda en sık kullanılan hook'ları ve pratik kullanım örneklerini ele alıyoruz.</p> | |
| <div class="flex justify-between items-center"> | |
| <a href="#" class="text-indigo-500 font-medium hover:text-indigo-600 transition flex items-center"> | |
| Devamını Oku <i class="fas fa-arrow-right ml-2 text-sm"></i> | |
| </a> | |
| <div class="flex items-center text-sm text-gray-500"> | |
| <i class="far fa-eye mr-1"></i> 1.2K | |
| </div> | |
| </div> | |
| </div> | |
| </article> | |
| <!-- Article 2 --> | |
| <article class="bg-white rounded-xl overflow-hidden shadow-md card-hover"> | |
| <div class="relative"> | |
| <img src="https://images.unsplash.com/photo-1624953587687-daf255b6b80a?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" | |
| alt="Tailwind CSS" | |
| class="w-full h-48 object-cover"> | |
| <div class="absolute top-4 right-4 bg-purple-500 text-white px-3 py-1 rounded-full text-xs font-medium"> | |
| <i class="fas fa-tag mr-1"></i> CSS | |
| </div> | |
| </div> | |
| <div class="p-6"> | |
| <div class="flex items-center text-xs text-gray-500 mb-3"> | |
| <i class="far fa-calendar mr-1"></i> | |
| <span>2 Haziran 2023</span> | |
| <span class="mx-2">•</span> | |
| <i class="far fa-clock mr-1"></i> | |
| <span>6 dk okuma</span> | |
| </div> | |
| <h3 class="text-xl font-bold text-gray-800 mb-3">Tailwind CSS ile Hızlı Arayüz Geliştirme</h3> | |
| <p class="text-gray-600 mb-4">Tailwind CSS, utility-first yaklaşımıyla hızlı ve tutarlı arayüzler oluşturmanızı sağlar. Bu yazıda Tailwind'in temellerini ve projelerinize nasıl entegre edeceğinizi anlatıyorum.</p> | |
| <div class="flex justify-between items-center"> | |
| <a href="#" class="text-indigo-500 font-medium hover:text-indigo-600 transition flex items-center"> | |
| Devamını Oku <i class="fas fa-arrow-right ml-2 text-sm"></i> | |
| </a> | |
| <div class="flex items-center text-sm text-gray-500"> | |
| <i class="far fa-eye mr-1"></i> 890 | |
| </div> | |
| </div> | |
| </div> | |
| </article> | |
| <!-- Article 3 --> | |
| <article class="bg-white rounded-xl overflow-hidden shadow-md card-hover"> | |
| <div class="relative"> | |
| <img src="https://images.unsplash.com/photo-1623282033815-40b05d96c903?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=500&q=80" | |
| alt="JavaScript" | |
| class="w-full h-48 object-cover"> | |
| <div class="absolute top-4 right-4 bg-yellow-500 text-white px-3 py-1 rounded-full text-xs font-medium"> | |
| <i class="fas fa-tag mr-1"></i> JavaScript | |
| </div> | |
| </div> | |
| <div class="p-6"> | |
| <div class="flex items-center text-xs text-gray-500 mb-3"> | |
| <i class="far fa-calendar mr-1"></i> | |
| <span>20 Mayıs 2023</span> | |
| <span class="mx-2">•</span> | |
| <i class="far fa-clock mr-1"></i> | |
| <span>10 dk okuma</span> | |
| </div> | |
| <h3 class="text-xl font-bold text-gray-800 mb-3">JavaScript'te Asenkron Programlama</h3> | |
| <p class="text-gray-600 mb-4">Callback'lerden Promise'lere, async/await'e kadar JavaScript'te asenkron programlama nasıl evrildi? Bu yazıda tüm bu kavramları örneklerle açıklıyorum.</p> | |
| <div class="flex justify-between items-center"> | |
| <a href="#" class="text-indigo-500 font-medium hover:text-indigo-600 transition flex items-center"> | |
| Devamını Oku <i class="fas fa-arrow-right ml-2 text-sm"></i> | |
| </a> | |
| <div class="flex items-center text-sm text-gray-500"> | |
| <i class="far fa-eye mr-1"></i> 1.5K | |
| </div> | |
| </div> | |
| </div> | |
| </article> | |
| </div> | |
| <div class="text-center mt-12"> | |
| <a href="#" class="inline-block bg-indigo-500 hover:bg-indigo-600 text-white px-6 py-3 rounded-full transition shadow-md shadow-indigo-500/30 flex items-center mx-auto"> | |
| <i class="fas fa-book mr-2"></i> Tüm Yazıları Görüntüle | |
| </a> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Projects Section --> | |
| <section id="projects" class="py-16 bg-white"> | |
| <div class="container mx-auto px-4"> | |
| <div class="text-center mb-16"> | |
| <span class="inline-block bg-indigo-100 text-indigo-800 px-3 py-1 rounded-full text-sm font-medium mb-4"> | |
| ÇALIŞMALARIM | |
| </span> | |
| <h2 class="text-3xl md:text-4xl font-bold text-gray-800 mb-4">Projelerim</h2> | |
| <p class="text-gray-600 mb-6 max-w-2xl mx-auto">Açık kaynak ve kişisel projelerimden bazıları.</p> | |
| <div class="w-20 h-1 bg-gradient-to-r from-indigo-500 to-purple-500 mx-auto"></div> | |
| </div> | |
| <div class="grid grid-cols-1 md:grid-cols-2 gap-8"> | |
| <!-- Project 1 --> | |
| <div class="bg-white rounded-xl p-6 border border-gray-200 hover:border-indigo-300 transition card-hover"> | |
| <div class="flex items-center mb-4"> | |
| <div class="bg-indigo-100 p-3 rounded-lg mr-4"> | |
| <i class="fas fa-code text-indigo-500 text-xl"></i> | |
| </div> | |
| <div> | |
| <h3 class="text-xl font-bold text-gray-800">E-Ticaret API</h3> | |
| <p class="text-sm text-gray-500">Node.js • Express • MongoDB</p> | |
| </div> | |
| </div> | |
| <p class="text-gray-600 mb-4">Node.js ve Express kullanarak geliştirdiğim RESTful API projesi. Kullanıcı yönetimi, ürün katalog yönetimi ve sipariş takibi gibi temel e-ticaret işlevlerini içerir.</p> | |
| <div class="flex justify-between items-center"> | |
| <div class="flex space-x-2"> | |
| <span class="bg-indigo-100 text-indigo-800 text-xs px-3 py-1 rounded-full">Node.js</span> | |
| <span class="bg-green-100 text-green-800 text-xs px-3 py-1 rounded-full">MongoDB</span> | |
| </div> | |
| <a href="#" class="text-gray-500 hover:text-indigo-600 transition"> | |
| <i class="fab fa-github text-lg"></i> | |
| </a> | |
| </div> | |
| </div> | |
| <!-- Project 2 --> | |
| <div class="bg-white rounded-xl p-6 border border-gray-200 hover:border-indigo-300 transition card-hover"> | |
| <div class="flex items-center mb-4"> | |
| <div class="bg-purple-100 p-3 rounded-lg mr-4"> | |
| <i class="fas fa-mobile-alt text-purple-500 text-xl"></i> | |
| </div> | |
| <div> | |
| <h3 class="text-xl font-bold text-gray-800">Hava Durumu Uygulaması</h3> | |
| <p class="text-sm text-gray-500">React Native • Redux • API</p> | |
| </div> | |
| </div> | |
| <p class="text-gray-600 mb-4">React Native ile geliştirdiğim mobil hava durumu uygulaması. Kullanıcılar konum bazlı veya manuel arama ile hava durumu bilgilerini görüntüleyebilir.</p> | |
| <div class="flex justify-between items-center"> | |
| <div class="flex space-x-2"> | |
| <span class="bg-blue-100 text-blue-800 text-xs px-3 py-1 rounded-full">React Native</span> | |
| <span class="bg-red-100 text-red-800 text-xs px-3 py-1 rounded-full">Redux</span> | |
| </div> | |
| <a href="#" class="text-gray-500 hover:text-indigo-600 transition"> | |
| <i class="fab fa-github text-lg"></i> | |
| </a> | |
| </div> | |
| </div> | |
| <!-- Project 3 --> | |
| <div class="bg-white rounded-xl p-6 border border-gray-200 hover:border-indigo-300 transition card-hover"> | |
| <div class="flex items-center mb-4"> | |
| <div class="bg-green-100 p-3 rounded-lg mr-4"> | |
| <i class="fas fa-tasks text-green-500 text-xl"></i> | |
| </div> | |
| <div> | |
| <h3 class="text-xl font-bold text-gray-800">Görev Yöneticisi</h3> | |
| <p class="text-sm text-gray-500">Vue.js • Firebase • Tailwind</p> | |
| </div> | |
| </div> | |
| <p class="text-gray-600 mb-4">Vue.js ve Firebase kullanarak geliştirdiğim gerçek zamanlı görev yönetim uygulaması. Kullanıcılar görev ekleyebilir, düzenleyebilir ve tamamlananları işaretleyebilir.</p> | |
| <div class="flex justify-between items-center"> | |
| <div class="flex space-x-2"> | |
| <span class="bg-green-100 text-green-800 text-xs px-3 py-1 rounded-full">Vue.js</span> | |
| <span class="bg-orange-100 text-orange-800 text-xs px-3 py-1 rounded-full">Firebase</span> | |
| </div> | |
| <a href="#" class="text-gray-500 hover:text-indigo-600 transition"> | |
| <i class="fab fa-github text-lg"></i> | |
| </a> | |
| </div> | |
| </div> | |
| <!-- Project 4 --> | |
| <div class="bg-white rounded-xl p-6 border border-gray-200 hover:border-indigo-300 transition card-hover"> | |
| <div class="flex items-center mb-4"> | |
| <div class="bg-yellow-100 p-3 rounded-lg mr-4"> | |
| <i class="fas fa-chart-line text-yellow-500 text-xl"></i> | |
| </div> | |
| <div> | |
| <h3 class="text-xl font-bold text-gray-800">Veri Görselleştirme Aracı</h3> | |
| <p class="text-sm text-gray-500">D3.js • JavaScript • SVG</p> | |
| </div> | |
| </div> | |
| <p class="text-gray-600 mb-4">D3.js kütüphanesi ile geliştirdiğim veri görselleştirme projesi. CSV veya JSON formatındaki verileri çeşitli grafik türlerine dönüştürerek etkileşimli şekilde sunar.</p> | |
| <div class="flex justify-between items-center"> | |
| <div class="flex space-x-2"> | |
| <span class="bg-blue-100 text-blue-800 text-xs px-3 py-1 rounded-full">D3.js</span> | |
| <span class="bg-gray-100 text-gray-800 text-xs px-3 py-1 rounded-full">JavaScript</span> | |
| </div> | |
| <a href="#" class="text-gray-500 hover:text-indigo-600 transition"> | |
| <i class="fab fa-github text-lg"></i> | |
| </a> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Testimonials --> | |
| <section class="py-16 bg-indigo-50"> | |
| <div class="container mx-auto px-4"> | |
| <div class="text-center mb-16"> | |
| <span class="inline-block bg-indigo-100 text-indigo-800 px-3 py-1 rounded-full text-sm font-medium mb-4"> | |
| MÜŞTERİ YORUMLARI | |
| </span> | |
| <h2 class="text-3xl md:text-4xl font-bold text-gray-800 mb-4">Benim Hakkımda Ne Dediler?</h2> | |
| <div class="w-20 h-1 bg-gradient-to-r from-indigo-500 to-purple-500 mx-auto"></div> | |
| </div> | |
| <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> | |
| <!-- Testimonial 1 --> | |
| <div class="bg-white p-8 rounded-xl shadow-md card-hover"> | |
| <div class="flex items-center mb-4"> | |
| <img src="https://randomuser.me/api/portraits/women/32.jpg" alt="Ayşe K." class="w-12 h-12 rounded-full mr-4"> | |
| <div> | |
| <h4 class="font-bold text-gray-800">Ayşe K.</h4> | |
| <p class="text-sm text-gray-500">Proje Yöneticisi</p> | |
| </div> | |
| </div> | |
| <p class="text-gray-600 mb-4">"Hasan ile çalışmak gerçekten keyifliydi. Projemiz için geliştirdiği çözümler hem yaratıcı hem de işlevseldi. Zamanında teslim ve profesyonel yaklaşımı için teşekkürler!"</p> | |
| <div class="flex text-yellow-400"> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star"></i> | |
| </div> | |
| </div> | |
| <!-- Testimonial 2 --> | |
| <div class="bg-white p-8 rounded-xl shadow-md card-hover"> | |
| <div class="flex items-center mb-4"> | |
| <img src="https://randomuser.me/api/portraits/men/45.jpg" alt="Mehmet T." class="w-12 h-12 rounded-full mr-4"> | |
| <div> | |
| <h4 class="font-bold text-gray-800">Mehmet T.</h4> | |
| <p class="text-sm text-gray-500">CTO</p> | |
| </div> | |
| </div> | |
| <p class="text-gray-600 mb-4">"Hasan'ın teknik bilgisi ve problem çözme yeteneği gerçekten etkileyici. Ekibimize katkıları paha biçilemez. Kendisiyle tekrar çalışmak için sabırsızlanıyorum."</p> | |
| <div class="flex text-yellow-400"> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star-half-alt"></i> | |
| </div> | |
| </div> | |
| <!-- Testimonial 3 --> | |
| <div class="bg-white p-8 rounded-xl shadow-md card-hover"> | |
| <div class="flex items-center mb-4"> | |
| <img src="https://randomuser.me/api/portraits/women/68.jpg" alt="Zeynep A." class="w-12 h-12 rounded-full mr-4"> | |
| <div> | |
| <h4 class="font-bold text-gray-800">Zeynep A.</h4> | |
| <p class="text-sm text-gray-500">Ürün Müdürü</p> | |
| </div> | |
| </div> | |
| <p class="text-gray-600 mb-4">"Hasan'ın geliştirdiği uygulama şirketimizin verimliliğini önemli ölçüde artırdı. Kullanıcı dostu arayüzü ve sorunsuz çalışması için kendisine minnettarız."</p> | |
| <div class="flex text-yellow-400"> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star"></i> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Contact Section --> | |
| <section id="contact" class="py-16 bg-white"> | |
| <div class="container mx-auto px-4"> | |
| <div class="text-center mb-16"> | |
| <span class="inline-block bg-indigo-100 text-indigo-800 px-3 py-1 rounded-full text-sm font-medium mb-4"> | |
| İLETİŞİM | |
| </span> | |
| <h2 class="text-3xl md:text-4xl font-bold text-gray-800 mb-4">Bana Ulaşın</h2> | |
| <p class="text-gray-600 mb-6 max-w-2xl mx-auto">Sorularınız, önerileriniz veya işbirliği teklifleriniz için bana ulaşabilirsiniz.</p> | |
| <div class="w-20 h-1 bg-gradient-to-r from-indigo-500 to-purple-500 mx-auto"></div> | |
| </div> | |
| <div class="flex flex-col lg:flex-row gap-12"> | |
| <div class="lg:w-1/2"> | |
| <form id="contact-form" class="space-y-6"> | |
| <div> | |
| <label for="name" class="block text-gray-700 mb-2 font-medium">Adınız</label> | |
| <input type="text" id="name" name="name" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent transition" required> | |
| </div> | |
| <div> | |
| <label for="email" class="block text-gray-700 mb-2 font-medium">E-posta Adresiniz</label> | |
| <input type="email" id="email" name="email" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent transition" required> | |
| </div> | |
| <div> | |
| <label for="subject" class="block text-gray-700 mb-2 font-medium">Konu</label> | |
| <input type="text" id="subject" name="subject" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent transition" required> | |
| </div> | |
| <div> | |
| <label for="message" class="block text-gray-700 mb-2 font-medium">Mesajınız</label> | |
| <textarea id="message" name="message" rows="5" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent transition" required></textarea> | |
| </div> | |
| <button type="submit" class="bg-indigo-500 hover:bg-indigo-600 text-white px-6 py-3 rounded-lg transition shadow-md shadow-indigo-500/30 w-full flex items-center justify-center"> | |
| <i class="fas fa-paper-plane mr-2"></i> Mesaj Gönder | |
| </button> | |
| </form> | |
| </div> | |
| <div class="lg:w-1/2"> | |
| <div class="bg-indigo-50 p-8 rounded-xl h-full"> | |
| <h3 class="text-xl font-bold text-gray-800 mb-6">İletişim Bilgileri</h3> | |
| <div class="space-y-6"> | |
| <div class="flex items-start"> | |
| <div class="bg-white p-3 rounded-lg mr-4 shadow-sm"> | |
| <i class="fas fa-envelope text-indigo-500"></i> | |
| </div> | |
| <div> | |
| <h4 class="font-medium text-gray-800">E-posta</h4> | |
| <p class="text-gray-600">hasankostek@example.com</p> | |
| </div> | |
| </div> | |
| <div class="flex items-start"> | |
| <div class="bg-white p-3 rounded-lg mr-4 shadow-sm"> | |
| <i class="fab fa-github text-gray-800"></i> | |
| </div> | |
| <div> | |
| <h4 class="font-medium text-gray-800">GitHub</h4> | |
| <p class="text-gray-600">github.com/hasankostek</p> | |
| </div> | |
| </div> | |
| <div class="flex items-start"> | |
| <div class="bg-white p-3 rounded-lg mr-4 shadow-sm"> | |
| <i class="fab fa-linkedin-in text-blue-700"></i> | |
| </div> | |
| <div> | |
| <h4 class="font-medium text-gray-800">LinkedIn</h4> | |
| <p class="text-gray-600">linkedin.com/in/hasankostek</p> | |
| </div> | |
| </div> | |
| <div class="flex items-start"> | |
| <div class="bg-white p-3 rounded-lg mr-4 shadow-sm"> | |
| <i class="fab fa-twitter text-blue-400"></i> | |
| </div> | |
| <div> | |
| <h4 class="font-medium text-gray-800">Twitter</h4> | |
| <p class="text-gray-600">@hasankostek</p> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="mt-10"> | |
| <h4 class="font-medium text-gray-800 mb-4">Çalışma Saatlerim</h4> | |
| <div class="bg-white p-4 rounded-lg shadow-sm"> | |
| <div class="space-y-3 text-gray-600"> | |
| <p class="flex justify-between"><span>Pazartesi - Cuma</span> <span class="font-medium">09:00 - 18:00</span></p> | |
| <p class="flex justify-between"><span>Cumartesi</span> <span class="font-medium">10:00 - 15:00</span></p> | |
| <p class="flex justify-between"><span>Pazar</span> <span class="font-medium text-red-500">Kapalı</span></p> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Newsletter --> | |
| <section class="py-16 bg-gradient-to-r from-indigo-500 to-purple-600 text-white"> | |
| <div class="container mx-auto px-4 text-center"> | |
| <div class="max-w-2xl mx-auto"> | |
| <h2 class="text-3xl font-bold mb-4">Yeni Yazıları Kaçırmayın</h2> | |
| <p class="text-indigo-100 mb-8">Yeni yazılarım ve projelerim hakkında bilgi almak için e-posta listeme kayıt olabilirsiniz. Haftalık bültenler gönderiyorum.</p> | |
| <form class="flex flex-col sm:flex-row gap-4 max-w-md mx-auto"> | |
| <input type="email" placeholder="E-posta adresiniz" class="flex-grow px-4 py-3 rounded-lg focus:outline-none text-gray-800"> | |
| <button type="submit" class="bg-indigo-800 hover:bg-indigo-900 px-6 py-3 rounded-lg transition shadow-md whitespace-nowrap"> | |
| <i class="fas fa-envelope mr-2"></i> Abone Ol | |
| </button> | |
| </form> | |
| <p class="text-indigo-200 text-sm mt-4">E-postalarınızı asla paylaşmayacağız. <a href="#" class="underline hover:text-white">Gizlilik Politikası</a></p> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Footer --> | |
| <footer class="bg-gray-900 text-white pt-16 pb-8"> | |
| <div class="container mx-auto px-4"> | |
| <div class="grid grid-cols-1 md:grid-cols-4 gap-10 mb-12"> | |
| <div> | |
| <div class="flex items-center space-x-2 mb-4"> | |
| <div class="w-8 h-8 rounded-full bg-indigo-500 flex items-center justify-center"> | |
| <i class="fas fa-code text-white text-sm"></i> | |
| </div> | |
| <span class="text-xl font-bold">Hasan<span class="gradient-text">Köstek</span></span> | |
| </div> | |
| <p class="text-gray-400 mb-4">Teknoloji, programlama ve kişisel gelişim üzerine yazılar paylaştığım kişisel blogum.</p> | |
| <div class="flex space-x-4"> | |
| <a href="#" class="text-gray-400 hover:text-white transition"> | |
| <i class="fab fa-twitter"></i> | |
| </a> | |
| <a href="#" class="text-gray-400 hover:text-white transition"> | |
| <i class="fab fa-linkedin-in"></i> | |
| </a> | |
| <a href="#" class="text-gray-400 hover:text-white transition"> | |
| <i class="fab fa-github"></i> | |
| </a> | |
| <a href="#" class="text-gray-400 hover:text-white transition"> | |
| <i class="fab fa-youtube"></i> | |
| </a> | |
| </div> | |
| </div> | |
| <div> | |
| <h4 class="text-lg font-semibold mb-4">Hızlı Linkler</h4> | |
| <ul class="space-y-3"> | |
| <li><a href="#about" class="text-gray-400 hover:text-white transition">Hakkımda</a></li> | |
| <li><a href="#articles" class="text-gray-400 hover:text-white transition">Yazılar</a></li> | |
| <li><a href="#projects" class="text-gray-400 hover:text-white transition">Projeler</a></li> | |
| <li><a href="#contact" class="text-gray-400 hover:text-white transition">İletişim</a></li> | |
| </ul> | |
| </div> | |
| <div> | |
| <h4 class="text-lg font-semibold mb-4">Kategoriler</h4> | |
| <ul class="space-y-3"> | |
| <li><a href="#" class="text-gray-400 hover:text-white transition">JavaScript</a></li> | |
| <li><a href="#" class="text-gray-400 hover:text-white transition">React</a></li> | |
| <li><a href="#" class="text-gray-400 hover:text-white transition">Node.js</a></li> | |
| <li><a href="#" class="text-gray-400 hover:text-white transition">Veritabanları</a></li> | |
| <li><a href="#" class="text-gray-400 hover:text-white transition">Mobil Geliştirme</a></li> | |
| </ul> | |
| </div> | |
| <div> | |
| <h4 class="text-lg font-semibold mb-4">Bülten</h4> | |
| <p class="text-gray-400 mb-4">Yeni yazılarımdan haberdar olmak için e-posta listeme kayıt olun.</p> | |
| <form class="flex"> | |
| <input type="email" placeholder="E-posta" class="px-4 py-2 rounded-l-lg focus:outline-none text-gray-800 w-full"> | |
| <button class="bg-indigo-500 hover:bg-indigo-600 px-4 py-2 rounded-r-lg transition"> | |
| <i class="fas fa-paper-plane"></i> | |
| </button> | |
| </form> | |
| </div> | |
| </div> | |
| <div class="border-t border-gray-800 pt-8 flex flex-col md:flex-row justify-between items-center"> | |
| <p class="text-gray-400 text-sm mb-4 md:mb-0">© 2023 Hasan Köstek. Tüm hakları saklıdır.</p> | |
| <div class="flex space-x-6"> | |
| <a href="#" class="text-gray-400 hover:text-white text-sm transition">Gizlilik Politikası</a> | |
| <a href="#" class="text-gray-400 hover:text-white text-sm transition">Çerezler</a> | |
| <a href="#" class="text-gray-400 hover:text-white text-sm transition">Şartlar</a> | |
| </div> | |
| </div> | |
| </div> | |
| </footer> | |
| <!-- Back to Top Button --> | |
| <button id="back-to-top" class="fixed bottom-8 right-8 bg-indigo-500 text-white w-12 h-12 rounded-full shadow-lg flex items-center justify-center transition opacity-0 invisible hover:bg-indigo-600"> | |
| <i class="fas fa-arrow-up"></i> | |
| </button> | |
| <script> | |
| // Mobile menu toggle | |
| document.getElementById('mobile-menu-button').addEventListener('click', function() { | |
| const menu = document.getElementById('mobile-menu'); | |
| menu.classList.toggle('hidden'); | |
| }); | |
| // Form submission | |
| document.getElementById('contact-form').addEventListener('submit', function(e) { | |
| e.preventDefault(); | |
| // Get form values | |
| const name = document.getElementById('name').value; | |
| const email = document.getElementById('email').value; | |
| const subject = document.getElementById('subject').value; | |
| const message = document.getElementById('message').value; | |
| // Here you would typically send the data to a server | |
| // For this example, we'll just show an alert | |
| alert(`Teşekkürler ${name}! Mesajınız başarıyla gönderildi. En kısa sürede size dönüş yapacağım.`); | |
| // Reset form | |
| this.reset(); | |
| }); | |
| // 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 - 100, | |
| behavior: 'smooth' | |
| }); | |
| // Close mobile menu if open | |
| const mobileMenu = document.getElementById('mobile-menu'); | |
| if (!mobileMenu.classList.contains('hidden')) { | |
| mobileMenu.classList.add('hidden'); | |
| } | |
| } | |
| }); | |
| }); | |
| // Back to top button | |
| const backToTopButton = document.getElementById('back-to-top'); | |
| window.addEventListener('scroll', function() { | |
| if (window.pageYOffset > 300) { | |
| backToTopButton.classList.remove('opacity-0', 'invisible'); | |
| backToTopButton.classList.add('opacity-100', 'visible'); | |
| } else { | |
| backToTopButton.classList.remove('opacity-100', 'visible'); | |
| backToTopButton.classList.add('opacity-0', 'invisible'); | |
| } | |
| }); | |
| backToTopButton.addEventListener('click', function() { | |
| window.scrollTo({ | |
| top: 0, | |
| behavior: 'smooth' | |
| }); | |
| }); | |
| // Add animation to elements when they come into view | |
| const animateOnScroll = function() { | |
| const elements = document.querySelectorAll('.card-hover, .floating'); | |
| elements.forEach(element => { | |
| const elementPosition = element.getBoundingClientRect().top; | |
| const windowHeight = window.innerHeight; | |
| if (elementPosition < windowHeight - 100) { | |
| element.classList.add('animate__animated', 'animate__fadeInUp'); | |
| } | |
| }); | |
| }; | |
| window.addEventListener('scroll', animateOnScroll); | |
| window.addEventListener('load', animateOnScroll); | |
| </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=hasannkostek/websitem" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
| </html> |