Inspiration

The inspiration behind R2S (Ready to Send) Courier System came from the need to manage parcel deliveries efficiently and systematically. Traditional manual tracking can become difficult when the number of parcels and riders increases. We wanted to develop a simple system that organizes parcels, assigns riders fairly, prioritizes delivery zones, and keeps track of completed deliveries using data structures in C.

What it does

R2S is a menu-driven console application developed in C that manages the complete parcel delivery process. It allows users to register parcels and riders, assign parcels to available riders in FIFO order, update parcel delivery status, search for parcels by ID, and review delivery history. It also assigns priorities to different delivery zones and displays parcels in sorted order by ID.

How we built it

We built R2S using the C programming language and three main data structures:

Binary Search Tree (BST): Stores parcels by ID and supports searching, insertion, and sorted display.

Linked Queues: Manage pending parcels and available riders using the First-In, First-Out (FIFO) principle.

Stack: Stores delivered parcels so that the most recently delivered parcel appears first.

We followed the Software Development Life Cycle (SDLC), including requirement analysis, system design, development, testing, deployment, and maintenance.

Challenges we ran into

Some challenges included managing multiple data structures together, maintaining parcel statuses throughout the delivery process, and ensuring that parcels and riders were assigned in the correct FIFO order. We also needed to handle situations where no pending parcels or available riders existed. Another challenge was organizing zone-based priorities and maintaining accurate delivery history.

Accomplishments that we're proud of

We are proud to have developed a working courier management system that demonstrates the practical use of data structures in a real-world scenario. The system supports parcel registration, rider management, parcel assignment, delivery tracking, searching, sorted parcel display, and delivery history management. We successfully combined a Binary Search Tree, linked queues, and a stack into one application.

What we learned

Through this project, we learned how to implement and use Binary Search Trees, linked queues, and stacks in C. We improved our understanding of dynamic memory allocation, linked lists, recursive tree operations, FIFO and LIFO principles, and menu-driven programming. We also learned how different data structures can work together to solve practical problems.

What's next for Team Noob

In the future, we plan to improve R2S by adding file handling for permanent data storage, parcel editing and updating, parcel deletion or cancellation, and configurable delivery-zone priorities. We also aim to introduce sorting and filtering by parcel status or priority and develop a graphical or web-based interface to make the system more user-friendly.

Built With

  • c
  • dsa
  • stack
Share this project:

Updates

Submission history