# Qwen Proje Dokümantasyonu - note.apper

## Proje Genel Bakış
note.apper adlı bu modern not alma ve organizasyon uygulaması Laravel 11, Livewire 3 ve Tailwind CSS kullanılarak geliştirilmiştir. Uygulama, not yönetimi, etiketleme sistemi, şirket ilişkilendirme, sürükle-bırak işlevselliği ve Livewire kullanarak gerçek zamanlı güncellemeler gibi özellikler sunar.

## Proje Yapısı
- **app/Actions**: İş mantığı için eylem sınıflarını içerir
- **app/Console**: Artisan komutlarını içerir
- **app/Exceptions**: Hata işleme yapılandırması
- **app/Http**: Denetleyiciler, ara yazılımlar ve istek sınıfları
- **app/Livewire**: Livewire bileşenleri (NoteForm, NoteModal, AllNotes)
- **app/Models**: Eloquent modelleri (Note, User, Company, Label, vb.)
- **app/Policies**: Yetkilendirme için Laravel politikaları
- **app/Providers**: Servis sağlayıcıları
- **app/Scopes**: Model kapsamları (CurrentTeamScope)
- **app/View**: Görünümlerle ilgili sınıflar
- **config/**: Laravel yapılandırma dosyaları
- **database/**: Göçler, tohumlar ve fabrikalar
- **public/**: Genel varlıklar ve index.php
- **resources/**: Görünümler, CSS ve JavaScript varlıkları
- **routes/**: Web, API, konsol ve kanal rotaları
- **storage/**: Derlenmiş görünümler, dosya yüklemeleri ve önbellek
- **tests/**: PHPUnit test dosyaları

## Temel Modeller
- **Note**: Kullanıcılar, şirketler ve etiketlerle ilişkileri olan notlar için ana model
- **User**: Kimlik doğrulama ile kullanıcı modeli
- **Company**: Notları şirketlerle ilişkilendirmek için şirket modeli
- **Label**: Notları etiketlemek için etiket modeli
- **Team**: Çok kiracılı destek için takım modeli
- **Category**: Notları organize etmek için kategori modeli
- **Color**: Not renk yönetimi için renk modeli
- **Link**: İlgili bağlantılar için bağlantı modeli
- **Membership**: Takım üyelikleri için üyelik modeli
- **NoteCompany, NoteLabel, NoteUser**: Çoktan çoğa ilişkiler için birleştirme modelleri

## Ana Özellikler
- ✅ **Not Yönetimi**: Not oluşturma, düzenleme, silme ve sabitleme
- ✅ **Etiketleme Sistemi**: Dinamik etiket oluşturma ve arama
- ✅ **Şirket İlişkilendirme**: Notları şirketlerle bağlama
- ✅ **Sürükle ve Bırak**: Etiket ve şirketleri sürükle-bırak yöntemiyle ekleme
- ✅ **Hızlı Arama**: Notlarda anında arama için Ctrl+K kısayolu
- ✅ **Çok Kiracılılık**: Laravel Jetstream ile takım yönetimi
- ✅ **Renkli Notlar**: Notlar için 18 farklı renk seçeneği
- ✅ **Gerçek Zamanlı Güncellemeler**: Livewire ile desteklenen anlık güncellemeler

## Kullanılan Teknolojiler
- **Arka Uç**: Laravel 11, PHP 8.1+
- **Ön Uç**: Livewire 3.x, Alpine.js 3.15.2
- **Stil**: Tailwind CSS 3.1.0, @tailwindcss/forms, @tailwindcss/typography
- **Derleme**: Vite 5.3.5
- **Veritabanı**: MySQL 8.0+ veya PostgreSQL 13+
- **Kimlik Doğrulama**: Livewire yığını ile Laravel Jetstream
- **Düzenleyici**: Zengin metin düzenlemesi için TinyMCE
- **Simgeler**: Heroicons

## Ana Yapılandırma Dosyaları
- `composer.json`: PHP bağımlılıkları ve proje meta verileri (Laravel 10, Jetstream, Sanctum, Livewire)
- `package.json`: Node.js bağımlılıkları ve derleme komut dosyaları (Tailwind CSS, Vite, Alpine.js, TinyMCE)
- `tailwind.config.js`: Dinamik renk güven listesi ile Tailwind CSS yapılandırması
- `vite.config.js`: Laravel Vite eklentisi ile Vite derleme yapılandırması
- `.env.example`: Ortam değişkeni örneği
- `config/jetstream.php`: Jetstream yapılandırması
- `app/Models/Note.php`: İlişkiler ve genel kapsam ile ana Not modeli
- `app/Livewire/NoteForm.php`: Not oluşturma için ana Livewire bileşeni
- `app/Http/Controllers/NoteController.php`: Notlar için CRUD işlemleri

## Ana Livewire Bileşenleri
- **NoteForm**: Not oluşturma ve düzenleme için bileşen
- **NoteModal**: Not yönetimi için modal bileşeni
- **AllNotes**: Arama ve filtreleme ile tüm notları görüntülemek için bileşen

## Veritabanı Şeması
Uygulama, çoktan çoğa ilişkiler için birden fazla birleştirme tablosu kullanır:
- `note_company`: Notları şirketlerle ilişkilendirir
- `note_label`: Notları etiketlerle ilişkilendirir
- `note_user`: Notları kullanıcılarla ilişkilendirir
- Kimlik doğrulama ve Jetstream özellikleri için standart Laravel tabloları

## Geliştirme Komutları
- `php artisan serve`: Laravel geliştirme sunucusunu başlatır
- `npm run dev`: Sıcak yeniden yükleme ile Vite geliştirme sunucusunu başlatır
- `npm run build`: Üretim için varlıkları derler
- `php artisan migrate`: Veritabanı göçlerini çalıştırır
- `php artisan migrate:rollback`: Son göç paketini geri alır
- `php artisan db:seed`: Örnek verilerle veritabanını doldurur
- `php artisan make:model Note -mcr`: Göç ve kaynak denetleyici ile model oluşturur
- `php artisan jetstream:install livewire --teams`: Livewire ve takımlarla Jetstream kurar
- `php artisan storage:link`: Depolama için sembolik bağlantı oluşturur
- `phpunit` veya `./vendor/bin/phpunit`: Testleri çalıştırır
- `php artisan test`: Laravel'in test çalıştırıcısı ile testleri çalıştırır
- `php artisan make:livewire note-form`: Yeni bir Livewire bileşeni oluşturur

## Ortam Kurulumu
1. `.env.example` dosyasını `.env` olarak kopyalayın
2. Uygulama anahtarını oluşturmak için `php artisan key:generate` komutunu çalıştırın
3. `.env` dosyasında veritabanı ayarlarını yapılandırın
4. Veritabanı tablolarını oluşturmak için `php artisan migrate` komutunu çalıştırın
5. Varlıklar için `npm install` ve `npm run build` veya `npm run dev` komutlarını çalıştırın

## Proje Durumu
Çok kiracılı destek, gerçek zamanlı güncellemeler, etiketleme sistemi ve zengin metin düzenleme yetenekleriyle tamamen işlevsel bir not alma uygulamasıdır. Uygulama Laravel en iyi uygulamalarını takip eder ve optimize bir geliştirici deneyimi için modern geliştirme araçlarını kullanır.
