Skip to content

emreziplar/Laravel-API

Repository files navigation

Laravel API

(turkish: Türkçe açıklamalar installation kısmından sonra)

  • A RESTful API built with SOLID, modern and clean architecture.

Description

  • PHP 8.2+, Laravel 12.x

  • Laravel Sanctum (Authentication)

  • Interface-driven design with service + repository separation

  • Multi-language support

  • Translation support (any service can be integrated)

  • Role-based access control (RBAC)

  • Caching (Redis & File) — works with PHPRedis extension,

    multiple cache services can be used depending on the repository

  • MySQL (any database can be used — db-agnostic)

  • MediaHandler (images, videos, and audio can be processed; currently supports WebP conversion)

What can you d🤨?

  • This is a skeleton project with lots of room for improvements. You can easily extend it and adapt it to your needs - fully open for your imagination.

  • My recommendations: optimize cache & SQL, refactor classes with too many responsibilities, and consider building the frontend using the same services.

  • There are TODO notes inside the project for further improvements.

  • At the bottom, you will find an AI-generated diagram.
    It gives a quick overview of the system and helps you understand how to build on top of it.

Installation

# Clone the repository
git clone https://github.com/emreziplar/Laravel-API.git

cd laravel-api
composer install
npm install

# Environment setup
cp .env.example .env
php artisan key:generate

# Database setup
php artisan migrate
php artisan storage:link

# Run the server
php artisan serve

💡 Tip: Using Docker is recommended for easier environment setup, including PHP, Redis and MySQL. This makes the project more portable and production-ready.

Türkçe olarak devam etmektedir.

Laravel API

RESTful API projesi SOLID, modern ve temiz mimari ile geliştirilmiştir.

Açıklama

  • PHP 8.2+, Laravel 12.x

  • Laravel Sanctum (Kimlik doğrulama için)

  • Service + repository ayrımı ile interface tabanlı tasarım

  • Çoklu dil desteği

  • Çeviri desteği (istediğiniz servis eklenebilir)

  • Rol tabanlı yetkilendirme (RBAC)

  • Önbellekleme (Redis & File) — PHPRedis eklentisi ile çalışır, repository bazında birden fazla cache servisi kullanılabilir

  • MySQL (istediğiniz veritabanı kullanılabilir — db-agnostic)

  • MediaHandler (resim, video ve ses işlenebilir; şu anda WebP dönüşümü mevcut)

Neler Yapabilirsiniz?

  • Bu proje bir iskelet yapıdır ve geliştirmeye açıktır.
    İhtiyacınıza göre kolayca genişletebilir ve uyarlayabilirsiniz.

  • Öneriler: Cache ve SQL optimizasyonları, fazla sorumluluğu olan sınıfların refactor edilmesi ve frontend’i aynı servisleri kullanarak inşa etmek.

  • Proje içinde geliştirme için TODO notları bulunuyor.

  • En altta AI tarafından üretilmiş bir diyagram var.
    Sistemi hızlıca anlamak ve üzerine geliştirme yapmak için inceleyebilirsiniz.

Kurulum

# Depoyu klonla
git clone https://github.com/emreziplar/Laravel-API.git

cd laravel-api
composer install
npm install

# Ortam ayarları
cp .env.example .env
php artisan key:generate

# Veritabanı ayarları
php artisan migrate
php artisan storage:link

# Sunucuyu çalıştır
php artisan serve

💡 İpucu: Docker kullanmak tavsiye edilir. PHP, Redis ve MySQL ortamlarını kolayca hazırlar ve projeyi daha taşınabilir ve production-ready hâle getirir.

🤐 AI Diagram

img.png