Kişisel Akademik İlerleme Takip Sistemi - Retro oyun tarzında, ÜAK (Üniversitelerarası Kurul) doçentlik kriterlerini takip etmek için geliştirilmiş, tek kullanıcılı web uygulaması.
Progress bar'da roket egzozu efekti, milestone noktaları ve oyunsu UI
Kriterleri checkbox ve sayaç ile kolayca takip edin
- 📊 İlerleme Takibi: Doçentlik kriterlerinizi oyun gibi takip edin
- 🎮 Oyunsu UI/UX: Retro uzay oyunu temalı, neon renkli arayüz
- 👁️ Ziyaretçi Modu: Giriş yapmadan keşfedin (veriler kaydedilmez)
- 👤 Tek Kullanıcı Girişi: Basit oturum tabanlı kimlik doğrulama
- 📱 PWA Desteği: Mobil cihazlara "Ana Ekrana Ekle" özelliği
- 🔄 Multi-Alan Desteği:
- Mühendislik Temel Alanı
- Sosyal, Beşeri ve İdari Bilimler
- ⚡ Enerji Akışı: Progress bar'da soldan sağa akan shimmer efekti
- 🔥 Roket Egzozu: Bar ucunda 360° patlayan kıvılcımlar
- ✨ Enerji Parçacıkları: Bar içinde akan mini parçacıklar
- 💫 Pulsing Glow: Nabız gibi parlayan bar efekti
- 🎯 Milestone Kutlamaları: %25, %50, %75, %100 geçişlerinde özel efektler
- 🎊 Konfeti: Önemli milestone'larda konfeti patlaması
- 🏆 Başarımlar: İlerlemenize göre kilitlenen achievement'lar
- 👀 Sadece Görüntüleme Modu: Ziyaretçiler admin'in ilerlemesini CV formatında inceleyebilir (düzenleme yapılamaz)
- ✍️ Yazar Bazlı Puanlama: Makaleler için yazar sayısı ve sırasına göre (Başlıca/İkinci/Diğer) otomatik puan hesaplama
- 🔧 Demo Modu: "Sistemi Kurcala" seçeneği ile veriler kaydedilmeden sistemi test etme imkanı
- PHP 7.4 veya üzeri
- Bir web sunucusu (Apache, Nginx, veya PHP built-in server)
- Modern web tarayıcı (Chrome, Firefox, Safari, Edge)
config.phpdosyasını düzenleyin ve admin şifrenizi ayarlayın:define('ADMIN_USERNAME', 'admin'); define('ADMIN_PASSWORD', 'güçlü_şifreniz'); // Değiştirin!
# data klasörünün yazılabilir olduğundan emin olun
chmod 755 data/PHP Built-in Server ile (Development):
php -S localhost:8080Apache/Nginx ile:
- Proje klasörünü web sunucunuzun document root'una koyun
http://sunucu-adresi/docentlik-yoluadresinden erişin
-
Admin Girişi:
- Kullanıcı Adı:
admin(varsayılan) - Şifre:
config.php'de belirlediğiniz şifre - Verileriniz JSON dosyasına kaydedilir
- Kullanıcı Adı:
-
Ziyaretçi Modu:
- "Ziyaretçi Olarak Devam" butonuna tıklayın
- Tüm özellikleri deneyebilirsiniz
⚠️ Veriler kaydedilmez!
Sol üstteki "📚 Alan" butonuna tıklayarak akademik alanınızı seçin:
- Mühendislik Temel Alanı (
muhendislik.json) - Sosyal, Beşeri ve İdari Bilimler (
sosyal-bilimler.json)
- Quest Kartları: Her kriter kategorisi için bir kart görürsünüz
- Karta Tıklayın: Detaylı modal açılır
- Kriterleri İşaretleyin:
- ✅ Checkbox: Tek seferlik kriterler (ör: Patent)
- + / -: Sayılabilir kriterler (ör: Makale sayısı)
- Otomatik Kayıt: Her değişiklik otomatik kaydedilir (admin modunda)
İlerlemenize göre başarımlar kazanın:
- 👣 İlk Adım: 10 puan
- 🌟 25 Puan: 25 puan
- 🚀 Yarı Yol: 50 puan
- 🔥 Neredeyse: 90 puan
- 🎯 Hedef!: 100 puan
- 📚 Yayıncı: 5 görev tamamla
- 🛡️ Tam Donanım: Tüm zorunlu şartlar
docentlik-yolu/
├── index.html # Ana HTML dosyası
├── api.php # Backend API
├── config.php # Konfigürasyon (GIT'e EKLEME!)
├── config.php.example # Konfigürasyon şablonu
├── manifest.json # PWA manifest
├── sw.js # Service Worker (PWA)
│
├── css/
│ ├── base.css # Değişkenler, reset
│ ├── components.css # UI bileşenleri
│ ├── modal.css # Modal stilleri
│ ├── animations.css # Genel animasyonlar
│ ├── mobile.css # Responsive stiller
│ └── progress-effects.css # Progress bar efektleri
│
├── js/
│ ├── app.js # Ana uygulama
│ ├── state.js # Durum yönetimi
│ ├── api.js # API çağrıları
│ ├── auth.js # Kimlik doğrulama
│ ├── ui.js # UI render
│ ├── modal.js # Modal işlemleri
│ └── effects.js # Görsel efektler
│
├── kriterler/
│ ├── alanlar.json # Alan listesi
│ ├── muhendislik.json # Mühendislik kriterleri
│ └── sosyal-bilimler.json # Sosyal Bilimler kriterleri
│
├── data/
│ └── user_progress_[alan].json # Kullanıcı verileri (otomatik oluşur)
│
└── icons/
├── icon-192.png # PWA ikonu (192x192)
└── icon-512.png # PWA ikonu (512x512)
// Admin bilgileri
define('ADMIN_USERNAME', 'admin');
define('ADMIN_PASSWORD', 'şifreniz');
// Session süresi (saniye)
define('SESSION_TIMEOUT', 3600); // 1 saat
// Dizinler
define('DATA_DIR', __DIR__ . '/data');
define('CRITERIA_DIR', __DIR__ . '/kriterler');kriterler/klasörüne yeni JSON dosyası ekleyin (ör:fen-bilimleri.json)kriterler/alanlar.jsondosyasını düzenleyin:
{
"alanlar": [
{
"id": "fen-bilimleri",
"adi": "Fen Bilimleri",
"dosya": "fen-bilimleri.json",
"icon": "🔬",
"renk": "#aa00ff"
}
]
}- JSON dosyanızda ÜAK kriterlerini yapılandırın
Bu uygulama hem bilgisayarınıza hem de telefonunuza masaüstü uygulaması gibi kurulabilir.
Chrome/Edge:
- Siteyi açın
- Adres çubuğunun sağında 📥 (indirme/kurulum) simgesine tıklayın
- "Yükle" veya "Install" butonuna tıklayın
- Uygulama masaüstünüzde kısayol olarak görünecek
Chrome/Samsung Internet:
- Siteyi açın
- Sayfanın altında otomatik olarak çıkan "Ana ekrana ekle" bildirimini kullanın
- VEYA sağ üst köşedeki ⋮ menüsünden "Ana ekrana ekle" veya "Uygulamayı yükle" seçeneğini seçin
- "Ekle" butonuna dokunun
- Uygulama ana ekranınızda bir ikon olarak görünecek
Safari (ZORUNLU - diğer tarayıcılar desteklenmiyor):
- Siteyi Safari ile açın
- Alt menüdeki 📤 (Paylaş) butonuna dokunun
- Aşağı kaydırın ve "Ana Ekrana Ekle" seçeneğini bulun
- Sağ üstteki "Ekle" butonuna dokunun
- Uygulama ana ekranınızda görünecek
⚠️ Önemli: iOS'ta Chrome veya Firefox PWA kurulumunu desteklemez, Safari kullanmalısınız.
Eğer uygulamayı ana domain yerine alt klasöre kuruyorsanız, PWA'nın doğru çalışması için manifest.json dosyasını düzenlemeniz gerekir.
Örnek Senaryolar:
| Kurulum Yeri | start_url | scope |
|---|---|---|
example.com (kök dizin) |
./ veya / |
./ veya / |
example.com/docent |
./ |
./ |
example.com/apps/docent |
./ |
./ |
Ne zaman değiştirmeniz gerekir?
- ❌
example.com→ Değiştirmenize gerek yok (varsayılan ayarlar çalışır) - ✅
example.com/docent→ Aşağıdaki gibi düzenleyin
Nasıl düzenlenir?
manifest.jsondosyasını açınstart_urlvescopedeğerlerinin./olduğundan emin olun:
{
"start_url": "./",
"scope": "./"
}💡 İpucu:
./göreceli yol kullanmak, uygulamanın hangi klasörde olduğunu otomatik algılamasını sağlar.
Service Worker sayesinde:
- ✅ Arayüz dosyaları önbelleğe alınır
- ✅ İnternet olmadan da açılabilir (sınırlı)
- ❌ Veri kaydetme/yükleme için internet gerekir
css/base.css dosyasındaki CSS değişkenlerini düzenleyin:
:root {
--neon-blue: #00f0ff; /* Ana mavi */
--neon-green: #00ff88; /* Başarı yeşili */
--neon-yellow: #ffee00; /* Uyarı sarısı */
--neon-pink: #ff00aa; /* Vurgu pembe */
/* ... */
}js/effects.js dosyasında:
setupEnergyParticles()- ParçacıklarsetupRocketEngine()- Roket egzozucelebrateMilestone()- Kutlamalar
# data klasörüne yazma izni verin
chmod 755 data/config.phpdosyası var mı?- Admin modunda mısınız? (Ziyaretçi modu kaydetmez)
data/klasörü yazılabilir mi?
- HTTPS kullanıyor musunuz? (localhost için gerekli değil)
manifest.jsonvesw.jserişilebilir mi?- Tarayıcı konsolu hatalarını kontrol edin
- Sayfayı yenileyin (F5)
- Browser cache'ini temizleyin
- Ziyaretçi modunda alan değişikliklerini deneyebilirsiniz
- Frontend: Vanilla JavaScript (ES6+), CSS3
- Backend: PHP 7.4+
- Veri: JSON dosyaları
- Design: Retro/Sci-Fi/Gaming tema
Proje tamamen modüler:
- 6 CSS modülü: Bakımı kolay, ayrı ayrı yüklenir
- 7 JS modülü: Her biri tek sorumluluğa sahip
- PWA yapısı: Service Worker ile offline destek
# PHP built-in server ile
php -S localhost:8080
# Tarayıcıda aç
open http://localhost:8080MIT License - Kişisel kullanım için özgürce kullanabilirsiniz.
Bu kişisel bir proje olarak geliştirilmiştir. Fork edip kendi ihtiyaçlarınıza göre özelleştirebilirsiniz.
- Detaylı ÜAK kural kontrolü (başlıca yazar, minimum puan)
- Co-authorship puan hesaplama (yazar sayısına göre dinamik puan)
- Import/Export özelliği
- Multi-user support
- Email bildirimleri
- Raporlama modülü
Sorularınız için GitHub Issues kullanabilirsiniz.
⭐ Projeyi beğendiyseniz yıldız vermeyi unutmayın!
Made with 🎓 and ☕