Deniko, öğretmenler ve öğrenciler için geliştirilmiş kapsamlı bir eğitim yönetim ve özel ders takip platformudur.
- Node.js 22+
- pnpm 10+
- PostgreSQL 18 Veritabanı
- Google Cloud Storage Hesabı (veya emülatör)
- Docker (Opsiyonel, container ile çalıştırmak için)
-
Bağımlılıkları yükleyin:
pnpm install
-
Çevresel değişkenleri ayarlayın:
Web Uygulaması (apps/web):
apps/web/.env.exampledosyasınıapps/web/.envolarak kopyalayın ve gerekli anahtarları doldurun.API (apps/api):
apps/api/.env.exampledosyasınıapps/api/.envolarak kopyalayın ve gerekli anahtarları doldurun. -
Veritabanı İstemcisini Oluşturun:
pnpm prisma:generate
-
Veritabanını hazırlayın:
pnpm prisma:migrate
Geliştirme sunucusunu başlatmak için:
pnpm dev- Web Uygulaması:
http://localhost:3000 - API Sunucusu:
http://localhost:4000(Sadece dahili kullanım)
Kod kalitesini kontrol etmek için:
pnpm lint # ESLint kontrolü
pnpm test:all # Tüm testleri çalıştırProjenin detaylı teknik dokümantasyonu docs/ klasörü altındadır:
- Dokümantasyon Ana Sayfası: Ana döküman.
- Yol Haritası: Yapılıcak eklenicek özellikler.
- Sistem Diyagramları: Basit anlaşılabilir diagramlar.
- Mimari Genel Bakış: Basit Mimari bakış.
- Mimari ve Teknoloji Yığını: Genel sistem yapısı.
- Profil Sistemi: Kullanıcı profilleri, gizlilik ve avatar yönetimi.
- Depolama (Storage): Dosya yükleme ve GCS entegrasyonu.
- Kimlik Doğrulama (Auth): Giriş, kayıt ve güvenlik.
- API Dokümantasyonu: API endpoint'leri.
Prodüksiyon sürümü almak için:
pnpm buildProje Next.js 16 (App Router) ve Fastify üzerine inşa edilmiş bir Monorepo yapısındadır.
apps/web: Next.js frontend uygulaması (Port: 3000).apps/api: Fastify backend API servisi (Port: 4000).packages/db: Paylaşılan Prisma şeması ve veritabanı istemcisi.packages/storage: Google Cloud Storage dosya işlemleri.packages/logger: Merkezi Pino loglama yapılandırması.packages/validation: Paylaşılan Zod şemaları.
Daha detaylı bilgi için docs/architecture.md dosyasına bakınız.
- Yeni bir branch açın (
feature/ozellik-adi). - Değişikliklerinizi yapın.
- Testleri çalıştırın.
- Pull Request (PR) açın.