İzmir Ekonomi Üniversitesi Bilgisayar Programcılığı bölümü kapsamında C# WinForms + SQL Server ile geliştirilmiş, katmanlı mimari ile yazılmış stok ve sipariş yönetim masaüstü uygulaması.
🌐 Portfolio: https://ilkerefeipek.github.io/ilkerefeipek-portfolio/ 📧 İletişim: ilkerefeipek00@gmail.com
Küçük ve orta ölçekli işletmeler için ürün, stok, tedarikçi, sipariş ve
kullanıcı yönetimi sağlayan masaüstü uygulaması. Solution; UI / BLL / DAL /
Entities olmak üzere 4 katmanlı mimari ile organize edilmiştir. Veri
erişimi için ADO.NET (SqlConnection, SqlCommand) kullanılır; veritabanı
bağlantısı Windows Authentication ile sağlanır (Connection string'de
parola yoktur).
| Katman | Teknoloji |
|---|---|
| UI | C# WinForms (.NET Framework 4.8) |
| BLL | Business Logic Layer — manager pattern |
| DAL | Data Access Layer — ADO.NET (SqlConnection, SqlCommand, SqlDataReader) |
| Entities | POCO model class'ları |
| Veritabanı | Microsoft SQL Server Express (.\SQLEXPRESS) |
| Auth | Windows Authentication (Trusted_Connection=True) |
| IDE | Visual Studio 2022 |
turgayhoca/
├── ilkerefeipek_20232425024.UI/ ← WinExe entry point
│ ├── ilkerefeipek_20232425024.UI.sln ← Solution file
│ ├── LoginForm.cs / MainForm.cs
│ ├── ProductForm / ProductAddForm / ProductUpdateForm
│ ├── OrderForm / OrderAddForm / OrderUpdateForm
│ ├── SupplierForm / SupplierAddForm / SupplierUpdateForm
│ ├── UserForm / UserAddForm / UserUpdateForm
│ ├── Resources/ ← logo + ikonlar
│ └── App.config ← connection string
│
├── ilkerefeipek_20232425024.BLL/ ← Class Library (→ DAL, Entities)
│ ├── AddressManager.cs
│ ├── DataLoader.cs
│ ├── OrderManager.cs
│ ├── ProductManager.cs
│ ├── StatusManager.cs
│ ├── SupplierManager.cs
│ └── UserManager.cs
│
├── ilkerefeipek_20232425024.DAL/ ← Class Library (→ Entities)
│ ├── DatabaseConnection.cs (DbHelper static)
│ ├── AddressDAL.cs
│ ├── OrderDAL.cs
│ ├── OrderDetailDAL.cs
│ ├── ProductDAL.cs
│ ├── StatusDAL.cs
│ ├── SupplierDAL.cs
│ └── UserDAL.cs
│
├── ilkerefeipek_20232425024.Entities/ ← POCO models
│ ├── Address / Category / Comment / Message
│ ├── Order / OrderDetail / OrderView
│ ├── Product / Status / Supplier
│ └── User / UserTelephone
│
├── img/ ← Brand assets
├── README.md
└── .gitignore
Dependency akışı: UI → BLL → DAL → Entities (UI Entities'i de referansla — model tipleri için).
- Kullanıcı yönetimi: kullanıcı ekle / düzenle / listele, e-posta tabanlı giriş
- Ürün yönetimi: CRUD, kategori-tedarikçi ilişkisi
- Sipariş işlemleri: sipariş oluştur / güncelle, OrderDetail tablosunda kalemler, OrderView ile aggregate görüntüleme
- Tedarikçi yönetimi: marka bazlı tedarikçi kayıtları
- Adres yönetimi: kullanıcı adres bilgileri (
Addressentity,AddressManager) - Durum lookup: sipariş yaşam döngüsü (
Statusentity) - Layered separation: her CRUD işlemi UI form → BLL manager → DAL → SQL pattern'inden geçer
Database adı: ilkerefeipek_20232425024
Auth: Windows Authentication — Trusted_Connection=True
Bağlantı: App.config içinde DefaultConnection adıyla saklanır:
<connectionStrings>
<add name="DefaultConnection"
connectionString="Server=.\SQLEXPRESS;Database=ilkerefeipek_20232425024;Trusted_Connection=True;"
providerName="System.Data.SqlClient" />
</connectionStrings>DAL'da DbHelper static class'ı bu connection string'i ConfigurationManager.ConnectionStrings["DefaultConnection"] üzerinden okur — kaynak kodda hardcoded credential yoktur.
Entities katmanındaki POCO model'lere karşılık gelen SQL tabloları:
| Entity | Tipik kolonlar |
|---|---|
User |
UserID, UserName, UserSurname, EmailAddress, Role, Active |
UserTelephone |
PhoneID, UserID, PhoneNumber, PhoneType, IsPrimary |
Address |
AddressID, UserID, AddressLine, City, District, PostalCode |
Category |
CategoryID, CategoryName, ParentCategoryID |
Supplier |
SupplierID, CompanyName, ContactName, Email, Phone, Country |
Product |
ProductID, ProductName, CategoryID, SupplierID, UnitPrice, Stock |
Order |
OrderID, UserID, AddressID, StatusID, OrderDate |
OrderDetail |
OrderDetailID, OrderID, ProductID, Quantity, UnitPrice |
OrderView |
(denormalized join view — Order + User + Status snapshot) |
Status |
StatusID, StatusName |
Comment |
CommentID, UserID, ProductID, Rating, CommentText |
Message |
MessageID, SenderID, ReceiverID, Subject, Body |
Tablolar arasındaki FK ilişkileri DAL sınıflarında somutlaştırılmıştır. Şema referansı olarak proje2 — Multi-Layered E-Commerce DB Design repo'su kullanılabilir (aynı entity model dünyası, MSSQL T-SQL ile birebir).
- Visual Studio 2022 (Community veya üstü)
- SQL Server Express (yerel
\SQLEXPRESSinstance) veya LocalDB - .NET Framework 4.8 (Visual Studio installer ile otomatik gelir)
-
Repo'yu klonla:
git clone https://github.com/ilkerefeipek/proje1.git cd proje1 -
Veritabanını oluştur:
- SSMS açın,
.\SQLEXPRESSinstance'a bağlanın - Yeni database oluşturun:
ilkerefeipek_20232425024 - Entity model'lere uygun tabloları manuel oluşturun (yukarıdaki Entity-Tablo Eşleştirmesi'ne göre) veya
proje2schema'sını referans alarak adapte edin
- SSMS açın,
-
Solution'ı aç:
ilkerefeipek_20232425024.UI/ilkerefeipek_20232425024.UI.sln -
NuGet restore: Visual Studio paketleri otomatik geri yükler (
System.Configuration.ConfigurationManager9.0.5 tek bağımlılık). -
Build → Run (F5):
LoginFormaçılır. Giriş için DB'deki herhangi bir kayıtlıUser.EmailAddresskullanılır (sistem e-posta tabanlı, parola alanı yoktur — akademik kapsam).
Bu proje eğitim amaçlıdır:
- Login mekanizması e-posta tabanlı, parola hash'lenmesi yok (production'a uygun değildir)
- Connection string yerel makine instance'ına bağımlı
- Birim test suite yok (akademik teslim kapsamında değildi)
- Hedef: katmanlı mimari, ADO.NET ile CRUD, transaction temelleri
Production-grade gereksinim olduğunda yapılacaklar: parola hash + tuzlama (BCrypt/PBKDF2), Entity Framework veya Dapper migration, unit + integration testler, parametreli SQL'in saklı yordamla pekiştirilmesi, role-based authorization.
- Portfolio Site — tüm projelerin teknik özetleri
- proje2 — E-Commerce DB Design — bu projenin SQL Server schema kuzeni (MSSQL 3NF + audit + TVF)
- eduexam — Online Exam Platform — PHP + MySQL + JavaScript ile web tabanlı eğitim platformu
MIT — Eğitim ve kişisel kullanım amaçlı açık.
İlker Efe İpek İzmir Ekonomi Üniversitesi · Bilgisayar Programcılığı · 20232425024 ilkerefeipek00@gmail.com