Proje Vizyonu: Nexus News

Bu proje, sadece kodlama yeteneğinizi değil, modern web geliştirme pratiklerindeki ustalığınızı bütüncül bir şekilde ölçmek için tasarlandı. Amaç, yeni teknolojileri hızla öğrenme, problem çözme ve en iyi pratikleri uygulama becerilerinizi ortaya koyan, dinamik ve tam fonksiyonel bir haber portalı oluşturmaktır.

🎯

Teknik Ustalık

Next.js ve Payload CMS kullanarak tam yığın (full-stack) bir uygulama geliştirme ve entegre etme becerisi.

🚀

Hızlı Öğrenme

Payload CMS gibi yeni bir aracı, dokümantasyonunu kullanarak etkin bir şekilde öğrenme ve projeye adapte etme kabiliyeti.

Kalite ve Pratikler

SEO, erişilebilirlik, temiz kod ve sürüm kontrolü gibi endüstri standartlarını uygulama disiplini.

Kullanılacak Teknoloji Yığını

Bu projede, modern web geliştirmenin en popüler ve güçlü araçlarından bazılarını kullanacaksınız. Aşağıdaki şema, projenin mimarisini ve teknolojilerin birbiriyle olan ilişkisini göstermektedir. Frontend ve Backend arasındaki bu ayrım, "headless" mimarinin temelini oluşturur.

Ana Bileşenler

N
Next.js: Performanslı ve SEO dostu kullanıcı arayüzleri için.
P
Payload CMS: Esnek, kod-tabanlı içerik yönetimi için.
TS
TypeScript: Proje genelinde tip güvenliği sağlamak için.
T
Tailwind CSS: Hızlı ve modern stilendirme için.
M
MongoDB: Esnek veri depolama için.

Proje Yol Haritası

Proje, Backend ve Frontend olmak üzere iki ana adıma ayrılmıştır. Aşağıdaki sekmeleri kullanarak her adımın detaylarına, gereksinimlerine ve kod örneklerine ulaşabilirsiniz. Bu yapı, geliştirme sürecini sistematik bir şekilde takip etmenize yardımcı olacaktır.

Adım 1: Backend Kurulumu

İçeriğin yönetileceği esnek ve güçlü API'yi oluşturacağımız adımdır. Veri modellerini (Collections) kod olarak tanımlayarak başlayın.

Oluşturulacak Veri Modelleri:

  • Posts (Yazılar): Başlık, slug, yazar, kategori, içerik ve SEO alanlarını içermeli.
  • Categories (Kategoriler): Yazıları gruplamak için isim ve slug alanları.
  • Authors (Yazarlar): Yazar adı ve profil fotoğrafı (avatar) için.
  • Globals - SiteSettings: Site başlığı, açıklaması ve tema renkleri gibi genel ayarlar için.

Örnek 'Posts' Collection Kodu:

import { CollectionConfig } from 'payload/types';

const Posts: CollectionConfig = {
  slug: 'posts',
  admin: { useAsTitle: 'title' },
  fields: [
    { name: 'title', type: 'text', required: true },
    { name: 'slug', type: 'text', required: true, unique: true },
    // ... diğer alanlar ...
    {
      name: 'meta',
      label: 'SEO Meta Information',
      type: 'group',
      fields: [ /* ... SEO alanları ... */ ]
    }
  ],
};

export default Posts;

Değerlendirme Kriterleri

Projeniz, aşağıda görselleştirilen kriterlere göre bütüncül bir şekilde değerlendirilecektir. Grafik, her bir alanın projenin genel başarısındaki önemini göstermektedir. Detayları görmek için grafik üzerindeki noktalara imlecinizi getirebilirsiniz.

Teslimat ve Kaynaklar

Teslim Edilecekler Listesi

Projenizi tamamladığınızda aşağıdaki maddeleri eksiksiz olarak teslim etmeniz beklenmektedir.

  • Frontend GitHub Reposu: Anlamlı commit geçmişine sahip Next.js projenizin linki.
  • CMS GitHub Reposu: Payload CMS yapılandırma kodlarınızın olduğu repo linki.
  • Canlı Demo URL'leri: Vercel/Netlify üzerinde çalışan Frontend sitesi ve CMS admin paneli.
  • README.md Dosyası: Projenin nasıl çalıştırılacağını anlatan ve karşılaştığınız zorlukları özetleyen bir doküman.

Faydalı Kaynaklar

Geliştirme sürecinde bu resmi dokümantasyonlar en iyi yardımcınız olacaktır.