Daa IV t257 Project Proposal
Daa IV t257 Project Proposal
Project Title
Sortify
Arya Bhagat
Student id: 23021076
aryabhagat1980@gmail.com
Vanshika Aggarwal
Student id: 23022784
vanshikaaggarwal896@gmail.com
Amritanshu Raj
Student id: 23151640
amritanshuraj001@gmail.com
Page 1
Btech CSE DAA-IV-T257 PROJECT PROPOSAL
Motivation (1 pt)
We've all been there — staring at lines of code trying to wrap our heads around how a sorting algorithm really
works. Bubble sort, quick sort, merge sort... they all sound simple enough until you're lost in the logic and can't quite
picture what's happening behind the scenes. That’s where the idea for a Sorting Visualizer came from. We wanted
to build something that makes these abstract processes come to life — something visual, interactive, and intuitive.
Instead of just reading or memorizing steps, users will see the algorithm in action, understand how data moves, and
get that “aha!” moment. For us, this project is a way to not only strengthen our own skills in data structures and
algorithms, but also to create a tool that can genuinely help others who are learning the same things.
Page 2
Btech CSE DAA-IV-T257 PROJECT PROPOSAL
• Routes between cities will be represented as weighted edges, with weights based on distance or travel
time.
• An Adjacency List will be used for efficient memory usage and easy traversal.
2. Algorithm Implementation
• Dijkstra’s Algorithm will be implemented to compute the shortest path between any two cities.
• Breadth-First Search (BFS) and Depth-First Search (DFS) will be utilized for exploring all reachable cities
from a given source.
• All algorithms will be tested on graphs of varying sizes to validate both correctness and performance.
3. Programming Platform
• Language: Python – chosen for its simplicity, readability, and rich ecosystem.
• Libraries:
◦ NetworkX – for creating and manipulating graph structures.
◦ Tkinter or a Text-based CLI – for building the user interface.
◦ Matplotlib – for optional route/path visualization.
4. User Interface
• Users will input a starting city and a destination city.
• Users can select an optimization preference:
◦ Shortest path
◦ Fewest stops
◦ Fastest route
• The output will include:
◦ The computed travel path
◦ Total distance or travel time
◦ A list of intermediate stops
• A fully functional travel planner application that integrates routing algorithms like Dijkstra, BFS, and DFS.
• Support for custom input graphs as well as preset city maps to simulate real-world scenarios.
• Detailed route information, including total distance or time, the sequence of cities, and optional visualization of the
path.
• A comprehensive project report covering system design, implementation, testing results, and potential areas for
future improvement.
• A user manual to guide users on how to install, run, and interact with the application through the interface.
Assumptions
• The travel network is static and does not factor in real-time traffic or dynamic route changes.
• All user-entered data (cities, paths, and distances) are assumed to be valid and correctly formatted.
• Distance and travel time are considered proportional by default, unless explicitly specified otherwise.
References
• Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to Algorithms.
• NetworkX Documentation – https://networkx.org/documentation/stable/
• GeeksforGeeks: Graph Algorithms – https://www.geeksforgeeks.org/graph-data-structure-and-algorithms/
• TutorialsPoint – Dijkstra’s Algorithm – https://www.tutorialspoint.com/dijkstra-s-algorithm
• Python Official Documentation – https://docs.python.org
Page 4