SkyNav is an advanced navigation system built with C++ to provide optimized routing and navigation solutions.
-
Flight Data Representation:
- Parsing flight data into a graph with proper representation of vertices and edges.
- Visualization of nodes and edges using SFML, including tooltips for flight details.
-
Flight Booking:
- Display of direct and connecting flights with smooth input handling.
- Highlighted routes in the graph and visualization of layover feasibility.
-
Shortest and Cheapest Route Finder:
- Dijkstra’s algorithm implementation for shortest paths by time and cost.
- Highlighting optimal routes for better clarity.
-
Custom Flight Paths and Preferences:
- Filtering flights based on user preferences like time, cost, and layover options.
- Adaptable to dynamic changes and recalculated paths highlighted visually.
-
Layover Management:
- Accurate layover calculations using data structures like queues.
- Smooth transitions for connecting flights and visualization with dashed lines.
-
Advanced Route Generation:
- Management of multi-leg journeys with interactive path adjustments.
- Visualization of linked lists with arrows for clear path tracking.
-
Graphical Query and Subgraph Generation:
- Efficient subgraph generation and filtering of cities/routes based on queries.
- Displaying active routes clearly while fading irrelevant nodes.
-
Dynamic Data Management:
- Real-time navigation capabilities by reading data from external files.
-
Enhanced Graphics and Usability:
- Intuitive user interface with a welcome screen and a colorful goodbye screen.
- Visual clarity enhanced through tooltips, dashed lines, and highlighted routes.
-
Audio and Interactive Feedback:
- Audio cues for key navigation events to enhance the user experience.
- Visual Studio (or a compatible C++ IDE)
- C++20 or later
- Necessary headers and libraries included in the repository:
GraphVisualizer.hascii.hcolor.h
- Clone the repository:
git clone https://github.com/waris206/SkyNav.git
- Run the executable file after building the project.
- Enjoy the welcome screen upon startup.
- Explore the following features:
- Visualize paths dynamically using SFML.
- Choose between travel modes: transit, flight, or direct.
- Filter paths by date, time, or cost.
- Utilize Dijkstra's algorithm for efficient route calculations.
- View graphical representations of data and path adjustments.
- Manage layovers and visualize transitions dynamically.
- Upon exit, enjoy the colorful goodbye screen and review the contributors list.
- Source Files: Core navigation and logic implementation.
- Headers: Modular code organization using headers like
GraphVisualizer.h,ascii.h, andcolor.h. - Assets: Includes audio files, ASCII art, and data files for dynamic input.
This project was collaboratively developed by:
- Muhammad Akash Waris
- Habib Ahmed
- Abdullah Noman