FeatureFlow, kullanıcıların özellik isteklerini gönderebileceği, oylayabileceği ve yorum yapabileceği bir web uygulamasıdır. Bu uygulama, ürün geliştirme ekiplerinin kullanıcı geri bildirimlerini toplamasına ve önceliklendirmesine yardımcı olmayı amaçlar.
- Proje Hakkında
- İçindekiler
- Açıklama
- Kurulum
- Çalıştırma
- Bağımlılıklar
- Katkıda Bulunma
- Lisans
- package.json ve requirements.txt Açıklaması
- Yapılandırma Dosyaları
- API Referansı
Bu depo, Laravel ve React kullanılarak oluşturulmuş bir özellik istekleri yönetim uygulamasıdır. Başlıca özellikleri şunlardır:
- Kullanıcı kimlik doğrulaması ve yetkilendirmesi.
- Özellik istekleri oluşturma, düzenleme ve silme.
- Özellik isteklerine oy verme (yukarı/aşağı).
- Özellik isteklerine yorum yapma.
- Kullanıcı rolleri ve izinleri (örneğin, yönetici, yorumcu, kullanıcı).
-
Depoyu klonlayın:
git clone https://github.com/muhammetalifidan/FeatureFlow.git cd FeatureFlow -
Composer bağımlılıklarını yükleyin:
composer install
-
Node bağımlılıklarını yükleyin:
npm install
-
Ortam dosyasını kopyalayın ve yapılandırın:
cp .env.example .env
.envdosyasını projenizin gereksinimlerine göre düzenleyin. Özellikle, veritabanı bağlantı ayarlarını yapılandırın. Örnek ortam değişkenleri:APP_NAME=FeatureFlow APP_ENV=local APP_KEY=Buraya_32_karakterlik_bir_anahtar_girin APP_DEBUG=true APP_URL=http://localhost DB_CONNECTION=sqlite DB_DATABASE=database.sqliteEğer
DB_CONNECTIONolaraksqlitekullanılıyorsa,database/database.sqlitedosyasını oluşturmanız gerekir. -
Uygulama anahtarını oluşturun:
php artisan key:generate
-
Veritabanı şemalarını uygulayın ve başlangıç verilerini yükleyin:
php artisan migrate --seed
-
Geliştirme sunucusunu başlatın:
php artisan serve
-
Vite geliştirme sunucusunu başlatın:
npm run dev
Uygulamaya http://localhost adresinden erişebilirsiniz (veya .env dosyasında yapılandırdığınız APP_URL).
- PHP: >= 8.2
- Composer: Bağımlılık yönetimi için.
- Node.js: JavaScript bağımlılıkları ve derleme araçları için.
- npm: Node paket yöneticisi.
- Laravel: PHP framework.
- Inertia.js: Front-end ve back-end arasındaki bağlantıyı sağlayan kütüphane.
- React: Kullanıcı arayüzü oluşturmak için JavaScript kütüphanesi.
- Ziggy: Laravel rotalarını JavaScript'te kullanmak için paket.
- Spatie Laravel Permission: Rol ve izin yönetimi için paket.
Lütfen katkıda bulunmadan önce Katkıda Bulunma Rehberi ve Davranış Kuralları belgelerini okuyun.
Bu proje, MIT lisansı altında lisanslanmıştır.
-
package.json: Bu dosya, projenin JavaScript bağımlılıklarını ve derleme betiklerini içerir.
npm installkomutuyla yüklenen bağımlılıklar burada listelenir.build: TypeScript derlemesi ve Vite ile front-end assetlerinin oluşturulmasını sağlar. Hem istemci hem de sunucu tarafı için derleme işlemleri içerir.dev: Vite geliştirme sunucusunu başlatır, böylece değişiklikler anında tarayıcıda görülebilir.
-
composer.json: Bu dosya, projenin PHP bağımlılıklarını ve betiklerini içerir.
composer installkomutuyla yüklenen bağımlılıklar burada listelenir.post-autoload-dump: Autoload dosyalarını günceller ve paket keşfini başlatır.post-update-cmd: Vendor dosyalarını yayınlar.post-root-package-install:.envdosyası yoksa.env.exampledosyasını kopyalar.post-create-project-cmd: Uygulama anahtarını oluşturur, SQLite veritabanı dosyasını oluşturur ve migrasyonları çalıştırır.dev: Aynı anda birden fazla komutu çalıştırmak içinconcurrentlypaketini kullanır. Bu komutlar şunlardır:php artisan serve,php artisan queue:listen --tries=1,php artisan pail --timeout=0venpm run dev.
- config/app.php: Uygulama adı, ortam, hata ayıklama modu, URL, saat dilimi, yerel ayar ve şifreleme anahtarı gibi temel uygulama ayarlarını içerir.
- config/auth.php: Kimlik doğrulama ayarlarını içerir, örneğin kullanılan "guard" ve "provider".
- config/cache.php: Önbellekleme ayarlarını içerir, örneğin kullanılan önbellek deposu.
- config/database.php: Veritabanı bağlantı ayarlarını içerir.
- config/filesystems.php: Dosya sistemi yapılandırma ayarlarını içerir.
- config/logging.php: Günlükleme ayarlarını içerir.
- config/mail.php: E-posta ayarlarını içerir.
- config/queue.php: Kuyruk ayarlarını içerir.
- config/permission.php: Spatie Laravel Permission paketi için yapılandırma dosyası. İzinlerin ve rollerin nasıl yönetileceğini tanımlar.
Aşağıda, uygulamanın sunduğu API uç noktalarının bir özeti bulunmaktadır:
| Uç Nokta | Metot | Parametreler | Açıklama | Tip |
|---|---|---|---|---|
/login |
POST | email, password, remember |
Kullanıcının oturum açmasını sağlar. | string |
/logout |
POST | Yok | Oturumu kapatır. | Yok |
/register |
POST | name, email, password, password_confirmation |
Yeni bir kullanıcı kaydeder. | string |
/profile |
GET | Yok | Kullanıcının profil bilgilerini görüntüler. | Yok |
/profile |
PATCH | name, email |
Kullanıcının profil bilgilerini günceller. | string |
/profile |
DELETE | password |
Kullanıcının hesabını siler. | string |
/password |
PUT | current_password, password, password_confirmation |
Kullanıcının parolasını günceller. | string |
/forgot-password |
POST | email |
Parola sıfırlama bağlantısı isteği gönderir. | string |
/reset-password |
POST | token, email, password, password_confirmation |
Parolayı sıfırlar. | string |
/email/verification-notification |
POST | Yok | E-posta doğrulama bildirimi gönderir. | Yok |
/feature |
GET | Yok | Özellik isteklerinin listesini görüntüler. | Yok |
/feature |
POST | name, description |
Yeni bir özellik isteği oluşturur. | string |
/feature/{feature} |
GET | feature (ID) |
Belirli bir özellik isteğini görüntüler. | integer |
/feature/{feature} |
PUT | name, description |
Belirli bir özellik isteğini günceller. | integer |
/feature/{feature} |
DELETE | feature (ID) |
Belirli bir özellik isteğini siler. | integer |
/feature/{feature}/upvote |
POST | upvote (boolean) |
Bir özellik için yukarı veya aşağı oy gönderir. | integer |
/upvote/{feature} |
DELETE | feature (ID) |
Bir özellik için gönderilen oyu siler. | integer |
/feature/{feature}/comments |
POST | comment |
Bir özellik isteğine yorum ekler. | integer |
/comment/{comment} |
DELETE | comment (ID) |
Bir yorumu siler. | integer |
/user |
GET | Yok | Kullanıcı listesini görüntüler (Yönetici ayrıcalıkları gerektirir). | Yok |
/user/{user}/edit |
GET | user (ID) |
Belirli bir kullanıcıyı düzenlemek için formu görüntüler (Yönetici gerektirir). | integer |
/user/{user} |
PUT | roles (array) |
Kullanıcının rollerini günceller (Yönetici ayrıcalıkları gerektirir). | integer |