Files
RepoHub/README.tr.md
T
Yusuf İpek 9266de1f3e docs: Add comprehensive package contribution guide and validation tooling
- Add bilingual README with English/Turkish language switcher
- Create detailed package contribution guidelines with platform-specific naming conventions
- Add validation script for verifying package presets against database
- Include best practices and example PR format for contributors
- Add tsx dependency for running TypeScript validation scripts
- Document validation workflow with manual and automated verification options
2025-11-23 14:26:07 +03:00

253 lines
7.1 KiB
Markdown
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.
# RepoHub - Çok Platformlu Paket Yöneticisi
[🇬🇧 English](./README.md) | **🇹🇷 Türkçe**
**Linux, Windows ve macOS'te resmi depolardan yazılım kurulumunu basitleştirin.**
RepoHub, farklı işletim sistemlerinde paket keşfi ve kurulumu için birleşik bir arayüz sağlar.
## 🚀 Özellikler
- **Çok Platformlu Destek**: Linux (Debian, Ubuntu, Arch, Fedora), Windows ve macOS'te çalışır.
- **Resmi Depolar**: Yazılımlara yalnızca güvenilir, resmi kaynaklardan erişin.
- **Script Oluşturma**: Seçtiğiniz platform için idempotent kurulum scriptleri oluşturun.
- **Akıllı Filtreleme**: Paketleri verimli bir şekilde bulun ve filtreleyin.
## 🛠️ Teknoloji Yığını
### Frontend
- **Framework**: Next.js 14+ (React)
- **Stil**: Tailwind CSS
- **İkonlar**: Lucide React
- **Durum Yönetimi**: React Query + Zustand
### Backend
- **Runtime**: Node.js (TypeScript)
- **Veritabanı**: PostgreSQL
- **Altyapı**: Docker
## 🏁 Başlangıç
### Gereksinimler
- Node.js 18+
- pnpm
- Docker (isteğe bağlı, veritabanı için)
### Kurulum
1. **Depoyu klonlayın:**
```bash
git clone https://github.com/yusufipk/RepoHub.git
cd RepoHub
```
2. **Bağımlılıkları yükleyin:**
```bash
pnpm install
```
3. **Ortam Değişkenlerini Ayarlayın:**
`.env.example` dosyasını `.env` olarak kopyalayın ve veritabanı bağlantınızı yapılandırın.
```bash
cp .env.example .env
```
4. **Veritabanını Başlatın:**
Veritabanı şemasını kurmak ve migrasyonları uygulamak için başlatma scriptini çalıştırın.
```bash
pnpm init:db
```
5. **Geliştirme sunucusunu çalıştırın:**
```bash
pnpm dev
```
Tarayıcınızda [http://localhost:3000](http://localhost:3000) adresini açın.
## 🔄 API Kullanımı
### Depoları Senkronize Etme
API kullanarak depo senkronizasyonunu tetikleyebilirsiniz. Bu, paket veritabanını güncellemek için kullanışlıdır.
**Endpoint:** `POST /api/sync`
**Başlıklar:**
- `Content-Type`: `application/json`
- `x-sync-secret`: Senkronizasyon gizli anahtarınız (`SYNC_SERVER_ONLY=true` ise gerekli)
**Body Parametreleri:**
- `platform`: Senkronize edilecek platform. Seçenekler:
- `debian`: Debian paketlerini senkronize et (Resmi Repo)
- `ubuntu`: Ubuntu paketlerini senkronize et (Resmi Repo)
- `arch`: Arch Linux paketlerini senkronize et (Resmi Repo)
- `aur`: Arch User Repository (AUR) paketlerini senkronize et
- `fedora`: Fedora paketlerini senkronize et (Resmi Repo)
- `windows`: Windows paketlerini senkronize et (Winget)
- `macos`: macOS paketlerini senkronize et (Homebrew)
- `all`: Tüm platformları senkronize et
**Örnek İstek:**
```bash
curl -X POST http://localhost:3000/api/sync \
-H "Content-Type: application/json" \
-H "x-sync-secret: gizli_anahtariniz" \
-d '{"platform": "all"}'
```
## 📦 Paket Önerilerine Katkıda Bulunma
[🇬🇧 English](./README.md) | **🇹🇷 Türkçe**
RepoHub, kullanıcılara kişiselleştirilmiş öneriler sunmak için düzenlenmiş paket listeleri kullanır. Paket ekleyerek bu önerileri geliştirmeye yardımcı olabilirsiniz!
### Paket Nasıl Eklenir
Paket önerileri `/src/data/recommendationPresets.ts` dosyasında saklanır. İşte bir paket ekleme adımları:
#### 1. Doğru Konumu Bulun
Paketinizin ait olduğu platform ve kategoriye gidin:
```typescript
export const PACKAGE_PRESETS = {
windows: {
development: ["Git.Git", "Microsoft.VisualStudioCode"],
design: ["GIMP.GIMP", "Inkscape.Inkscape"],
// ... diğer kategoriler
},
// ... diğer platformlar
}
```
**Mevcut Platformlar:**
- `windows` - Windows (Winget)
- `macos` - macOS (Homebrew)
- `ubuntu` - Ubuntu (APT)
- `debian` - Debian (APT)
- `arch` - Arch Linux (Pacman/AUR)
- `fedora` - Fedora (DNF)
**Mevcut Kategoriler:**
- `development` - Geliştirme araçları, IDE'ler, derleyiciler
- `design` - Grafik, kreatif yazılımlar
- `multimedia` - Medya oynatıcılar, editörler
- `system-tools` - Sistem araçları
- `gaming` - Oyun başlatıcıları, platformlar
- `productivity` - Ofis, tarayıcılar, üretkenlik uygulamaları
- `education` - Eğitim yazılımları
#### 2. Doğru Paket Adını Alın
**⚠️ KRİTİK:** Paket adları veritabanında göründükleri gibi **tam olarak** eşleşmelidir.
**Platformlara göre paket adı formatları:**
- **Windows**: `Yayinci.PaketAdi` (örn., `Microsoft.VisualStudioCode`)
- **macOS**: kucuk-harf-tireli (örn., `visual-studio-code`)
- **Linux**: küçük harf, dağıtıma göre değişir (örn., `code`, `docker.io`)
#### 3. Paketin Var Olduğunu Doğrulayın
**Seçenek A: Doğrulama Scriptini Kullanma (Önerilen)**
Veritabanı erişiminiz varsa:
```bash
# Belirli bir platformu doğrula
npm run validate:presets -- windows
# Birden fazla platformu doğrula
npm run validate:presets -- ubuntu debian arch
# Tüm platformları doğrula
npm run validate:presets -- --all
```
Script şunları gösterecek:
- ✅ Veritabanında bulunan paketler
- ❌ Bulunamayan paketler
- 💡 Benzer paket önerileri
**Seçenek B: Manuel Doğrulama**
Veritabanı erişiminiz yoksa:
1. Canlı RepoHub web sitesinde arama yapın
2. Arama sonuçlarında paketinizi bulun
3. Görüntülenen **tam paket adını** kopyalayın
4. Veya resmi paket depolarını kontrol edin:
- Windows: [winget.run](https://winget.run/)
- macOS: `brew search <paket>`
- Ubuntu/Debian: `apt search <paket>`
- Arch: [archlinux.org/packages](https://archlinux.org/packages/)
- Fedora: [packages.fedoraproject.org](https://packages.fedoraproject.org/)
#### 4. Paketi Ekleyin
Paket adını diziye ekleyin:
```typescript
windows: {
development: [
"Git.Git",
"Microsoft.VisualStudioCode",
"Docker.DockerDesktop" // ← Yeni paketiniz
]
}
```
#### 5. Değişikliklerinizi Test Edin
1. Doğrulamayı çalıştırın:
```bash
npm run validate:presets -- windows
```
2. Geliştirme sunucusunu başlatın:
```bash
npm run dev
```
3. Uygulamada test edin:
- Onboarding'i tamamlayın
- İlgili kategoriyi seçin
- Paketinizin önerilerde görünüp görünmediğini kontrol edin
### En İyi Uygulamalar
**YAPIN ✅**
- Doğrulama scriptini kullanarak paket adlarını doğrulayın
- Popüler, iyi bakımlı paketler ekleyin
- Göndermeden önce test edin
- Resmi depolardan tam paket adlarını kullanın
**YAPMAYIN ❌**
- Paket adlarını tahmin etmeyin
- Kullanımdan kaldırılmış paketler eklemeyin
- Doğrulamayı atlamayın
- Kategoriler arasında tekrar eklemeyin
### Örnek Pull Request
```
Windows Önerilerine Popüler Geliştirme Araçları Eklendi
- development'a Docker.DockerDesktop eklendi
- development'a Postman.Postman eklendi
- Doğrulama: ✅ Tüm paketler doğrulandı (%100 bulundu)
```
## 🤝 Katkıda Bulunma
Katkılar hoş karşılanır! Lütfen Pull Request göndermekten çekinmeyin.
1. Projeyi fork edin
2. Feature branch'inizi oluşturun (`git checkout -b feature/HarikaBirOzellik`)
3. Değişikliklerinizi commit edin (`git commit -m 'Harika bir özellik ekle'`)
4. Branch'inizi push edin (`git push origin feature/HarikaBirOzellik`)
5. Bir Pull Request açın