İçeriğe geç

Workora dokümantasyonu

Workora’yı kurmak, yapılandırmak, çalıştırmak ve genişletmek için gereken her şey: ilk yüklemeden ödemelere, güvenliğe, güncellemelere ve REST API’ye.

Genel bakış#

Workora, eksiksiz bir freelance pazaryeri scriptidir. Müşteriler proje yayınlayıp teklif alır ya da hazır hizmet satın alır. Para aşamalı emanet üzerinden hareket eder, her üyenin bir cüzdanı vardır ve her ödeme çift kayıtlı defterde tutulur.

Ürün sürümü 1.0.0 olup Laravel 13 üzerine kuruludur. Genel site, üye alanı ve yönetim paneli içerir; İngilizce ve Arapça gelir.

Okumadan önce deneyin. Canlı demo tüm özellikleri örnek verilerle gösterir. Giriş sayfasındaki tek tıkla giriş düğmelerini kullanın.
workora-demo.devdoor.tech
home-sectionshome-sections

Gereksinimler#

ÖğeGerekli
PHP8.4 veya üzeri
PHP eklentileribcmath, ctype, curl, fileinfo, gd (WebP ile), intl, mbstring, openssl, pdo_mysql, tokenizer, xml, zip. sodium yalnızca imzalı güncellemeler için gerekir.
VeritabanıMySQL 8.0+ veya MariaDB 10.6+ (utf8mb4)
Web sunucusuHTTPS’li Apache, Nginx veya LiteSpeed
CronHer dakika çalışan tek görev

Sunucuda Node.js veya Composer gerekmez: paket bağımlılıklarını ve derlenmiş stillerini içerir.

Kurulum#

  1. 1-Source/workora klasörünün içeriğini sunucunuza yükleyin. Web kökü public klasörünü göstermelidir.
  2. Boş bir MySQL veritabanı ve kullanıcı oluşturun.
  3. Tarayıcıda https://your-domain/install adresini açın. Sihirbaz sunucunuzu denetler, ardından veritabanını, site adını ve adresini, saat dilimini ve yönetici hesabını sorar.
  4. Bitince eklemeniz gereken cron satırını gösterir. Sonra /login ile giriş yapıp /admin adresini açın.

Komut satırı (isteğe bağlı)

php artisan app:install \
  --db-name=workora --db-user=root --db-password=secret \
  --app-name="My Marketplace" --app-url=https://example.com \
  --admin-name="Admin" --admin-username=admin \
  --admin-email=admin@example.com --admin-password="a-strong-password"

Veritabanını oluşturmak için --create-database, örnek veri için --demo ekleyin (yalnızca demo siteleri).

Paylaşımlı hosting (Hostinger, cPanel)#

Paylaşımlı hosting iyi çalışır; canlı demo da bunun üzerinde çalışıyor. En güvenli düzen uygulamayı genel klasörün dışında tutar:

domains/your-domain/
  workora/        uygulama (asla herkese açık değil)
  public_html/    index.php, .htaccess, build ve flags klasörleri
  1. Hosting panelinden alan adı için PHP 8.4 seçin ve yukarıdaki eklentileri açın.
  2. Paketi yükleyin, ardından public klasörünü public_html olarak, kalanını workora olarak koyun.
  3. public_html/index.php içinde yolları uygulama klasörüne yönlendirin (paketteki public_html sürümü bunu zaten yapar).
  4. Veritabanını panelden oluşturun ve kurulum sihirbazını çalıştırın.
  5. Panelden cron görevini ekleyin: /usr/bin/php /home/USER/domains/your-domain/workora/artisan schedule:run, her dakika.
Sembolik bağlantılar. Bazı hostingler symlink() işlevini kapatır. Genel depolama bağlantısı oluşturulamazsa SSH ile public_html/storage bağlantısını workora/storage/app/public klasörüne oluşturun veya hostingden isteyin.

Cron görevi#

