Student ID: 2522190010 Course: Object Oriented Programming (OOP) Project Platform: ASP.NET Core MVC (.NET 8.0)
This project is an Object-Oriented Inventory and Warehouse Control System built for a technology store ("TeknoStore"). It simulates a real-world warehouse environment, allowing products and suppliers to be tracked, stock levels managed, and advanced sales/restocking algorithms applied using C# and ASP.NET Core MVC.
- Composition over Inheritance:
InventoryItemis composed ofProductandSupplierobjects rather than relying on inheritance hierarchies. - In-Memory Database: A static
WarehouseDataclass handles data persistence during runtime. - UML Design: Class structure follows core OOP principles (Encapsulation, Composition) — see diagram below.
- CRUD Operations: Add, list, and delete inventory items.
- Validation: Server-side validation for required fields (email format, phone, etc.).
- Localization: Configured for Turkish Lira (₺) currency format.
- FIFO Sales System: Automatically sells items with the nearest expiration date first.
- Stock Optimization: Automatically removes items with 0 quantity from the warehouse.
- Restock Reporting: Generates alerts for critical stock levels (< 10 units).
- Safety Checks: Prevents selling more items than currently available in stock.
- C# (Backend Logic)
- ASP.NET Core MVC (Web Framework)
- HTML5 / Bootstrap 5 (Frontend Styling)
- Git & GitHub (Version Control)
The system design, OOP architecture (composition, encapsulation), business logic, and all algorithms (FIFO sales, restocking, stock optimization) were designed and implemented independently. AI tools were used as a support resource for frontend styling (HTML/Bootstrap), with all decisions, planning, and implementation direction defined by the developer.
This project targets .NET 8.0. If running on a different SDK version, update the <TargetFramework> in the .csproj file accordingly.
- Clone the repository.
- Open the solution in JetBrains Rider or Visual Studio.
- Select the
httprun configuration (to avoid SSL issues). - Run the project and navigate to the localhost URL.
Developed by Umut Şimşek — 2522190010 — Fall 2024-2025 Semester.