Proje Raporu

```

1. Proje Amacı

Bu proje, BLP251 Web Programcılığı dersi kapsamında PHP, MySQL ve Bootstrap teknolojileri kullanılarak geliştirilmiştir. Projenin amacı, restoran ve kafe işletmelerinin ürünlerini dijital ortamda tanıtabilmesini ve yönetebilmesini sağlayan dinamik bir web uygulaması oluşturmaktır.

Sistem iki farklı kullanıcı yapısından oluşmaktadır. Kullanıcılar menüleri inceleyebilir, ürün detaylarını görüntüleyebilir ve iletişim formu aracılığıyla işletmeye ulaşabilir. Yönetici tarafında ise kategori yönetimi, ürün ekleme, ürün güncelleme, ürün silme, gelen mesajların görüntülenmesi ve site ayarlarının düzenlenmesi işlemleri gerçekleştirilebilmektedir.

Proje geliştirilirken güvenlik, kullanılabilirlik ve mobil uyumluluk ön planda tutulmuştur. Veritabanı işlemlerinde PDO ve Prepared Statement yapıları kullanılmış, kullanıcı şifreleri password_hash() yöntemiyle güvenli şekilde saklanmıştır. Böylece gerçek hayatta kullanılabilecek temel bir restoran menü ve yönetim sistemi örneği oluşturulmuştur.

2. Kullanılan Teknolojiler

HTML5 & CSS3

Web sayfalarının temel iskeletini oluşturmak, sayfa düzenini hazırlamak ve özel görsel stilleri tanımlamak için kullanılmıştır.

Bootstrap 5.3 & Icons

Telefon, tablet ve bilgisayar ekranlarında uyumlu çalışan responsive tasarım oluşturmak için kullanılmıştır.

PHP

Kullanıcı giriş işlemleri, yönetici paneli, ürün listeleme, kategori yönetimi ve form işlemleri için kullanılmıştır.

MySQL

Kullanıcılar, kategoriler, ürünler, iletişim mesajları ve site ayarlarının saklanması için kullanılmıştır.

3. Veritabanı Yapısı

Projede toplam 5 adet tablo kullanılmıştır. Bu tablolar kullanıcı bilgileri, ürün kategorileri, ürünler, iletişim mesajları ve site ayarlarını saklamak için tasarlanmıştır.

Tablo Adı Alanlar Açıklama
kullanicilar id, ad_soyad, email, sifre, rol Kullanıcı ve yönetici hesaplarını saklar. Şifreler güvenli şekilde hashlenmiştir.
kategoriler id, kategori_adi Menüdeki ürünlerin sınıflandırılmasını sağlar.
urunler id, kategori_id, urun_adi, aciklama, fiyat, resim Ürün adı, açıklama, fiyat, kategori ve görsel bilgilerini tutar.
iletisim_mesajlari id, ad_soyad, email, mesaj, tarih Kullanıcıların iletişim formundan gönderdiği mesajları saklar.
site_ayarlari id, site_adi, telefon, email, adres Site adı, telefon, e-posta ve adres gibi genel site bilgilerini tutar.

4. Sistem Özellikleri

Kullanıcı Arayüzü
  • Ana sayfa üzerinden restoran/kafe tanıtımı yapılmaktadır.
  • Menü sayfasında ürünler kategorilere göre listelenmektedir.
  • Ürün detay sayfasında ürün açıklaması, fiyatı ve görseli gösterilmektedir.
  • İletişim sayfası üzerinden kullanıcılar mesaj gönderebilmektedir.
  • Sayfalar Bootstrap sayesinde mobil uyumlu çalışmaktadır.
Yönetici Paneli
  • Yönetici giriş yaptıktan sonra panele erişebilmektedir.
  • Kategori ekleme, silme ve güncelleme işlemleri yapılabilmektedir.
  • Ürün ekleme, ürün düzenleme, ürün silme ve ürün görseli yükleme işlemleri yapılabilmektedir.
  • İletişim mesajları yönetici panelinden görüntülenebilmektedir.
  • Site ayarları yönetici tarafından düzenlenebilmektedir.

5. Güvenlik Önlemleri

  • Veritabanı bağlantısı PDO ile yapılmıştır.
  • SQL Injection saldırılarını önlemek için Prepared Statement kullanılmıştır.
  • Kullanıcı şifreleri açık metin olarak değil, password_hash() ile hashlenmiş şekilde saklanmaktadır.
  • Giriş işlemlerinde password_verify() kullanılmıştır.
  • Yönetici paneline sadece admin rolüne sahip kullanıcıların erişebilmesi sağlanmıştır.
  • Oturum işlemleri PHP Session yapısı ile kontrol edilmiştir.

6. Ekran Görüntüleri

Proje raporunda kullanılmak üzere ana sayfa, menü sayfası ve yönetici paneli ekran görüntülerinin eklenmesi planlanmıştır.

Görsel 1: Ana Sayfa Arayüzü
Ana Sayfa
Görsel 2: Menü Sayfası
Menü Sayfası
Görsel 3: Yönetici Paneli
Yönetici Paneli

8. Sonuç ve Değerlendirme

Bu proje sonucunda PHP ve MySQL kullanılarak yönetilebilir, dinamik ve responsive bir restoran/kafe web sitesi geliştirilmiştir. Proje kapsamında kullanıcı arayüzü ve yönetici paneli ayrı olarak tasarlanmış, ürün ve kategori yönetimi gibi temel CRUD işlemleri uygulanmıştır. Böylece BLP251 Web Programcılığı dersinde öğrenilen konular uygulamalı olarak pekiştirilmiştir.

Öğrenci Bilgileri

BLP251 Dönem Projesi

Öğrenci Adı Soyadı Sami Yusuf Alper
Öğrenci Numarası 05384421711
Bölüm / Program Bilgisayar Programcılığı
Ders Sorumlusu Dr. Öğr. Üyesi Mehmet Süleyman Yıldırım
```