Skip to content
Β 
Β 

Latest commit

Β 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“¦ Delivery Management System

A sophisticated, enterprise-grade logistics management platform designed to streamline complex delivery operations with real-time tracking, intelligent routing, and comprehensive fleet management capabilities.


🎯 Overview

The Delivery Management System is a robust desktop application built with modern .NET technologies, providing a complete solution for managing orders, couriers, and real-time delivery simulations. Designed with scalability and maintainability in mind, it implements industry-standard architectural patterns and SOLID principles for maximum flexibility and reliability.

Key Highlights

  • Real-time Fleet Operations: Monitor multiple couriers and deliveries simultaneously with live status updates
  • Intelligent Simulation Engine: Model complex logistics scenarios to optimize delivery routes and predict completion times
  • Secure Role-Based Access: Separate authenticated interfaces for administrators and courier personnel
  • Advanced Configuration Management: Dynamic system parameters for speeds, distance ranges, and operational constraints
  • Thread-Safe Data Management: Concurrent-safe operations ensuring data integrity across multiple users

✨ Core Features

🚚 Order Management

  • Full Order Lifecycle: Create, assign, track, and complete delivery orders
  • Order Classification: Support for multiple order types with customizable attributes (weight, volume, priority)
  • Status Tracking: Real-time status transitions (Open β†’ In Progress β†’ Completed/Canceled)
  • Customer Integration: Full customer information management with location-based delivery tracking

πŸ‘¨β€πŸ’Ό Courier Management

  • Courier Onboarding: Complete courier registration with authentication and profile management
  • Performance Tracking: Monitor delivery metrics and assignment history
  • Capability Management: Define courier specializations and delivery constraints
  • Preferred Delivery Types: Assign courier preferences for order optimization

πŸ“Š Administrator Dashboard

  • Live Metrics: Real-time summary of order statuses and system health
  • System Configuration: Manage fleet speeds, distance ranges, and operational parameters
  • Database Management: Initialize, reset, and backup database operations
  • Simulation Controls: Start/pause real-time delivery simulation with configurable intervals

πŸ”„ Simulation Engine

  • Real-Time Modeling: Simulate delivery operations with configurable time acceleration
  • Route Optimization: Calculate delivery times based on courier capabilities and configurations
  • Time Management: Advanced clock control (minute, hour, day, month, year increments)
  • Dynamic Updates: Live observer pattern for instant UI refresh on system changes

πŸ—οΈ Architecture

The system follows a 3-Tier Layered Architecture with clean separation of concerns:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Presentation Layer (PL)                β”‚
β”‚  WPF Desktop Application & UI Logic     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Business Logic Layer (BL)              β”‚
β”‚  Core Business Rules & Operations       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Data Access Layer (DAL)                β”‚
β”‚  Database Abstraction & Persistence     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Layer Responsibilities

Layer Purpose Key Components
PL User interface and interaction Windows, ViewModels, Converters, Styles
BL Business logic and workflows Order operations, Courier logic, Admin functions
DAL Data persistence and retrieval Entity models, Repository patterns, Storage implementations

πŸ› οΈ Technology Stack

Category Technologies
Language C# 12
Framework .NET 8.0
UI Framework Windows Presentation Foundation (WPF)
Data Binding INotifyPropertyChanged pattern, XAML Data Binding
Storage In-memory collections, XML serialization
Architecture Patterns SOLID Principles, Repository Pattern, Singleton, Observer
Threading Thread-safe operations with lock mechanisms

🎨 Design Patterns & Best Practices

βœ… SOLID Principles

  • Single Responsibility: Separated layers handle specific concerns
  • Open/Closed: Extensible interfaces for data access implementations
  • Liskov Substitution: Multiple DAL implementations (DalList, DalXml)
  • Interface Segregation: Focused, role-specific interfaces
  • Dependency Inversion: Abstraction-based components

πŸ” Advanced Features

  • Thread-Safe Singleton: Concurrent-safe data access layer initialization
  • Observer Pattern: Real-time UI updates triggered by system changes
  • Dependency Injection: Factory-based service initialization
  • Input Validation: Comprehensive user input sanitization (TryParse, regex validation)
  • Async/Await Pattern: Non-blocking operations for responsive UI

