Yapılan Proje
<p>Bu makalede, <strong>Görev Yöneticisi</strong> nasıl oluşturduğumu anlatacağım:</p>
<ul>
<li>
<strong>Laravel 12</strong> (back-end, routing, validation, Eloquent)
</li>
<li>
<strong>Inertia.js</strong> (API katmanı yok, SPA benzeri kullanıcı deneyimi)
</li>
<li>
<strong>Vue 3 + Vite</strong> (front-end)
</li>
<li>
<strong>TypeScript</strong> (tipli UI bileşenleri)
</li>
</ul>
<p>Proje özellikleri:</p>
<ul>
<li>✅ Tam <strong>CRUD</strong> (oluşturma, listeleme, düzenleme, silme)</li>
<li>✅ <strong>Filtreler</strong> (durum, öncelik, etiket, geçmişteki)</li>
<li>✅ <strong>Arama</strong> (başlık + detaylar)</li>
<li>✅ <strong>Sıralama</strong> (oluşturulma tarihi veya son tarih, null'lar en son)</li>
<li>✅ <strong>Etiketler</strong> (çoktan çoğa, özel renkler, anında oluşturma)</li>
<li>✅ <strong>Kanban panosu</strong> (sütunlar arasında sürükle & bırak)</li>
<li>✅ Küçük <strong>animasyonlar</strong> (Vue <code>TransitionGroup</code>)</li>
<li>✅ Flash mesajlar (<code>success</code>) Inertia üzerinden paylaşılıyor</li>
</ul>
<p>Bu, Laravel + Inertia için harika bir "gerçek uygulama" örneği çünkü sadece bir CRUD değil — bir ürün gibi hissettiriyor.</p>
<hr/>
<h2>
<a name="why-laravel-inertia" href="#why-laravel-inertia">
</a>
Neden Laravel + Inertia?
</h2>
<p>Laravel'i seviyorsanız ama ayrı bir API + ayrı bir SPA sürdürmek istemiyorsanız, Inertia, ideal bir noktadır:</p>
<ul>
<li><strong>Laravel routing/controllers/validation</strong> kullanmaya devam edersiniz.</li>
<li><strong>Vue sayfaları</strong> oluşturur ve tam sayfa yenilemeleri olmadan gezinirsiniz.</li>
<li>“API kopyalama” sorununu önleyerek hala SPA benzeri bir kullanıcı deneyimi elde edersiniz.</li>
</ul>
<p>Inertia, esasen: <strong>sunucu tarafı routing + istemci tarafı rendering</strong>'dir.</p>
<hr/>
<h2>
<a name="project-setup-laravel-inertia-vue-3" href="#project-setup-laravel-inertia-vue-3">
</a>
Proje Kurulumu (Laravel + Inertia + Vue 3)
</h2>
<p>Laravel’i normal bir şekilde kurdum ve ardından Inertia-Laravel + Vue’yu ekledim.<br/></p>
<div class="highlight js-code-highlight">
<pre class="highlight shell"><code>composer create-project laravel/laravel task-managercd task-manager
# inertia-laravel yükleme
composer require inertiajs/inertia-laravel
# inertia middleware yapısı oluşturma
php artisan inertia:middleware
# ön uç bağımlılıkları
npm i vue @inertiajs/vue3 @vitejs/plugin-vue
npm i
<h3>
<a name="app-shell-raw-resourcesviewsappbladephp-endraw-" href="#app-shell-raw-resourcesviewsappbladephp-endraw-">
</a>
Uygulama Yapısı (<code>resources/views/app.blade.php</code>)
</h3>
<div class="highlight js-code-highlight">
<pre class="highlight php"><code>@<span class="nt">lang=</span><span class="s">"{{ str_replace('_', '-', app()->getLocale()) }}"</span><span class="nt">></span>
<span class="nt"/>
<span class="nt"><meta/> <span class="na">charset=</span><span class="s">"utf-8"</span> <span class="nt">/></span>
<span class="nt"><meta/> <span class="na">name=</span><span class="s">"viewport"</span> <span class="na">content=</span><span class="s">"width=device-width, initial-scale=1"</span> <span class="nt">/></span>
@vite('resources/js/app.ts')
@inertiaHead
<span class="nt"/>
<span class="nt"> <span class="na">class=</span><span class="s">"antialiased"</span><span class="nt">></span>
@inertia
<span class="nt"/>
<span class="nt"/>

