Skip to content

tunadeveloper/MongoDB-RestaurantProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🍔 ASP.NET Core & MongoDB Restoran Yönetim Sistemi

.NET Core C# MongoDB AutoMapper FluentValidation MailKit PagedList HTML5 CSS3 JavaScript Bootstrap

📖 Proje Hakkında

Bu proje, ASP.NET Core ve MongoDB kullanarak geliştirmiş olduğum kapsamlı bir Full Stack Restoran Yönetim Sistemidir. Projem fiziksel olarak tek katmanlı bir yapıda olsa da, Clean Code prensiplerine sadık kalarak mantıksal katmanlara (Entities, DTOs, Services, Managers) ayrılmıştır. Veri tutarlılığı ve kodun sürdürülebilirliği için Repository Design Pattern ve validasyon yapıları kullandım.

🏗️ Mimari ve Teknik Detaylar

Projede modüler, genişletilebilir ve temiz bir kod yapısı hedeflenmiştir.

Kategori Teknoloji / Kütüphane Kullanım Amacı
Framework ASP.NET Core 10.0 Ana uygulama çatısı
Veritabanı MongoDB NoSQL veri depolama
ORM / Desen Repository Pattern Veri erişim soyutlaması
Mapping AutoMapper Entity ve DTO nesne eşlemeleri
Validasyon FluentValidation Sunucu taraflı veri doğrulama
İletişim MailKit (SMTP/IMAP) Mail gönderme ve okuma (Inbox/Sent)
Güvenlik Cookie Authentication Admin paneli giriş güvenliği
Sayfalama PagedList Veri listeleme performansı
Frontend HTML5, CSS3, Bootstrap Kullanıcı arayüzü tasarımı

🔧 Geliştirme Prensipleri

  • Repository Design Pattern: Veritabanı işlemlerini soyutlayarak kod tekrarını önledim ve test edilebilirliği artırdım.
  • Service Layer: Her varlık (Entity) için ayrı servisler (örneğin; ProductService, CategoryService) yazarak iş mantığı controller'dan ayrıştırdım.
  • DTO (Data Transfer Objects): Result, Create ve Update işlemleri için ayrı DTO'lar kullanılarak veri güvenliğini sağladım.
  • ViewComponents & Partial Views: UI kod tekrarını önlemek ve temiz bir HTML yapısı için component bazlı geliştirme yaptım.
  • Dependency Injection: Bağımlılıkları yönetmek ve gevşek bağlı bir yapı kurmak için aktif olarak kullandım.

✨ Özellikler

👨‍🍳 Kullanıcı Arayüzü (Public)

  • Menü ve Ürünler: Kategorize edilmiş menü, ürün detayları, fiyatlar ve içerik bilgileri.
  • Etkileşim: Kullanıcılar ürünlere yorum yapabilir ve yıldız (rating) verebilir.
  • Blog: Restoran ile ilgili haberler ve makaleler (Yorum yapma özelliği ile).
  • Rezervasyon: Müşteriler online masa rezervasyonu oluşturabilir.
  • İletişim & Bülten: İletişim formu ve e-bülten aboneliği.
  • Şefler: Mutfak ekibi ve şef detay sayfaları.

🔒 Yönetim Paneli (Admin Dashboard)

  • Dashboard: Anlık istatistikler, metrikler ve özet veriler.
  • Ürün Yönetimi: Ürün ekleme, silme, güncelleme, kategori yönetimi ve ürün yorumlarını denetleme.
  • Rezervasyon Yönetimi: Gelen rezervasyonları görüntüleme, onaylama veya iptal etme (Bekleyen/Onaylanan/İptal).
  • Gelişmiş Mesajlaşma Sistemi:
    • SMTP & MailKit Entegrasyonu: Admin paneli üzerinden sadece mail gönderme değil, gelen mailleri okuma (Inbox), giden kutusu ve yıldızlı mesajlar gibi özellikler bir webmail istemcisi gibi çalışır.
  • İçerik Yönetimi: Blog yazıları, şefler, referanslar, galeri, tanıtım videoları ve özel tekliflerin yönetimi.
  • Ayarlar: SMTP ayarları ve Dark Mode (Karanlık Mod) desteği.
  • Güvenlik: Cookie tabanlı güvenli giriş sistemi.

📂 Klasör Yapısı (Özet)

Proje yapısı mantıksal ayrımı net bir şekilde yansıtmaktadır:

MongoDB-RestaurantProject
├── Areas (Admin Paneli)
├── Context (Veritabanı Modelleri ve Veritabanı Bağlantısı)
├── Services (İş Mantığı Katmanı)
├── DTOs (Data Transfer Objects)
├── Extensions (Program.cs için extension metotları)
├── FluentValidation (Doğrulama Kuralları)
├── Mapping (AutoMapper Profili)
├── ViewComponents (UI Bileşenleri)
├── Controllers
└── Views

👨‍💻 Kullanıcı Paneli

Aşağıda kullanıcı arayüzüne ait sayfa görüntüleri kategorilere ayrılmış şekilde listelenmiştir.

🏠 Anasayfa


🍽️ Menü ve Ürün Detayı


👨‍🍳 Şefler ve Şef Detayları


🏢 Hakkımızda


📝 Blog Yazıları ve Detayları


📬 İletişim


📅 Rezervasyon


🔐 Login Paneli


🛠️ Admin Paneli

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors