Not Bul, öğrencilerin ders notlarını üniversite / bölüm / ders / konu kırılımlarında keşfedip paylaşabilmesi için geliştirilen bir web platformudur. Proje şu an Pre-Alpha aşamasındadır.
- Ana sayfa keşif deneyimi
- “Yeni Yüklenenler” alanı
- Arama kutusu + hiyerarşik filtreler (üniversite, program türü, bölüm, ders, konu)
- Detaylı not arama ekranı
- Gelişmiş filtre paneli
- Dosya türüne göre süzme
- Sonuç sayısı ve sayfalama
- Not yükleme akışı
- Drag & drop dosya seçimi
- Başlık, açıklama, etiket ve akademik hiyerarşi seçimi
- Güvenlik odaklı yükleme kontrol listesi
- Not detay sayfası
- Önizleme alanı, meta bilgiler, etiketler, yorum listesi
- Kimlik doğrulama (backend bağlı)
- Kayıt ol, giriş yap, çıkış yap
- Şifre hashleme ve PDO prepared statement kullanımı
- Backend: PHP (procedural + PDO)
- Veritabanı: MySQL
- Frontend: HTML, Bootstrap 5, vanilla JavaScript
- Veri Kaynakları:
- MySQL
usersvenotestabloları - JSON dosyaları (
assets/data/*.json) (filtre alanları için)
- MySQL
.
├── assets/
│ ├── css/app.css
│ ├── data/
│ │ ├── universiteler.json
│ │ └── bolumler.json
│ ├── icons/favicon.svg
│ └── js/app.js
├── includes/
│ ├── db.php
│ ├── header.php
│ └── footer.php
├── index.php
├── search.php
├── upload.php
├── note-detail.php
├── register.php
├── login.php
├── logout.php
└── database.sql
- PHP 8+
- MySQL / MariaDB
- Bir local web server (Apache, Nginx veya PHP built-in server)
database.sql dosyasını içe aktar:
mysql -u root -p < database.sqlBu script:
notbulveritabanını oluştururusersvenotestablolarını yaratır
includes/db.php içinde ortamına göre bilgileri güncelle:
$host$db$user$pass
Örn. proje kökünde:
php -S localhost:8000Ardından tarayıcıda aç:
http://localhost:8000
Projede şu güvenlik pratikleri uygulanmış durumda:
- Kayıt/giriş tarafında PDO prepared statement kullanımı
- Şifrelerin
password_hashile saklanması - Çıkışta metinlerin
htmlspecialcharsile kaçışlanması
Dosya yükleme backend’i aktif olsa da aşağıdaki güvenlik adımlarının korunması üretimde zorunludur:
- MIME/type ve uzantı doğrulaması
- Maksimum dosya boyutu kontrolü
- Güvenli dosya adı üretimi
- Web root dışına saklama + kontrollü stream endpoint
- Arama, filtreleme ve not listeleri veritabanındaki gerçek notlardan üretilir.
- Auth akışı (
register/login/logout) gerçek veritabanına bağlıdır. - Not yükleme ve not detay sayfaları backend'e bağlıdır; yorumlar henüz istemci tarafında tutulur.
- Gerçek not modeli ve tabloları (notes, tags, comments, downloads, views)
- Dosya yükleme backend’i (güvenli depolama + antivirüs/scan opsiyonları)
- Yetkilendirme (kullanıcı rollerine göre işlem izinleri)
- Arama API’si + pagination/sorting (server-side)
- Rate limiting & audit log
- Test altyapısı (PHPUnit + temel E2E)
- Containerization ve CI/CD
Bu proje LICENSE dosyası altında lisanslanmıştır.
İlk adım olarak issue açıp mevcut Pre-Alpha kapsamına uygun bir katkı planı paylaşmanız önerilir.