Taşhan Sofrası, bir restoran senaryosu üzerinde rezervasyon ve sipariş süreçlerinin kolayca yönetilebilmesi için geliştirmiş olduğum bir sistemdir. Kullanıcılar, restorana giriş yaparak masalardaki QR kodu okutup menüdeki ürünleri inceleyebilir, sepetlerine ekleyebilir ve masaya sipariş verebilirler. Ayrıca kullanıcılar rezervasyon oluşturma, mesaj gönderme imkânına da sahip.
Admin panelinde ise, SignalR teknolojisi kullanılarak siparişler, rezervasyonlar ve mesajlar gerçek zamanlı olarak görüntülenebilir. Bu sayede yöneticiler; anlık olarak masalara yapılan siparişleri tamamlayabilir ve çeşitli istatistiksel verileri inceleyebilir. Bununla beraber sitenin ön yüz kısmındaki verileri büyük ölçüde admin paneliyle dinamik olarak özelleştirmek mümkün.
Bu projeyi ASP.NET Core 8.0 ve SignalR teknolojileri kullanarak geliştirdim. Tüm CRUD işlemleri API katmanı üzerinden gerçekleştirildi ve MVC tarafında dinamik bir yapıya entegre edildi. Veritabanı olarak MSSQL Server üzerinde Code-First olarak Entity Framework Core kullanıldı. Proje, sürdürülebilirlik ve modülerlik açısından N katmanlı mimariye (Entity, DataAccess, Business, DTO, API, UI) ve SOLID prensiplerine uygun olarak geliştirdim. Bu açıdan CRUD işlemlerini merkezileştirmek için Generic Repository tasarım desenini de uyguladım. Ayrıca AutoMapper üzerinden DTO katmanı sayesinde veriler daha güvenli bir şekilde işlemiş oldum. Son olarak Docker ile projeyi tamamen konteyner ortamına taşıdım. Tüm teknik detayları ise şu şekilde sıralayabilirim:
- ASP.NET Core 8.0
- ASP.NET Core Web API
- SignalR
- Entity Framework Code First
- MSSQL Server
- Docker
- Identity
- Fluent Validation
- AutoMapper
- QRCoder
- SkiaSharp
- HTML, CSS, JavaScript
- Bootstrap
- Ajax
- Rezervasyon yapma
- QR Kod ile ilgili masaya sipariş verme
- Mesaj gönderme
- Kupon kodu sistemi
- SignalR ile anlık sipariş yönetimi
- SignalR ile anlık rezervasyon yönetimi
- SignalR ile bildirim sistemi
- SignalR ile anlık istatistikler
- Ürünlerde CRUD işlemleri
- Kategorilerde CRUD işlemleri
- İndirimli ürün tanımlama
- Sitedeki diğer veriler için CRUD işlemleri
- Masaya ait QR kod oluşturma
- Identity ile hesap işlemleri
Projeyi lokalinizde ayağa kaldırmak için projeyi sisteminize klonlayıp TashanSofrasi.sln dosyasını Visual Studio IDE üzerinden Docker compose ile çalıştırmanız yeterlidir.
git clone https://github.com/burakarslan0110/Tashan-Sofrasi-Web-App.git
Eğer IDE kullanmaksızın projeyi ayağa kaldırmak istiyorsanız DockerComposeNonVS dosyasının bulunduğu dizine terminal üzerinden geçip aşağıdaki komutu çalıştırın. Ardından https://localhost:8083 adresinden projeyi inceleyebilirsiniz. API katmanına ise Swagger üzerinden https://localhost:8081 adresiyle erişebilirsiniz.
docker compose up -d
Admin paneline giriş adresi https://localhost:8083/Admin
Kayıt olarak hesap oluşturabilirsiniz.