# Auditing Accessibility of Pavements and Points of Interest in Urban Areas: The 'Seek & Go' Tool +
## 5 Technical Approach
### Architecture  
The development of the 'Seek & Go' application followed the microservices' design approach, comprising three distinct and independent layers. This approach ensured that each layer could be deployed and scaled independently, with fewer dependencies, resulting in simpler maintenance, quicker updates, and a more transparent communication interface. In addition, the application was implemented as a Progressive Web App, utilizing Service Workers as a virtual proxy between the browser and the network in order to support offline use. This feature is particularly essential since the application is primarily intended to be used while on the move. The 'Seek & Go' conceptual architecture is illustrated in Figure 1, demonstrating the three separate layers that make up the overall application, i.e., front-end, back-end, and storage layers.  
The front-end layer is composed of the following elements: (i) the user interface (UI), (ii) the application programming interface (API) for fetching data from the server and the local storage, and (iii) the survey dispatcher for handling data synchronization among the local storage and the remote database. The survey dispatcher is based on the following:  
* [noitemsep,topsep=0 pt]
* React, a JavaScript library for building user interfaces [49].
* Google Maps JavaScript API [50].
* Turf, an advanced geospatial analysis library [51].
* Chakra-UI, a simple, modular, and accessible component library that provides accessible building blocks to build React applications [52].
* Survey.js, a set of open-source JavaScript libraries to dynamically build surveys and forms dynamically [53].  
The back-end layer is a server-side application that handles the business logic, including the following: (i) user management, (ii) authentication, (iii) handling of privileges and rights, (iv) database communication, and (v) defining API endpoints following the Open API 3.0 specification for describing, producing, consuming, and visualizing RESTful web services [54]. The underlying technologies of this layer are as follows: (i) Node.js, a JavaScript runtime [55], and (ii) Feathers.js, a robust framework designed for the creation of both real-time applications and REST APIs [56]. Additionally, Survey Creator, which is a component of Survey.js, is an excellent tool for the assembly of various questionnaires.  
Figure 1: ‘Seek & Go’ architecture.  
These questionnaires can be linked to graphical entities such as obstacles, pavements, crosswalks, points of interest (POIs), and others on the map, providing a comprehensive overview of the area under investigation.  
The 'Seek & Go' application has a storage layer that utilizes MongoDB [57], a crossplatform document-oriented database, which is classified as a NoSQL DB. All data produced by the application are in the form of JSON documents with the appropriate schemas. These documents are validated by the Mongoose [58] object model library in the back end. The implementation of this layer relies on MongoDB Atlas Clusters hosted in Amazon Web Services, which ensures maximum scalability and expandability. Additionally, automated DB replicas guarantee zero downtime service.