Tek bir görev her şeyi çalıştırır: ertelenmiş e-posta ve bildirimler, sözleşmelerin otomatik serbest bırakılması, proje süresi dolumu, paket yenileme, toplantı hatırlatmaları, değerlendirme istatistikleri, gece defter mutabakatı ve yedekler.

* * * * * cd /path/to/workora && php artisan schedule:run >> /dev/null 2>&1

Yönetimdeki Sağlık sayfası zamanlayıcının yakın zamanda çalışıp çalışmadığını gösterir.

İlk adımlar#

  1. Ayarlar → Genel: site adı, metin logosu, ana para birimi (yayından önce seçin), iletişim e-postası, saat dilimi, varsayılan ülke.
  2. Görünüm: tema, renkler, logo, simge, genişlik, ana sayfa bölümleri, çerez bildirimi.
  3. Diller: dilleri açın, varsayılanı seçin ve çevirileri gözden geçirin.
  4. Ödemeler: geçitleri açın; komisyon, yatırma ve çekim kurallarını ayarlayın.
  5. E-posta: SMTP’yi ayarlayın ve deneme e-postası gönderin.
  6. İçerik: sayfaları, SSS’yi, blogu ve yorumları düzenleyin.
  7. Kategoriler: 14 ana ve 125 alt kategoriyi alanınıza göre uyarlayın.
workora-demo.devdoor.tech
adminadmin

Ödemeler#

Yöntemleri Ayarlar → Ödemeler bölümünden açın. Her biri, sağlayıcıya kaydedeceğiniz webhook adresini gösterir.

YöntemNotlar
StripeKartlar. Gizli anahtar ve webhook imza sırrı. Adres: /webhooks/stripe
PayPalSandbox veya canlı; client ID, sır ve webhook ID. Adres: /webhooks/paypal
Paystack, Razorpay, FlutterwaveAnahtarlar ve webhook sırları; adresler /webhooks/{gateway} altında
Banka havalesiHesap bilgileriniz; üyeler dekont yükler, ekip onaylar
Önce test edin. Gerçek para kabul etmeden önce açtığınız her geçitle deneme yatırması yapın ve webhook’un ulaştığını doğrulayın.

Yatırmaların alt ve üst sınırı vardır. Çekimler PayPal veya banka bilgisiyle yapılır; alt sınır, isteğe bağlı ücret, isteğe bağlı bekletme süresi ve açık talep limiti vardır.

E-posta#

Ayarlar → E-posta bölümünü bir SMTP sunucusuna ayarlayın ve deneme gönderin. O zamana dek iletiler günlüğe yazılır. Bildirimler ertelenir ve cron ile bir dakika içinde gönderilir. Üyeler hangi kategorilerin gelen kutusuna düşeceğini bildirim ayarlarından seçer.

Görünüm ve temalar#

Yönetim → Görünüm tüm görünümü kodsuz yönetir: sekiz temadan biri, ana ve vurgu renkleri, gri tonu, köşe yuvarlaklığı, yazı tipi, gölgeler, başlık ve yan çubuk stili, renk modu (açık, koyu, otomatik). Logo (koyu sürümüyle) ve simge yükleyin.

Düzen: standart, geniş veya tam genişlik ve kart yoğunluğu. Ana sayfa: bölümleri açıp kapatın (kategori şeridi, rakamlar, neden biz, en iyi freelancerlar, projeler, yorumlar, afişler), kategori satırı sayısını ve kayan şerit mi ızgara mı olacağını seçin. Üyeler renk modunu, izin verirseniz temayı da seçer.

workora-demo.devdoor.tech
admin-appearanceadmin-appearance

Diller ve RTL#

Diller açık dilleri listeler. Hazır şablondan veya kodla dil ekleyin, yönünü ve bayrağını seçin, sonra Çevir ile her metni aranabilir tabloda düzenleyin, JSON içe/dışa aktarın ve çevrilmeyenleri görün. Kategori, beceri, sayfa, blog ve SSS içerikleri her öğenin düzenleyicisinde çevrilir.

