Modern Reddit Benzeri Topluluk Platformu
Discuss App, Next.js 15 ve modern web teknolojileri kullanılarak geliştirilmiş bir forum uygulamasıdır. Reddit'in temel işlevselliklerini modern bir tasarımla birleştirerek, kullanıcı dostu bir topluluk deneyimi sunmayı amaçlamaktadır.
Bu proje, klasik forum tasarımlarına modern bir yaklaşım getirmek amacıyla geliştirilmiştir. Özellikle karanlık tema ve glassmorphism efektleri kullanılarak görsel olarak çekici bir deneyim oluşturulmuştur. Geliştiriciler için de öğrenme amaçlı Next.js 15'in yeni özelliklerini deneyimleme fırsatı sunmaktadır.
- Modern web teknolojilerini kullanarak güncel bir forum deneyimi sunmak
- Next.js 15 ve Tailwind CSS v4'ün beta özelliklerini keşfetmek
- TypeScript ile tip güvenli bir geliştirme ortamı sağlamak
- GitHub OAuth entegrasyonu ile kolay giriş sistemi oluşturmak
- Dark Theme: Göz dostu karanlık tema
- Glassmorphism: Şeffaf blur efektleri
- Responsive Design: Mobil ve desktop uyumlu
- Smooth Animations: CSS transitions ve hover efektleri
- Interactive Elements: Mouse takip eden gradient efektler
- GitHub OAuth: Auth.js v5 ile entegrasyon
- Session Yönetimi: Güvenli oturum kontrolü
- Protected Routes: Giriş gerektiren sayfalar
- Post Oluşturma: Konu bazlı içerik paylaşımı
- Yorum Sistemi: Nested comment yapısı
- Topic Kategorileri: İçerik organizasyonu
- Sidebar Navigation: Popüler konuları listeleme
Kategori | Teknoloji | Açıklama |
---|---|---|
Framework | Next.js 15 | React tabanlı full-stack framework |
Dil | TypeScript | JavaScript'e tip güvenliği ekler |
Styling | Tailwind CSS v4 | Utility-first CSS framework |
Database | SQLite + Prisma | Hafif veritabanı ve ORM |
Auth | Auth.js v5 | Modern kimlik doğrulama |
Deployment | Vercel Ready | Production'a hazır yapılandırma |
- Node.js 18.0 veya üzeri
- npm, yarn veya pnpm
- Git
- Repoyu klonlayın
git clone https://github.com/biyonik/discuss-app.git
cd discuss-app
- Bağımlılıkları yükleyin
npm install
- Environment dosyasını oluşturun
cp .env.example .env.local
-
GitHub OAuth App oluşturun
- GitHub Settings > Developer settings > OAuth Apps
- New OAuth App oluşturun
- Homepage URL:
http://localhost:3000
- Authorization callback URL:
http://localhost:3000/api/auth/callback/github
-
Environment variables'ları ayarlayın
DATABASE_URL="file:./dev.db"
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret
NEXTAUTH_SECRET=your_random_secret_key
NEXTAUTH_URL=http://localhost:3000
- Veritabanını başlatın
npx prisma generate
npx prisma db push
- Geliştirme sunucusunu çalıştırın
npm run dev
Uygulama http://localhost:3000 adresinde çalışacaktır.
src/
├── app/ # Next.js App Router
│ ├── api/ # API endpoints
│ │ ├── auth/ # Auth.js routes
│ │ ├── posts/ # Post CRUD operations
│ │ └── comments/ # Comment operations
│ ├── posts/ # Post sayfaları
│ ├── topics/ # Topic sayfaları
│ ├── layout.tsx # Root layout
│ ├── page.tsx # Ana sayfa
│ ├── loading.tsx # Loading UI
│ ├── not-found.tsx # 404 sayfası
│ └── globals.css # Global stiller
├── components/ # React bileşenleri
│ ├── auth/ # Giriş/çıkış bileşenleri
│ ├── posts/ # Post ile ilgili bileşenler
│ ├── comments/ # Yorum bileşenleri
│ └── layout/ # Layout bileşenleri
├── lib/ # Utility fonksiyonları
│ ├── db.ts # Prisma client
│ └── auth.ts # Auth konfigürasyonu
├── prisma/ # Veritabanı
│ └── schema.prisma # Database şeması
└── types/ # TypeScript tip tanımları
- Uygulamayı açın ve "GitHub ile Giriş" butonuna tıklayın
- GitHub hesabınızla yetkilendirme yapın
- Ana sayfada konuları keşfetmeye başlayın
- "Toplulukla ne paylaşmak istiyorsun?" alanına tıklayın
- Konu seçin, başlık ve içerik ekleyin
- "Paylaş" butonuna tıklayarak gönderinizi yayınlayın
- İlgilendiğiniz bir posta tıklayın
- Sayfa altındaki yorum alanını kullanın
- Mevcut yorumlara yanıt verebilirsiniz
# Tip kontrolü
npm run type-check
# Build alma
npm run build
# Production başlatma
npm start
# Veritabanı sıfırlama
npx prisma db push --force-reset
# Schema'yı güncelledikten sonra
npx prisma db push
npx prisma generate
- Upvote/Downvote sistemi
- Kullanıcı profil sayfaları
- Gelişmiş arama fonksiyonu
- Notification sistemi
- Moderasyon araçları
- Dark/Light theme toggle
- Mobile responsive iyileştirmeleri
- Bu repoyu fork edin
- Yeni bir feature branch oluşturun (
git checkout -b feature/yeni-ozellik
) - Değişikliklerinizi commit edin (
git commit -m 'feat: yeni özellik eklendi'
) - Branch'inizi push edin (
git push origin feature/yeni-ozellik
) - Pull Request oluşturun
- TypeScript kullanın
- ESLint kurallarına uyun
- Responsive tasarım prensiplerine dikkat edin
- Test yazın (henüz test yapısı kurulmadı)
Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.
- GitHub: @biyonik
- Email: ahmet.altun60@gmail.com
Projeyi beğendiyseniz ⭐ vermeyi unutmayın!