Files
ayristech_new/prisma/seed.ts
T
2026-05-30 18:23:21 +03:00

259 lines
22 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { PrismaClient } from "@prisma/client";
import { PrismaPg } from "@prisma/adapter-pg";
import pkg from "pg";
import crypto from "crypto";
const { Pool } = pkg;
const connectionString = process.env.DATABASE_URL;
if (!connectionString) {
throw new Error("DATABASE_URL is not configured in your environment variables.");
}
const pool = new Pool({ connectionString });
const adapter = new PrismaPg(pool);
const prisma = new PrismaClient({ adapter });
function hashPassword(password: string): string {
const salt = crypto.randomBytes(16).toString("hex");
const hash = crypto.pbkdf2Sync(password, salt, 1000, 64, "sha512").toString("hex");
return `${salt}:${hash}`;
}
async function main() {
console.log("🌱 Database seeding started...");
// ── CLEAR EXISTING DATA ──
console.log("🧹 Clearing existing data...");
await prisma.project.deleteMany({});
await prisma.blogPost.deleteMany({});
await prisma.partner.deleteMany({});
await prisma.user.deleteMany({});
// ── SEED PROJECTS ──
console.log("📁 Seeding Projects...");
const projects = [
{
num: "01",
slug: "financeai-dashboard",
title: "FinanceAI Paneli",
tag: "YZ · Finans",
desc: "Günde 2 milyondan fazla işlemi yapay zekâ destekli anomali tespitiyle analiz eden portföy yönetim sistemi.",
spec: "Gerçek zamanlı akış, 10ms altı yanıt süresi.",
year: "2024",
client: "Gizli — Seri B Fintech",
duration: "14 hafta",
tech: ["Python", "TensorFlow", "Next.js", "PostgreSQL", "Redis", "Kafka"],
challenge: "Müşteri, 2M+ günlük finansal işlemi neredeyse gerçek zamanlı olarak işlemek ve anomalileri tespit etmek zorundaydı. Eski sistem 40 dakikalık gecikme yaratıyordu.",
solution: "Apache Kafka olay alımı ve FastAPI üzerinden sunulan TensorFlow modeli ile bir akış ML boru hattı tasarladık. Ön uç paneli, canlı akışlar için sunucu tarafı olaylarıyla Next.js üzerine inşa edildi.",
results: [
"10ms altı ortalama anomali tespit gecikmesi",
"6 aylık üretimde %99,97 çalışma süresi",
"İlk çeyrekte önlenen 2,4 milyon dolar dolandırıcılık",
"40 dakikalık gecikme 10 saniyenin altına düşürüldü"
]
},
{
num: "02",
slug: "chainsupply-network",
title: "ChainSupply Ağı",
tag: "Web3 · Lojistik",
desc: "Küresel lojistik için şeffaflık kanalları. Müşterilerin 800 milyon doları aşan envanterlerini anlık takip etmesini sağlıyor.",
spec: "Ethereum EVM, gaz optimizasyonlu akıllı sözleşmeler.",
year: "2024",
client: "Pan-Avrupa Lojistik Konsorsiyumu",
duration: "20 hafta",
tech: ["Solidity", "React", "IPFS", "Node.js", "Hardhat", "The Graph"],
challenge: "12 Avrupalı lojistik şirketi, sınır ötesi sevkiyatlarda hiç ortak görünürlüğe sahip değildi. Yıllık 3 milyon Euro manuel mutabakat maliyeti oluşuyordu.",
solution: "Kargo el değiştirme olayları için gaz optimizasyonlu akıllı sözleşmeler içeren Ethereum uyumlu bir zincir inşa ettik. IPFS sevkiyat belgelerini değişmez şekilde saklıyor.",
results: [
"800M$+ envanter değeri gerçek zamanlı takip altında",
"Uyuşmazlık çözme süresi 18 günden 4 saate düştü",
"Yığınlama ve proxy pattern ile gaz maliyeti %64 azaltıldı",
"Başlangıçtan bu yana sıfır veri bütünlüğü olayı"
]
},
{
num: "03",
slug: "meditrack-mobile",
title: "MediTrack Mobil",
tag: "Mobil · Sağlık",
desc: "Türkiye genelinde 120'den fazla klinikte kullanılan, ayda 50 binden fazla aktif kullanıcıya hizmet veren HIPAA uyumlu platform.",
spec: "Simetrik şifreleme, biyometrik protokoller.",
year: "2023",
client: "Bakanlık Bağlantılı Sağlık Ağı",
duration: "18 hafta",
tech: ["Flutter", "Firebase", "Django", "AWS", "AES-256", "Yüz Tanıma / Parmak İzi"],
challenge: "Türkiye genelindeki 120 klinik, bağlantısız kağıt tabanlı hasta kabul sistemleriyle çalışıyordu. HIPAA ve KVKK düzenlemelerini karşılayan güvenli bir mobil platform gerekiyordu.",
solution: "Biyometrik kimlik doğrulama, AES-256 şifreli yerel depolama ve AWS üzerinde Django REST backend ile çapraz platform Flutter uygulaması teslim ettik.",
results: [
"120 klinik düğümünde 50.000+ aylık aktif kullanıcı",
"Hasta kabul süresi %73 azaldı",
"HIPAA + KVKK uyumluluk denetimi başarıyla geçildi",
"Çevrimdışı öncelikli mimari ile %99,9 çalışma süresi"
]
},
{
num: "04",
slug: "novamart-platform",
title: "NovaMart Platformu",
tag: "Web · E-Ticaret",
desc: "Modüler ölçeklenebilirlik için tasarlanmış headless e-ticaret altyapısı. Günde 15 binden fazla satışı sorunsuz yönetir.",
spec: "99/100 Lighthouse performans skoru.",
year: "2023",
client: "NovaMart — Bölgesel Perakende Markası",
duration: "12 hafta",
tech: ["Next.js", "GraphQL", "Stripe", "Redis", "Vercel", "Algolia"],
challenge: "NovaMart'ın monolitik Magento mağazası günde 8.000 sipariş altında çöküyordu. Sayfa yüklenme süresi 6 saniyeyi aşıyor, mobilde sepet terk oranı %74'e ulaşmıştı.",
solution: "Platformu GraphQL API ağ geçidi, Stripe ödeme sistemi, Redis oturum önbelleği ve Algolia anlık ürün araması ile desteklenen headless Next.js vitrine dönüştürdük.",
results: [
"Sayfa yükleme: 6,2sn → 0,9sn (%85 azalma)",
"Lighthouse skoru: 38 → 99",
"Sepet terk oranı %74'ten %31'e düştü",
"Altyapı değişikliği olmadan günde 15.000 sipariş karşılandı"
]
}
];
for (const p of projects) {
await prisma.project.create({ data: p });
}
// ── SEED BLOG POSTS ──
console.log("📝 Seeding Blog Posts...");
const posts = [
{
slug: "real-time-anomaly-detection-ai",
date: "2026-05-15",
author: "Selin Arslan",
authorRole: "Head of AI Research",
image: "https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&w=1200&q=80",
trTitle: "Yapay Zekâ ile Anomali Tespiti: Finansal Sistemleri Koruma Yöntemleri",
trExcerpt: "Yapay zekâ destekli gözetim sistemleri, günümüz fintech uygulamalarında dolandırıcılığı sıfıra indirmek için nasıl konumlandırılıyor?",
trReadingTime: "5 dk okuma",
trCategory: "YZ · Finans",
trTags: ["AI", "Kafka", "Machine Learning", "Fintech", "FastAPI"],
trContent: `## Finansal Mimarilerde Hız ve Güvenlik Dengesi\n\nGünümüz finans ekosistemlerinde hız her şeydir. Günde milyonlarca işlemin aktığı sistemlerde, tek bir şüpheli işlemin gözden kaçması milyonlarca dolarlık kayıplara ve itibar zedelenmesine yol açabilir. Eski nesil toplu (batch) işleme sistemleri, işlemleri saatler sonra kontrol ettiği için dolandırıcılığı engellemede yetersiz kalmaktadır.\n\nİşte tam bu noktada **Yapay Zekâ destekli gerçek zamanlı anomali tespiti** devreye giriyor. Ayris Tech olarak geliştirdiğimiz mimarilerde, milisaniyeler seviyesinde karar üreten sistemleri nasıl tasarladığımızı inceleyelim.\n\n### Olay Akışı (Event Streaming) ve Kafka Entegrasyonu\n\nGerçek zamanlı bir sistemin kalbi veri taşıma hatlarıdır. Apache Kafka kullanarak, işlem isteklerini kuyruğa alıp eşzamansız (asynchronous) olarak ML modeline aktarıyoruz:\n\n\`\`\`javascript\n// Sistem olay akışı şeması\n[İşlem Talebi] -> [API Gateway] -> [Kafka Topic] -> [FastAPI ML Model] -> [Karar Servisi]\n\`\`\`\n\nBu sayede ön yüz uygulamalarında donma veya gecikme yaşanmadan arka planda saniyede on binlerce veri paketi analiz edilmektedir.\n\n### Anomali Tespiti Modelleri\n\nGeleneksel kural tabanlı sistemler yerine, **Isolation Forest** ve **Autoencoder (Oto-kodlayıcı)** yapay sinir ağları kullanıyoruz. Oto-kodlayıcılar, normal finansal işlemleri sıkıştırıp yeniden inşa etmeyi öğrenir. Eğer gelen yeni bir işlem normal şablona uymuyorsa, yeniden inşa hatası (reconstruction error) yüksek çıkar ve sistem bunu anında anomali olarak işaretler.\n\n- **Düşük Gecikme:** TensorFlow C++ runtime entegrasyonu sayesinde model çıkarım (inference) süresini 10ms'nin altına indiriyoruz.\n- **Sıfır Kesinti:** Modellerimizi canlı yayında (hot-swap) güncelleyebiliyoruz, böylece sistem durmadan yeni dolandırıcılık yöntemlerine karşı güncelleniyor.\n\n> **Sonuç:** Doğru tasarlanmış bir yapay zekâ hattı, şirketlerin finansal risklerini neredeyse sıfıra indirir.`,
enTitle: "Real-time Anomaly Detection with AI: Securing Financial Architectures",
enExcerpt: "How are artificial intelligence-driven surveillance engines positioned to minimize fintech fraud to absolute zero?",
enReadingTime: "5 min read",
enCategory: "AI · Fintech",
enTags: ["AI", "Kafka", "Machine Learning", "Fintech", "FastAPI"],
enContent: `## Speed vs. Security in Modern Financial Stacks\n\nIn today's global financial ecosystems, speed is everything. With millions of transactions flowing through databases daily, letting a single fraudulent activity slip by can lead to catastrophic losses and severely damaged brand trust. Traditional batch processing systems are obsolete—detecting fraud hours after a transaction completes is no longer acceptable.\n\nThis is where **artificial intelligence-driven real-time anomaly detection** changes the game. Let's analyze how we architect sub-10ms neural evaluation engines at Ayris Tech.\n\n### Event Streaming and Kafka Architecture\n\nThe cornerstone of any real-time system is the data ingestion pipeline. Utilizing Apache Kafka, we ingest transaction event streams asynchronously and route them directly to our inference nodes:\n\n\`\`\`javascript\n// Event streaming schema\n[Transaction Request] -> [API Gateway] -> [Kafka Topic] -> [FastAPI ML Engine] -> [Decision Hub]\n\`\`\`\n\nThis decouples the heavy neural analysis from the transactional user interface, ensuring perfect responsive stability under heavy loads.\n\n### Anomaly Detection Models\n\nRather than hardcoded conditional rules, we utilize advanced **Isolation Forests** and Deep Neural **Autoencoders**. Autoencoders learn to compress and reconstruct normal transactional behaviors. When an anomalous transaction occurs, the reconstruction error spikes, immediately triggering an automated lock.\n\n- **Sub-10ms Latency:** Deployed via optimized TensorFlow runtimes, model inference lags remain well under 10ms.\n- **Dynamic Hot-Swaps:** Models are retrained and updated on-the-fly, providing uninterrupted security layers against changing vectors.\n\n> **Verdict:** A properly engineered streaming ML pipeline reduces financial exposure to absolute zero.`
},
{
slug: "web3-consortium-networks-logistics",
date: "2026-05-10",
author: "Emre Doğan",
authorRole: "Web3 Lead Engineer",
image: "https://images.unsplash.com/photo-1639762681485-074b7f938ba0?auto=format&fit=crop&w=1200&q=80",
trTitle: "Küresel Lojistikte Web3 Devrimi: Konsorsiyum Ağı Nasıl Kurulur?",
trExcerpt: "Çok aktörlü tedarik zinciri ağlarında şeffaflığı ve veri bütünlüğünü akıllı sözleşmeler ve değişmez kayıtlarla sağlamanın yolları.",
trReadingTime: "7 dk okuma",
trCategory: "Web3 · Lojistik",
trTags: ["Solidity", "Blockchain", "IPFS", "EVM", "Smart Contracts"],
trContent: `## Lojistikte Güven Problemi\n\nKüresel ticarette bir ürün, üreticiden tüketiciye ulaşana kadar ortalama 15 farklı aracı firmanın (limanlar, gümrükler, yerel lojistik firmaları, taşıyıcılar) elinden geçer. Her aktörün kendi veritabanını tutması; veri uyuşmazlıklarına, kayıp evraklara ve haftalar süren mutabakat süreçlerine sebep olur.\n\n**Konsorsiyum blokzincir ağları (Consortium Blockchains)**, tüm bu tarafların ortak, değişmez ve şeffaf bir defter üzerinde anlaşmasını sağlar.\n\n### Solidity ile Gaz Optimizasyonlu Akıllı Sözleşmeler\n\nLojistik olaylarında her el değiştirme (handoff) blokzincire yazıldığından, işlem ücretleri (gas fee) kritik öneme sahiptir. EVM (Ethereum Virtual Machine) tabanlı sistemlerde maliyetleri düşürmek için şu teknikleri kullanıyoruz:\n\n1. **Batching (Yığınlama):** Birden fazla kargo durum güncellemesini tek bir işlemde toplu olarak zincire göndermek.\n2. **Proxy Patterns (Vekil Kalıpları):** Sözleşme kodunu her seferinde baştan dağıtmak yerine, ortak mantığı barındıran tek bir vekil üzerinden çalıştırarak bellek tasarrufu sağlamak.\n\n\`\`\`solidity\n// Gas optimized handoff event struct\nstruct Handoff {\n bytes32 packageId;\n address sender;\n address receiver;\n uint32 timestamp;\n bytes32 docHash; // IPFS document reference\n}\n\`\`\`\n\n### Değişmez Belge Saklama: IPFS Entegrasyonu\n\nFaturalar, konşimentolar ve gümrük belgeleri gibi büyük dosyaları doğrudan blokzincir üzerinde saklamak inanılmaz pahalıdır. Bu yüzden, dosyaları **IPFS (InterPlanetary File System)** üzerinde saklayıp, sadece bu belgelerin cryptographic hash (parmak izi) değerlerini akıllı sözleşmeye kaydediyoruz. Belgelerde yapılacak en ufak bir değişiklik parmak izini bozacağı için evrakta sahtecilik tamamen imkansız hale gelir.\n\nLojistik ağınızı blokzincir teknolojisiyle güçlendirerek, mutabakat sürelerini günlerden dakikalara indirebilirsiniz.`,
enTitle: "The Web3 Revolution in Global Logistics: Architecting Consortium Networks",
enExcerpt: "How smart contracts and immutable logs secure multi-actor transparency and data integrity in modern supply chains.",
enReadingTime: "7 min read",
enCategory: "Web3 · Logistics",
enTags: ["Solidity", "Blockchain", "IPFS", "EVM", "Smart Contracts"],
enContent: `## The Trust Gap in Modern Cargo\n\nBefore a physical good moves from manufacturer to consumer, it passes through an average of 15 intermediaries—customs brokers, freight forwarders, terminal operators, and local distributors. When every actor maintains a siloed legacy database, friction, lost documents, and massive reconciliation overheads are inevitable.\n\nA **Consortium Blockchain** establishes a single, shared, and cryptographically immutable ledger that all actors can trust implicitly.\n\n### Solidity Optimizations for Real-World Workflows\n\nBecause every logistics event represents an on-chain transaction, optimizing gas consumption within EVM (Ethereum Virtual Machine) sandboxes is of paramount importance:\n\n1. **Transaction Batching:** Grouping multiple state shifts into a single cryptographic payload.\n2. **Proxy Patterns:** Deploying upgradeable structural proxies (ERC-1967) to drastically reduce initial contract footprint and variable deployment gas fees.\n\n\`\`\`solidity\n// Gas optimized handoff event struct\nstruct Handoff {\n bytes32 packageId;\n address sender;\n address receiver;\n uint32 timestamp;\n bytes32 docHash; // IPFS document reference\n}\n\`\`\`\n\n### Immutable Assets: IPFS Document Anchoring\n\nUploading multi-megabyte PDFs (such as bills of lading) directly to Ethereum storage is financially unviable. We bypass this by offloading files to **IPFS (InterPlanetary File System)**. The generated cryptographic hash is then written to the ledger. This guarantees document integrity: even a single modified pixel in a PDF will yield a totally different hash, making tampering instantly visible.\n\nTransitioning to consortium ledger architectures shrinks contract reconciliation latency from 18 days to less than 4 hours.`
},
{
slug: "headless-ecommerce-conversion-rates",
date: "2026-05-01",
author: "Mustafa Yıldız",
authorRole: "Founder & Architect",
image: "https://images.unsplash.com/photo-1460925895917-afdab827c52f?auto=format&fit=crop&w=1200&q=80",
trTitle: "Headless E-Ticaret Mimarisi ve Sayfa Hızının Dönüşüm Oranlarına Etkisi",
trExcerpt: "Milisaniyeler satış demektir. Headless Next.js altyapılarıyla yükleme sürelerini %80 kısaltıp sepet terk oranını nasıl düşürdük?",
trReadingTime: "6 dk okuma",
trCategory: "Web · E-Ticaret",
trTags: ["Next.js", "Headless CMS", "GraphQL", "Performance", "SEO"],
trContent: `## Milisaniyelerin Ticari Değeri\n\nE-ticarette her milisaniye cironuzu etkiler. Google verilerine göre, mobil sayfa yüklenme süresi 1 saniyeden 3 saniyeye çıktığında hemen çıkma oranı (bounce rate) %32 artmaktadır. Geleneksel monolitik e-ticaret altyapıları (eski Magento, WooCommerce vb.), sunucu taraflı hantal yapıları ve sıkışık veri sorguları nedeniyle bu hız hedeflerini yakalayamazlar.\n\n**Headless (Kafasız) Mimari**, arka plan ticaret mantığı ile ön yüz görsel katmanını birbirinden tamamen ayırarak bu sorunu kökten çözer.\n\n### Headless Next.js ile 99/100 Performansı\n\nAyris Tech e-ticaret projelerinde, ön yüzde **Next.js App Router** kullanırken arka planda GraphQL API ağ geçidiyle haberleşen headless motorları tercih ediyoruz. Bu yaklaşımın temel avantajları:\n\n- **Static Generation (SSG):** Ürün sayfalarını derleme aşamasında (build time) statik HTML olarak üretiyor ve küresel CDN'ler üzerinden anında yüklenecek şekilde dağıtıyoruz.\n- **Incremental Static Regeneration (ISR):** Fiyat veya stok değiştiğinde tüm siteyi baştan derlemek yerine, sadece ilgili ürün sayfasını arka planda milisaniyeler içinde güncelliyoruz.\n\n\`\`\`javascript\n// Next.js ISR (Incremental Static Regeneration) örneği\nexport const revalidate = 60; // sayfayı en fazla dakikada bir güncelle\n\`\`\`\n\n### Arama Deneyimi ve Algolia Entegrasyonu\n\nKullanıcılar arama çubuğuna tıkladığında binlerce ürün arasından aradıklarını anında bulmalıdır. Bunun için headless altyapımızı **Algolia** anlık arama indeksi ile destekliyoruz. Her tuşa basıldığında (on keypress) 10ms içinde sonuçlar listelenir, bu da doğrudan sepet ekleme oranlarını %24 artırır.\n\nEğer sepet terk oranlarınızı düşürmek ve küresel çapta en hızlı alışveriş deneyimini sunmak istiyorsanız, e-ticaret sitenizi modern headless mimarilere taşımalısınız.`,
enTitle: "Headless E-commerce & Page Speed Impact on Conversion Rates",
enExcerpt: "Milliseconds are sales. How we cut load times by 80% and minimized shopping cart abandonment with headless Next.js layouts.",
enReadingTime: "6 min read",
enCategory: "Web · E-commerce",
enTags: ["Next.js", "Headless CMS", "GraphQL", "Performance", "SEO"],
enContent: `## The Financial Value of Milliseconds\n\nIn the digital storefront arena, milliseconds directly correlate to transactional yield. Google data proves that when mobile page load speeds increase from 1 to 3 seconds, bounce rates spike by over 32%. Monolithic legacy suites (such as un-decoupled Magento or standard WooCommerce instances) collapse under these performance parameters due to heavy database roundtrips and synchronous asset delivery.\n\n**Headless Architecture** breaks this bottleneck by decoupling the backend transactional commerce engine from the client-facing presentation layer.\n\n### Yielding 99/100 Lighthouse Grades with Next.js\n\nAt Ayris Tech, we deploy **Next.js App Router** on the edge combined with GraphQL API gateways to serve transactional data. This approach offers distinct performance advantages:\n\n- **Static Generation (SSG):** Product catalogues are compiled into lightweight static HTML at build time and distributed across global edge nodes for near-instant rendering.\n- **Incremental Static Regeneration (ISR):** When pricing or stock variables change, we update specific nodes on-the-fly in the background rather than rebuild the entire portal.\n\n\`\`\`javascript\n// Next.js ISR (Incremental Static Regeneration) config\nexport const revalidate = 60; // invalidate cached pages every 60 seconds\n\`\`\`\n\n### Instant Search with Algolia\n\nSlow search bars kill conversions. We connect our headless catalogues with **Algolia** indexing arrays to deliver predictive, instant search results on keypress inside of 10ms. This micro-interaction alone yields an average 24% uplift in Add-to-Cart events.\n\nMigrating to high-craft headless setups is no longer a luxury—it is the modern benchmark for high-converting global trade.`
}
];
for (const post of posts) {
await prisma.blogPost.create({ data: post });
}
// ── SEED PARTNERS ──
console.log("🤝 Seeding Partners...");
const partners = [
{
name: "Stellar Neural Labs",
tag: "YZ Araştırmaları",
mono: "SNL",
year: "2024",
desc: "Büyük dil modelleri (LLM) ve anlamsal veri analizi algoritmaları üzerine ortak Ar-Ge çalışmaları yürütüyoruz."
},
{
name: "EVM Labs",
tag: "Web3 Altyapısı",
mono: "EVM",
year: "2023",
desc: "Gaz optimizasyonu yüksek akıllı sözleşmeler ve L2 ölçeklendirme çözümleri geliştirme ortağımız."
},
{
name: "Alpha Logistics Hub",
tag: "Tedarik Zinciri",
mono: "ALH",
year: "2024",
desc: "Küresel ölçekte değişmez izlenebilirlik ağları kurmak üzere konsorsiyum blokzincir entegrasyon ortağımız."
},
{
name: "Vercel Edge Network",
tag: "Headless Web",
mono: "VCL",
year: "2023",
desc: "Next.js sunucu tarafı işleme ve sınır bilgi işlem (edge computing) teknolojileri entegrasyon ortağımız."
},
{
name: "Stripe Systems",
tag: "Küresel Ödemeler",
mono: "STP",
year: "2024",
desc: "Çok para birimli, yüksek güvenlikli finansal akış ödeme geçitleri kurumsal entegrasyon partnerimiz."
},
{
name: "Kafka Streams Inc",
tag: "Gerçek Zamanlı Veri",
mono: "KFK",
year: "2025",
desc: "Saniyede on binlerce olayı milisaniyeler seviyesinde işleyen veri boru hatları tasarım ortağımız."
}
];
for (const p of partners) {
await prisma.partner.create({ data: p });
}
// ── SEED USERS ──
console.log("👤 Seeding Admin User...");
const adminPasswordHash = hashPassword("admin123");
await prisma.user.create({
data: {
username: "admin",
password: adminPasswordHash,
},
});
console.log("✅ Database seeding complete!");
}
main()
.catch((e) => {
console.error("❌ Seeding failed:", e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});