/Shipping-Company-Desktop-Application

Application For Shipping company that provide delivering services.

Primary LanguageC#

Shipping-Company-Desktop-Application

Our Project is a small model from (MRSOOL), which is a delivery platform that gets the order or
specifying types of products from the sender and delivers it to the receiver through the company's trucks and employees.

Problem Definition:

Imagine you go to a shipping company to send something to your friends or family and you find out that the product is sent to another branch due to wrong address details, late delivery due to the company not knowing available trucks and drivers, or even your order hasn’t been shipped yet. This makes an ineffective company that can lead to company loss, and bad rating. It is important for a shipping company to have a database management system to organize requests, save the right customer information, manage and monitor trips, and monitor bills and money transactions. Making a database will increase the company efficiency, and make it able to have control of all its assets and how to improve the company.

Tech Stack

Client: Microsoft .Netframework, Krypton UI Toolkit, BoldReports

Server: Azure SQL Database server
Database schema was defined using Datagrip tool and hosted onto azure SQL server, canned transactions were done by using stored procedures in SQL server, then the frontend and dealing with the server was done by .NET framework to have a complete solution.

Database Entity-Relationship diagram

App Screenshot

Screenshots Samples

App Screenshot App Screenshot App Screenshot

Lessons Learned

  • Using SQL intensively and being familiar with SQL syntax and built-in functions
  • Using hosting solution (azure)
  • How to build software with .NET framework
  • Being familiar with C# syntax

List of system users and privileges of each user:

Employee.

● Add/Edit user data (sender and receiver)
● Add product to Branch(product table)
● View data of sender and receiver
● Product received (change the status of product)
● View product details
● Pay bills
● Sign in/out

Supervisors

● Update price list
● Add Driver to driver table (Hire driver)
● Add employees data (Hire employee)
● Receive the trucks
● Create trip (assign driver / truck)
● View available driver/trucks (check if they are available to make a trip)
● Assign products to available trucks

Manager

● Update employee table (move them from one branch to another)
● View all the assets in the company (view all tables in the company )
● Update salaries (increasing or decreasing salary)
● Add manager
● Add supervisors to branches
● Add trucks to any branch
● Delete Employees from table (Fire them)

List of entities and a brief description for each entity:

● Client: Clients have two types, sender and receiver; sender is the person who requests to send a product from the branch to another one, and the receiver is the person who receives the product from the branch after transportation.
● Branch: The place where the client goes to send or receive the product. Also the place where trucks transport products from one to another.
● Product: It is the thing that needs to be transported from one branch to another.
● Trip: Action of transporting the products where it contains starting and ending locations, the products in this trip, and the driver driving the truck.
● Drivers: People who drive the truck through a trip transporting the product from one branch to another.
● Trucks: They contain the products that need to be transported. Trucks have capacities.
● Price List: The price of the transportation, calculated according to the product description(Product weight, product size, …etc), and the type of transporting(Normal, Vip)
● Bill: It has the company profit, employees salaries, taxes, …etc.
● Employee: Employees are three types: normal employee supervisor and manager; Employee is the one who takes data from the user when he reaches the branch, he can view data of user and receiver. Supervisor is the one who is responsible for trips, he checks for available trucks and drivers and then creates a trip. Finally the Manager is the one who is the big boss who can access all company assets, move employees from branch to another and could also fire them.

List of relationships and brief description for each

relationship:

● WORKS IN: (employee and branch): Every employee works in one branch where the branch can take more than one employee.
● PAY: (client and employee): The client pays the employee to make the order employee can deal with many clients
● CREATE: (employee and bills):create a bill for the client by checking his product weight and type, and determine the fees based on the price list.
● HAS (product and trip):each transporting product has trip moving it from one branch to another (product and Bill):each product has a bill created by the employee who is recording the transaction. (Trip and driver) : each trip has driver to move it from branch to another (Trip and truck) : each trip has is transferred to the other branch through truck that carry the product and driver who drives it
● ENROLLED (Client and Branch): each client has a main branch where he can receive and send his products.
● START/END (Trip and Branch): every trip starts from branch to another one.
● CATEGORIZED (Product and price list): each product price is categorized according to a price list with respect to weight range ,type of transporting and type of the product itself example: ( this product broken easily or not , delivered fast or not )
● MANAGES: (Supervisor and Branch): each Branch has supervisor that manages employees

Contributors

  • @agaberr
  • @AhmedYasser20