Açık İstatistik Platformu - Ekonomik veriler için şeffaf, çok kaynaklı veri toplama ve doğrulama platformu.
- Çoklu Rol Sistemi: Admin, İstatistikçi ve Veri Sağlayıcı rolleri
- OAuth Girişi: Google, GitHub ve Facebook ile giriş
- Veri Doğrulama: Otomatik outlier tespiti ve doğrulama
- DSL Motoru: Basit dil ile hesaplama kuralları tanımlama
- Grafikler: Chart.js ile veri görselleştirme
- AdminLTE: Modern ve responsive admin paneli
- PHP 8.1+
- Composer
- MySQL 8.0+
- Node.js 16+
git clone https://github.com/metatronslove/open-statistics-platform.git
cd open-statistics-platformcomposer install
npm install
npm run buildcp .env.example .env
php artisan key:generate.env dosyasını düzenleyin:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=ose_database
DB_USERNAME=root
DB_PASSWORD=
# OAuth Ayarları
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_secret
GOOGLE_REDIRECT_URI=http://localhost:8000/auth/google/callback
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_secret
GITHUB_REDIRECT_URI=http://localhost:8000/auth/github/callback
FACEBOOK_CLIENT_ID=your_facebook_client_id
FACEBOOK_CLIENT_SECRET=your_facebook_secret
FACEBOOK_REDIRECT_URI=http://localhost:8000/auth/facebook/callbackphp artisan migrate --seedphp artisan storage:linkphp artisan queue:workphp artisan serveTarayıcınızda http://localhost:8000 adresini açın.
Seeding sonrasında oluşturulan kullanıcılar:
| Password | Role | |
|---|---|---|
| admin@ose.com | password | Admin |
| statistician@ose.com | password | Statistician |
| provider@ose.com | password | Provider |
ose-project/
├── app/
│ ├── Http/Controllers/
│ │ ├── Admin/ # Admin kontrollerleri
│ │ ├── Statistician/ # İstatistikçi kontrollerleri
│ │ ├── Provider/ # Veri sağlayıcı kontrollerleri
│ │ └── Auth/ # OAuth kontrolleri
│ ├── Models/ # Eloquent modeller
│ ├── Services/ # İş mantığı servisleri
│ ├── Jobs/ # Kuyruk işleri
│ └── Policies/ # Yetki kontrolleri
├── database/
│ ├── migrations/ # Veritabanı şeması
│ └── seeders/ # Test verileri
├── resources/
│ ├── views/ # Blade şablonları
│ │ ├── admin/ # Admin arayüzü
│ │ ├── statistician/# İstatistikçi arayüzü
│ │ └── provider/ # Veri sağlayıcı arayüzü
│ └── js/ # JavaScript dosyaları
└── routes/ # Route tanımları
- Kullanıcı yönetimi
- Veri setleri görüntüleme
- Sistem istatistikleri
- Veri seti oluşturma ve yönetme
- DSL ile hesaplama kuralları tanımlama
- Veri doğrulama süreçlerini izleme
- Grafiklerle veri analizi
- Açık veri setlerine veri girme
- Kendi verilerini görüntüleme ve düzenleme
- Profil yönetimi
ortalama(deger)veyamean(deger): Ortalama hesaplamatopla(deger): Toplam hesaplamamax(deger): Maksimum değermin(deger): Minimum değersayi: Veri noktası sayısı
ortalama(deger)
topla(deger) / sayi
(max(deger) - min(deger)) / 2
(ortalama(deger) * 1.18) - 5- CSRF koruması
- SQL Injection koruması (Eloquent ORM)
- XSS koruması (Blade templating)
- Role-based yetkilendirme
- Input validation
Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.
- Fork edin
- Feature branch oluşturun (
git checkout -b feature/AmazingFeature) - Değişikliklerinizi commit edin (
git commit -m 'Add some AmazingFeature') - Branch'inize push edin (
git push origin feature/AmazingFeature) - Pull Request açın
Proje ile ilgili soru soramazsın.
- InfinityFree Hesabı (ücretsiz)
- Domain/Subdomain (örn: ose.infinityfreeapp.com)
- MySQL Database (InfinityFree panelinden oluşturun)
- FileZilla veya benzeri FTP istemcisi
# Yerelde projeyi hazırlayın
git clone [repo-url] ose-platform
cd ose-platform
# Gereksinimleri yükleyin (PHP 7.4)
composer install --no-dev --optimize-autoloader
# .env dosyasını InfinityFree için düzenleyin
cp .env.example .envAPP_NAME="Open Statistics Economy"
APP_ENV=production
APP_DEBUG=false
APP_URL=http://yourdomain.epizy.com
# InfinityFree MySQL Ayarları
DB_CONNECTION=mysql
DB_HOST=sqlXXX.epizy.com
DB_PORT=3306
DB_DATABASE=epiz_XXX_XXX
DB_USERNAME=epiz_XXX
DB_PASSWORD=XXX
# Diğer ayarlar
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_CONNECTION=database-
FileZilla'da bağlanın:
- Host:
ftpupload.net - Username:
epiz_XXX - Password:
XXX - Port:
21
- Host:
-
Dosyaları yükleyin:
/htdocs/ dizinine tüm dosyaları yükleyin AŞAĞIDAKİ DOSYALARI SİLİN: - .env.example (sadece .env kalacak) - composer.json (gerekli değil) - package.json (gerekli değil) - tests/ dizini (gerekli değil) -
Klasör izinlerini ayarlayın:
storage/ -> 755 bootstrap/cache/ -> 755 public/ -> 755
-
InfinityFree panelinden:
- phpMyAdmin'e girin
- epiz_XXX_XXX database'ini seçin
-
SQL import edin:
-- Önce migrations'ı çalıştırın -- Sonra seed verilerini ekleyin -- Veya manuel olarak: CREATE TABLE users (...); CREATE TABLE datasets (...); -- vs.
InfinityFree SSH erişimi için:
# SSH ile bağlanın
ssh epiz_XXX@yourdomain.epizy.com
# Password: XXX
# Proje dizinine gidin
cd htdocs
# Artisan komutlarını çalıştırın
php artisan key:generate
php artisan migrate --force
php artisan db:seed --force
php artisan storage:link
php artisan optimize:clearInfinityFree panelinden Cron Jobs ekleyin:
# Her saat başı queue worker'ı çalıştır
0 * * * * curl http://yourdomain.epizy.com/queue/process
# Her gün gece yarısı backup al
0 0 * * * curl http://yourdomain.epizy.com/backup/create
-
.htaccessoptimizasyonu:# GZIP sıkıştırma <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/css application/javascript </IfModule> # Cache headers <IfModule mod_expires.c> ExpiresActive On ExpiresByType text/css "access plus 1 month" ExpiresByType application/javascript "access plus 1 month" </IfModule>
-
Laravel optimizasyonları:
php artisan config:cache php artisan route:cache php artisan view:cache
-
.envdosyasını koruyun:# .htaccess ile <Files ".env"> Order allow,deny Deny from all </Files>
-
SQL injection koruması:
- Eloquent ORM kullanıldığı için otomatik
-
XSS koruması:
- Blade templating otomatik escape yapar
-
Database backup:
# Cron ile her gün mysqldump -u epiz_XXX -pXXX epiz_XXX_XXX > backup_$(date +%Y%m%d).sql
-
Dosya backup:
# Tüm proje dosyaları tar -czf backup_$(date +%Y%m%d).tar.gz .
Sorun 1: "Permission denied" hatası
# Çözüm:
chmod 755 storage bootstrap/cacheSorun 2: Database bağlantı hatası
# Çözüm:
# .env dosyasını kontrol edin
# InfinityFree panelinden database bilgilerini doğrulayınSorun 3: Sayfa yüklenmiyor
# Çözüm:
# public/index.php kontrol edin
# .htaccess dosyasını kontrol edin- Proje Issues: GitHub repository
- InfinityFree Support: https://infinityfree.net/support/
- Laravel Documentation: https://laravel.com/docs/8.x
- .env dosyası doğru ayarlandı
- Database bağlantısı test edildi
- Dosya izinleri ayarlandı
- Artisan komutları çalıştırıldı
- Ana sayfa yükleniyor
- Login/Register çalışıyor
- Database migrations başarılı
- Cron jobs ayarlandı
- Backup sistemi kuruldu
### **`storage/framework/` Dizin Yapısı**
storage/framework/ ├── cache/ │ ├── data/ │ └── .gitignore ├── sessions/ │ └── .gitignore ├── views/ │ └── .gitignore ├── testing/ │ └── .gitignore └── .gitignore
Her klasör için `.gitignore`:
```gitignore
## ☕ Destek Olun / Support
Projemi beğendiyseniz, bana bir kahve ısmarlayarak destek olabilirsiniz!
[](https://buymeacoffee.com/metatronslove)
Teşekkürler! 🙏
*
!.gitignore