Visitor Book
Visitor Book, ziyaret edilebilecek yerler ve bu yerlere gelen ziyaretçilerin kayıt süreçlerini yönetmek için geliştirilmiş kişisel bir ziyaretçi yönetim sistemi projesidir. Kullanıcılar ziyaret edilecek lokasyonları, ziyaretçi kayıtlarını ve ilgili yönetim süreçlerini web arayüzü üzerinden takip edebilir.
- Kurum / bağlam
- Kişisel
- Kategori
- Web
- Dönem
- 1 Eki 2023 - 1 Oca 2024
Teknolojiler
C# ASP.NET Core MVC 7 Bootstrap HTML CSS JavaScript jQuery Docker Docker Compose Multilanguage Support Fluent Validation AutoMapper Generic Repository Pattern UnitOfWork Pattern Permission Based Authentication Permission Based Authorization Audit Logs Exception Handling Middleware DataTables MVC Grid SQL Server Entity Framework Core 7 Code First jQuery Validation Unobtrusive Bundler Minifier Toastr SweetAlert Git GitHub Cloudflare Custom Domain Ubuntu Server
Visitor Book, ziyaret edilebilecek yerler ve bu yerlere gelen ziyaretçilerin kayıt süreçlerini yönetmek için geliştirilmiş kişisel bir ziyaretçi yönetim sistemi projesidir. Kullanıcılar ziyaret edilecek lokasyonları, ziyaretçi kayıtlarını ve ilgili yönetim süreçlerini web arayüzü üzerinden takip edebilir.
Proje Bilgisi
- Kurum / bağlam: Kişisel
- Platform: Web
- Dönem: Ekim 2023 - Ocak 2024
Proje Türü
- Proje bir full stack web uygulamasıdır.
- ASP.NET Core MVC 7 proje şablonu kullanılarak geliştirilmiştir.
- Kişisel bir ziyaretçi yönetim sistemi projesidir.
Mimari Yapı / Sistem Tasarımı
- Proje mimari olarak iki ana katmandan oluşur: web uygulaması ve veritabanı.
- Web uygulaması katmanı kendi içinde hem frontend hem de backend tarafını barındırır.
- Uygulama, MVC mimarisinin katmanlı mimari ile harmanlanmış yapısı üzerine kuruludur.
- Veritabanı katmanı SQL Server ile oluşturulmuştur.
- İlk katman kurumsal mimariye uygun, birbirinden olabildiğince bağımsız ve kolay genişletilebilir olacak şekilde tasarlanmıştır.
- Çözüm içerisinde Business, Core, DataAccess ve User Interface katmanları bulunur.
- Business katmanı iş kurallarını ve servis tanımlarını içerir.
- Core katmanı soyutlamaları, yardımcı sınıfları ve ortak yapıları içerir.
- DataAccess katmanı repository’leri ve migration’ları içerir.
- User Interface katmanı view’ları, middleware’leri ve area yapılarını içerir.
Kullanılan Teknolojiler
- Backend ve MVC: C#, ASP.NET Core MVC 7, Entity Framework Core 7, SQL Server, Code First
- Frontend: Bootstrap, HTML, CSS, JavaScript, jQuery, DataTables, MVC Grid
- Mimari ve desenler: Generic Repository Pattern, UnitOfWork Pattern, DTO, ViewModel, AutoMapper
- Validasyon ve güvenlik: Fluent Validation, jQuery Validation Unobtrusive, permission based authentication, permission based authorization
- Loglama ve hata yönetimi: Audit Logs, Exception Handling Middleware
- Arayüz bildirimleri ve araçlar: Toastr, SweetAlert, Bundler Minifier
- DevOps ve yayınlama: Docker, Docker Compose, Git, GitHub, Cloudflare, Custom Domain, Ubuntu Server
Öne Çıkan Teknik Detaylar ve Modüller
- Bootstrap ile kullanıcı arayüzleri oluşturuldu.
- Permission ve role based authentication / authorization desteği geliştirildi.
- Generic Repository ve UnitOfWork Pattern kullanıldı.
- Template ile e-posta gönderimi sağlandı.
- Çoklu dil desteği eklendi.
- AutoMapper ile object mapping yapıldı.
- Bogus ile fake data oluşturuldu.
- Veri transferinde DTO kullanıldı.
- View’larda ViewModel kullanıldı.
- Veritabanı işlemleri audit log olarak loglandı.
- Hatalar error log olarak loglandı.
- Veriler için sayfalama, arama ve filtreleme desteği sağlandı.
- İki farklı tablo listeleme aracı kullanıldı: DataTables ve MVC Grid.
- Entity Framework Core ORM ile veritabanı işlemleri yürütüldü.
- Code First yaklaşımı ile veritabanı migration’ları yönetildi.
- Fluent Validation ile server-side validasyon yapıldı.
- jQuery Validation Unobtrusive ile client-side validasyon yapıldı.
- Gerekli yerlerde extension metotlar kullanıldı.
- Bundler Minifier ile CSS ve JavaScript dosyaları minify edildi.
- Toastr ve SweetAlert ile bildirim yönetimi sağlandı.
- Docker ve Docker Compose desteği eklendi.
Katılım Durumu ve Süre
- Projeyi tek başıma geliştirdim.
- Sürecin başından sonuna kadar tüm aşamalarda kendim yer aldım.
- Proje Ekim 2023 ile Ocak 2024 tarihleri arasında geliştirildi.
Proje Yönetimi / Takım Yapısı
- Proje yönetimi için kişisel iş takibi amacıyla Trello kullandım.
- Projeyi tek başıma geliştirdiğim için ayrı bir takım yapısı bulunmamaktadır.
Kişisel Katkılar ve Sorumluluklar
- Projenin tüm teknik sorumluluğu bana aittir.
- Uygulama şu an kendi fiziksel sunucumda Ubuntu Server üzerinde yayınlanmaktadır.
- Projenin ihtiyaç duyduğu geliştirme, deployment, domain ve altyapı süreçlerini kendim yönetiyorum.
Yayın / Deployment Bilgisi
- Proje Docker image olarak hazırlanmış ve Docker Hub üzerinde barındırılmaktadır.
- Kaynak kodlar Git ile versiyonlanmakta ve GitHub üzerinde herkese açık şekilde tutulmaktadır.
- Yayınlama işlemi kendi fiziksel Ubuntu Server ortamım üzerinden yapılmaktadır.
- Domain ve DNS yönetimi Cloudflare ile sağlanmaktadır.
- Gerektiğinde SSL sertifikası Let’s Encrypt üzerinden yönetilmektedir.