The Postal Package Delivery System is a comprehensive desktop application built using C# and WPF (Windows Presentation Foundation). Designed with a clean and user-friendly interface, this system streamlines the daily operations of a postal service, including customer management, order registration, advanced reporting, and package tracking. The application utilizes SQL Server for robust data management and includes comprehensive exception handling to ensure a smooth, crash-free user experience.
- Language: C# (Advanced Programming concepts)
- UI Framework: WPF (Windows Presentation Foundation)
- Database: Microsoft SQL Server
- Version Control: Git & GitHub
- Data Export: CSV generation for reports
- Employees can register new customers using their Name, Last Name, National ID, Email, and Mobile Phone.
- Automated Credentials: The system generates a unique, random Username and Password for each new customer.
- Email Notification: Credentials are automatically emailed to the customer upon successful registration.
- Orders are linked to the customer's National ID. If a customer is not found, the system redirects the employee to the registration page.
- Captures comprehensive order details: Sender Address, Receiver Address, and Content Type (Object, Document, Fragile).
- Powerful search and filtering capabilities across all employee orders.
- Filter by: Customer National ID, Package Type, Paid Price, Package Weight, and Delivery Type (Express/Normal).
- Export to CSV: Search results can be exported to a CSV file, automatically sorted by the order registration date.
- Employees can look up an order using its Order ID to view full details and current status.
- Status Lifecycle:
Registered➔Ready to send➔Sending➔Delivered. - Strict validation: Once a package is marked as
Delivered, its status cannot be altered.
This project was developed collaboratively using a structured Git branching model:
mainbranch: Contains production-ready code.developbranch: The main integration branch for ongoing development.featurebranches: Each team member worked on specific features in individual branches created fromdevelop, merging them back via Pull Requests.
Before you begin, ensure you have the following installed on your machine:
- Visual Studio 2022 (with
.NET desktop developmentworkload) - Microsoft SQL Server (Express or Developer edition)
- SQL Server Management Studio (SSMS) (optional, for database management)
-
Clone the repository:
git clone https://github.com/YourUsername/Project_AP.git cd Project_AP -
Database Configuration:
- Open Visual Studio and load the
.slnfile. - Locate the
App.config(or connection settings file) in the project. - Update the
ConnectionStringto match your local SQL Server instance:<connectionStrings> <add name="DefaultConnection" connectionString="Data Source=YOUR_SERVER_NAME;Initial Catalog=PostalSystemDB;Integrated Security=True;" providerName="System.Data.SqlClient" /> </connectionStrings>
- Note: If the project uses Entity Framework, open the Package Manager Console and run
Update-Databaseto generate the schema. Alternatively, run the provided.sqlscript in SSMS to create the tables.
- Open Visual Studio and load the
-
Email (SMTP) Configuration:
- The application automatically sends generated credentials to newly registered customers.
- Open the email service class or configuration file and enter your SMTP credentials (e.g., your Gmail address and App Password).
-
Build and Run:
- Right-click on the Solution in Visual Studio and select Restore NuGet Packages.
- Press
F5or click the Start button to compile and launch the application.
- Mohammad Mahdi SharafBayani
- Ali Gholami
Course: Advanced Programming (AP)