🎨 UI/UX Enhancements

  • Responsive Data Binding: Two-way binding for instant UI synchronization
  • Custom Control Templates: Polished button styles with hover effects
  • Theme System: Consistent styling across the application
  • Validation Feedback: Visual indicators for invalid input
  • Behavior Patterns: XAML-attached behaviors for reusable validation logic

πŸš€ Getting Started

Prerequisites

  • Windows 10/11
  • .NET 8.0 SDK or Runtime
  • Visual Studio 2022 or equivalent IDE

Installation

  1. Clone the repository

    git clone https://github.com/shmuelZagah/Delivery-Management-System.git
    cd Delivery-Management-System
  2. Open the solution

    dotnet build dotNet5786_0814_8695.sln
  3. Run the application

    dotnet run --project PL/PL.csproj

πŸ”“ Default Credentials

Administrator Access

Username: 222222222
Password: admin100

Courier Access

Username: 234567890
Password: 1234567890

πŸ“– Usage Guide

For Administrators

  1. Login with admin credentials
  2. Dashboard Overview: Monitor order statistics and fleet status
  3. Manage Orders: Create, view, and assign delivery orders
  4. Manage Couriers: Register new couriers and manage assignments
  5. Configure System: Adjust speeds, ranges, and operational parameters
  6. Run Simulation: Start real-time delivery simulation

For Couriers

  1. Login with courier credentials
  2. View Assignments: See assigned orders and delivery details
  3. Update Status: Mark orders as picked up, in transit, or delivered
  4. Track Metrics: Monitor personal delivery statistics

πŸ† System Capabilities

Performance Metrics

  • Concurrent Users: Thread-safe operations support multiple simultaneous sessions
  • Order Capacity: Efficient handling of large order volumes
  • Simulation Speed: Configurable time acceleration (real-time to 1000x speed)

Configuration Parameters

  • Average speeds for car, motorcycle, bicycle, and walking
  • Maximum air delivery range
  • Company base coordinates (latitude/longitude)
  • Maximum supply time and activity windows

πŸ”’ Security Features

  • Authentication Layer: Secure login with credential validation
  • Role-Based Access Control: Separate interfaces for Admin and Courier roles
  • Thread-Safe Operations: Lock mechanisms prevent race conditions
  • Input Validation: All user inputs validated before processing

πŸ“ Project Structure

Delivery-Management-System/
β”œβ”€β”€ PL/                      # Presentation Layer (WPF)
β”‚   β”œβ”€β”€ MainWindow.xaml      # Admin Dashboard
β”‚   β”œβ”€β”€ LoginWindow.xaml     # Authentication
β”‚   β”œβ”€β”€ Order/               # Order management UI
β”‚   β”œβ”€β”€ Courier/             # Courier management UI
β”‚   └── Helpers/             # Converters, Styles, Utilities
β”œβ”€β”€ BL/                      # Business Logic Layer
β”‚   └── BL.cs                # Core business operations
β”œβ”€β”€ DalFacade/               # Data Access Facade
β”‚   β”œβ”€β”€ DO/                  # Data Objects (Models)
β”‚   └── DalApi/              # Interfaces & Contracts
β”œβ”€β”€ DalList/                 # In-Memory Implementation
β”œβ”€β”€ DalXml/                  # XML-Based Implementation
└── DataBase/                # Database & Utilities

πŸ§ͺ Testing & Quality Assurance

The system includes comprehensive test projects:

  • BITest: Business layer validation
  • DalTest: Data access layer testing
  • Extensive input validation with TryParse operations
  • Real-world scenario simulations

πŸš€ Future Enhancements

  • Database Integration: SQL Server or PostgreSQL backend
  • REST API: RESTful web services for third-party integration
  • Mobile App: Companion mobile application for couriers
  • Advanced Analytics: Machine learning for route optimization
  • Real Geolocation: Google Maps/GPS integration for true positioning
  • Notification System: SMS/Push notifications for order updates

πŸ“ License

This project is provided as-is for educational and commercial purposes.


πŸ‘€ Authors

Shmuel Zagah
Daniel Bar


πŸ“§ Contact & Support

For questions, feedback, or collaboration opportunities:


Last Updated: April 14, 2026

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages