Metropol Wanderer
This project is presented as part of a software engineering capstone thesis. It addresses the challenges associated with the fragmented use of multiple applications in daily life, particularly in the fields of culture and tourism. By exploring and analyzing current applications, this work aims to propose a more integrated and user-friendly solution to streamline the user experience and enhance overall efficiency.
İstanbul, Turkey
Oct 2021 - Jun 2022
Tourism
Problem Definition
In today’s world, where software solutions are a major part of our lives, applications are designed to quickly address the problems they focus on. However, each solution typically addresses a specific problem. This approach, however, introduces a significant issue: the need for users to utilize multiple applications.
Each application has its own unique internal dynamics and solutions. Once users have adapted to the dynamics and flow of an application during its usage, switching between applications negatively impacts their experience.
The problem described above also applies to applications in the fields of culture and tourism. When examining applications in these areas, some report traffic conditions, while others list recommended cultural and tourist sites. Some applications answer questions like "Where to eat?" or "Where to stay?"
It is inevitable for a user trying to perform a very simple activity to get lost among a dozen applications.
Purpose of the Project
The project aims to develop an application that provides fast and comprehensive results on a single platform by identifying routes that meet specified conditions between predetermined locations, based on the problems described in the problem definition. The main objectives of this application are to:
Prevent time loss between destinations,
Suggest the most suitable route for easy and quick travel,
Provide an alternative route in case of changes caused by unforeseen developments along the route,
Encourage travel through gamification.
Solution
A new platform has been developed where users can explore the city with an interface designed based on standard UI/UX principles. These principles include:
Hierarchy
Visibility of System Status
Accessibility
Meeting User Needs
Aesthetic and Minimal Design
Customizability
Recognition Rather Than Recall
Error Tolerance
Adaptability
To address multiple user needs within a single platform, different modules were developed for each function. The actions users can perform include:
Routing with specified vehicle options
Filtering and listing locations near their current position
Viewing suggested routes for specific rotations
Accessing detailed information about tourist and cultural sites and getting directions
Creating travel lists
Adding desired locations to favorites
Dark Theme
The project includes a dark theme option for users who prefer a more visually comfortable experience, especially in low-light environments. This feature maintains the same clean and intuitive design while offering an alternative interface that enhances readability and reduces eye strain.
Conclusion
The tests conducted on the project, which was designed to enhance city tour plans and simplify the planning process, have yielded the expected positive feedback.
It was observed that user interactions within the application can be increased over time. Additionally, data indicates that users are likely to continue using the application repeatedly.
Technologies
To deliver a modern application with an enhanced user experience, JavaScript was chosen as the programming language. Following the Separation of Concerns (SoC) principle, two layers were separated using different frameworks.
The Presentation Layer (frontend) was developed using VueJS, while the Data Access Layer was built with NestJS. For development convenience, Visual Studio Code and its integrated debugging tools were utilized. The user interface was designed using an iterative approach in Figma to minimize time costs before coding.
The real-time data used in the project was sourced from the Transport for London API, OpenStreetMap API, and MediaWiki API. After processing, the derived data was programmed to be stored in the Firebase database.