Mapping Software - ECE297
A slowed down visualization of our A* pathfinding algorithm
In the ECE297 software design course, my team of three embarked on a semester-long project that involved creating mapping software with features encompassing navigation, graphical display, and a solution to the travelling courier problem—a complex NP problem akin to the travelling salesman problem. Utilizing C++, we not only met the course requirements but also went above and beyond, incorporating additional features to enhance the software’s functionality and user experience.
Key Project Features:
- Travelling Courier Problem Solution:
-
Developed a robust algorithm to address the NP problem of the travelling courier, showcasing problem-solving skills in optimization.
-
Implemented navigation features to provide a comprehensive solution for mapping and route optimization.
-
- Additional Features:
-
Enriched the software with a colour manager, allowing users to customize and enhance the visual representation of maps.
-
Introduced map detail toggles, colorblind settings, and an autocorrect feature, contributing to a more user-friendly and efficient mapping experience.
-
Skills Acquired:
- Large Codebase Development:
-
Gained experience in writing and maintaining a large codebase, a skill essential in handling complex software projects.
-
Developed proficiency in structuring code for scalability, readability, and maintainability.
-
- Collaboration and Version Control:
-
Learned effective collaboration through version control using Git, facilitating seamless integration of team members’ contributions.
-
Enhanced skills in resolving conflicts, merging code changes, and maintaining a cohesive codebase.
-
- Documentation and Presentation:
-
Acquired the art of properly documenting code, a vital aspect of software development for code readability and knowledge transfer.
-
Developed the ability to showcase and present work interactively, an essential skill in conveying the functionality and value of software.
-
- Project Management and Wiki Creation:
-
Gained insights into project management through the creation of a comprehensive wiki, organizing information for efficient team collaboration.
-
Developed organizational skills in structuring project documentation, providing clarity and accessibility for future reference.
-
Relevance to Software Development Career:
- Full-Stack Skillset:
-
The project, spanning from algorithmic problem-solving to user interface design, provided a full-stack development experience.
-
The combination of technical depth and breadth equips me with a versatile skillset applicable in diverse software development roles.
-
- Professionalism and Collaboration:
-
Learning how to collaborate effectively, use version control, and create documentation reflects the professionalism required in a software development environment.
-
These collaborative and organizational skills are pivotal for success in real-world software development teams.
-
Conclusion:
The Mapping Software project in ECE297 was not just a coding exercise but a comprehensive exploration of software design, development, and collaboration. From solving complex optimization problems to enhancing the user experience with additional features, this project encapsulated the multifaceted nature of software development. As I transitioned into a software development career, the skills honed during this project—both technical and interpersonal— served as a solid foundation for success in the dynamic and collaborative world of software engineering.
Extra Feature: themes, including colour blind options
Extra Feature: Custom themes/colour manager
Extra Feature: Map Toggles