RTL dillerde arayüz tamamen yön değiştirir. Her dilin dizinlenebilir adresi (?lang=tr), hreflang bağlantıları ve çok dilli site haritası vardır.

Para nasıl işler#

  • Müşteri cüzdanından bir aşamayı finanse eder ve para emanete geçer.
  • Freelancer teslim eder; müşteri onaylar (ödeme komisyon düşülerek serbest bırakılır), revizyon ister veya uyuşmazlık açar. Müşteri hiçbir şey yapmazsa belirlenen gün sonra ödeme otomatik serbest bırakılır.
  • Her hareket çift kayıtlı defterde dengeli bir kayıttır. Gece görevi cüzdanların, emanetin ve gelirin tuttuğunu kanıtlar.

Komisyon

Ayarlar → Ödemeler bölümünde platform oranını, ödeme başına isteğe bağlı asgari komisyonu, her kategori için farklı oranı ve her paket için daha düşük oranı belirleyin. Öncelik: paket, kategori, varsayılan. Sözleşme, oluşturulduğu andaki oranı korur.

Üyeler ve moderasyon#

Ekip rolleri (yönetici, moderatör, finans, destek) yalnızca ihtiyaçları kadar yetkilidir; ekip hesapları iki adımlı doğrulama gerektirir. Kullanıcılar bölümünde arama yapabilir, üyeleri askıya alabilir veya yasaklayabilir ve rol atayabilirsiniz. Projeler ve hizmetler yayından önce incelenebilir; değerlendirme ve şikâyetlerin kendi kuyrukları vardır; ekip uyuşmazlıkları kayıtlı bir notla karara bağlar.

İçerik ve SEO#

Sayfaları, blogu, SSS’yi ve yorumları İçerik bölümünden yönetin; hepsi çevrilebilir. Workora dil alternatifli site haritası, canonical etiketleri, Open Graph, hizmetler için yapılandırılmış veri ve robots kuralları üretir. Genel sayfalar hızlıdır ve önbelleğe uygundur.

Paketler, Connects ve limitler#

Kazanç sağlamanın ve etkinliği düzenlemenin üç bağımsız yolu; birini veya hepsini kullanın:

  • Connects: teklifler kredi harcar. Teklif bedelini, ücretsiz kredileri, paket boyutunu ve fiyatını belirleyin.
  • Paketler: Connects veren, komisyonu düşüren ve limitleri değiştiren aylık abonelikler.
  • Limitler (Ayarlar → Limitler ve paketler): günlük, haftalık veya aylık teklif sayısı, hizmet sayısı, portfolyo öğeleri ve aktif sözleşmelerden istediklerinizi açın. Paketsiz üyeler ücretsiz değerleri alır; her paketin kendi değerleri vardır (0 = sınırsız).

Üyeler kullanımlarını paketler sayfasında görür ve limite ulaşınca bilgilendirilir.

workora-demo.devdoor.tech
plansplans

Profiller, portfolyo ve doğrulama#

Freelancerlar başlık, beceriler, saatlik ücret, bağlantılar, deneyim, eğitim, sertifika ve diller (Özgeçmiş sekmesi), düzenleyip gizleyip öne çıkarıp sıraladıkları bir portfolyo ve /u/username/resume adresinde yazdırılabilir özgeçmişle güven oluşturur. Profil gücü çubuğu eksikleri gösterir.

Doğrulama: e-posta, profil fotoğrafı ve kimlik (pasaport, kimlik kartı veya ehliyet). Belgeler yeniden kodlanır ve özel diskte saklanır; yalnızca ekip Yönetim → Doğrulamalar bölümünde görür ve gerekçeyle onaylar veya reddeder. Telefon doğrulaması «yakında» olarak gösterilir. İlk çekimden önce doğrulanmış kimlik şart koşabilirsiniz.

workora-demo.devdoor.tech
profileprofile

Mesajlaşma ve toplantılar#

Mesajlaşmada konuşma listesi, sohbet ve kişi, proje, siparişler, sözleşmeler, toplantılar ile paylaşılan dosyaları gösteren yan panel bulunur; her biri kendi sayfasına götürür. Mesajlar canlı gelir, okundu bilgisi görünür, ekler desteklenir. Sözleşmeden önce e-posta adresleri, telefon numaraları ve bağlantılar komisyonunuzu korumak için gizlenir (değiştirilebilir).

Toplantılar: her iki taraf toplantı planlayabilir: saati (herkes kendi saat diliminde görür), süreyi ve Zoom, Google Meet, Teams, Webex, Jitsi, Whereby veya Skype bağlantısını seçin (ya da ücretsiz Jitsi odası oluşturun). Davet; kabul, reddet, takvime ekle (ics) ve başlamadan 15 dakika önce açılan Katıl düğmesiyle kart olarak görünür. Her iki tarafa hatırlatma gider. Ayarlar → Mesajlar ve dosyalar bölümünden toplantıları kapatabilir veya her https bağlantısına izin verebilirsiniz.

workora-demo.devdoor.tech
messagesmessages

Destek sohbeti#

Üyeler ekibinizle konuşmak için Destek’i açar; ziyaretçiler iletişim formunu kullanır ve yanıtı e-postayla alır. Yönetim → Destek bölümünde durum, konu, öncelik ve atanana göre süzer, konuşmaları atar, özel notlar yazar, kayıtlı yanıtlar ekler, ilk yanıt süresini ve puanları görürsünüz. Konuşma kapanınca üye yardımı puanlar.

Referans, kuponlar ve bildirimler#

Referans varsayılan olarak açıktır: davet edilen üye ücretli bir sözleşmeyi tamamlayınca davet eden ödül kazanır. Üyelerin kopyala ve paylaş düğmeli, ziyaret sayılı ve sonuçlu bir paylaşım sayfası vardır; ödülü, hoş geldin hediyesini ve asgari sözleşmeyi Ayarlar → Referans bölümünde belirleyin, toplamları Yönetim → Referanslar bölümünde görün. Kuponlar üye başına bir kez cüzdana bakiye ekler; limit ve son kullanma tarihi vardır.

Bildirimlerin zil menüsü ve filtre, okundu/okunmadı ile silme içeren merkezi vardır. Freelancerlar kategori ve anahtar kelimeyle proje uyarıları kurar.

Yüklenebilir uygulama (PWA)#

Site bir manifest ve yalnızca derlenmiş CSS ve JavaScript ile çevrimdışı sayfayı önbelleğe alan küçük bir service worker yayınlar; üye sayfalarını asla önbelleğe almaz. Telefonlar markanızın renk ve adıyla Ana ekrana ekle önerir.

REST API#

Salt okunur bir JSON API gelir. Ayarlar → Genel bölümünden açın. Üyeler Güvenlik sayfasından jeton oluşturur (bir kez gösterilir, yalnızca özeti saklanır, isteğe bağlı son kullanma). Authorization: Bearer wk_... gönderin; her jeton dakikada 60 istekle sınırlıdır. Parasal değerler, para birimi koduyla birlikte küçük birimde tam sayıdır.

YolDöndürür
GET /api/v1/meJeton sahibinin profili
GET /api/v1/categoriesKategoriler ve alt kategoriler
GET /api/v1/gigs ve /gigs/{id}Yayınlanmış hizmetler (q, category filtreleri)
GET /api/v1/projects ve /projects/{id}Açık genel projeler
GET /api/v1/wallet, /orders, /contracts, /notificationsJeton sahibinin kayıtları
curl -H "Authorization: Bearer wk_your_token" https://your-site.example/api/v1/gigs?q=logo

Yedekler ve sağlık#

Günlük veritabanı yedeği ve haftalık tam yedek (dosyalarla) zamanlamayla çalışır ve Sağlık bölümünde listelenir; oradan indirebilirsiniz. Aynı sayfa PHP’yi, eklentileri, izinleri, zamanlayıcıyı, kuyruğu, defteri ve disk alanını denetler. mysqldump PATH’te değilse yolunu .env içinde (BACKUP_MYSQLDUMP) belirtin.

Güncelleme#

  1. Veritabanını ve dosyaları yedekleyin.
  2. Yönetim → Güncellemeler bölümünü açın, imzalı paketi yükleyin ve özeti inceleyin.
  3. Uygulayın. Workora imzayı doğrular, yeni dosyaları kopyalar, geçişleri çalıştırır ve önbellekleri temizler. .env, yüklemeler ve ayarlar korunur.

sodium eklentisi olmayan sunucularda elle güncelleyin: yeni dosyaları eskilerin üzerine yükleyin, ardından php artisan migrate --force ve php artisan optimize:clear çalıştırın.

Demo verileri ve demo sitesi#

php artisan app:demo herhangi bir kuruluma örnek üye, proje ve hizmet ekler; --full her alt kategoriyi doldurur. Herkese açık demo için .env içinde DEMO_MODE=true ayarlayın ve php artisan demo:reset çalıştırın; cron her saat sıfırlar. Demo modunda deneme hesaplarını ve tek tıkla girişi gösteren bir şerit çıkar, tehlikeli işlemler (ayarlar, ekip, güncellemeler, yedekler, gerçek ödemeler) engellenir. «Satın al» düğmesi için DEMO_PURCHASE_URL ayarlayın.

Demo modunu gerçek bir platformda asla açmayın. Sıfırlama tüm verileri siler.

Güvenlik kontrol listesi#

  • Her şeyi HTTPS üzerinden sunun ve APP_DEBUG=false tutun.
  • Uygulama klasörünü genel web kökünün dışında tutun veya erişimi engelleyin.
  • Ekip iki adımlı doğrulama kullanmalı.
  • .env dosyasını gizli tutun ve ayrıca yedekleyin.
  • Güçlü bir veritabanı parolası kullanın ve erişimi sunucuyla sınırlayın.
  • Her yüklemeyi taramak için ClamAV kurun ve CLAMSCAN_PATH ayarlayın (isteğe bağlı).
  • Bağımlılıkları güncellerken composer audit çalıştırın.

Dahil olanlar: nonce’lu sıkı CSP, hassas işlemler için istek sınırları, belgeler ve ekler için özel depolama, yeniden kodlanan görseller, diğer üyelerin verilerine ulaşmaya çalışan otomatik testler ve Ed25519 imzalı güncellemeler.

Sorun giderme#

SorunÇözüm
Boş sayfa veya 500 hatasıstorage/logs/laravel.log dosyasına bakın. storage ve bootstrap/cache yazılabilir olmalı ve PHP 8.4+ olmalı.
"Your Composer dependencies require PHP 8.4"Hosting panelinde alan adı için PHP 8.4 seçin.
Stiller yokBelge kökü public olmalı ve içindeki build klasörü yüklenmiş olmalı.
Yüklenen görseller görünmüyorDepolama bağlantısını oluşturun: public/storage → storage/app/public.
E-postalar gelmiyorSMTP’yi denetleyin ve cron’un her dakika çalıştığından emin olun.
Yüklemeler reddediliyorupload_max_filesize ve post_max_size değerlerini artırın.
Ödemeler beklemede kalıyorWebhook adresinin geçitte kayıtlı ve erişilebilir olduğunu doğrulayın.

Destek ve lisans#

Workora CodeCanyon’da satılır. Destek ve güncellemeler Envato destek politikasını izler; kurulum yardımı ve hata düzeltmeyi kapsar, özel geliştirmeyi kapsamaz. Üyelerden ücret, komisyon veya abonelik tahsil eden bir platform genişletilmiş lisans gerektirir. Üçüncü taraf bileşenler lisanslarıyla pakette listelenir.

CodeCanyon’dan satın al Canlı demo

Aramanıza uyan bölüm yok.