SERVER BACKEND DATABASE SYSTEM MAPPING SYSTEM AUTHENTICATION INTERFACE

CHOSEN TECHNOLOGIES

Here, we emphasize the need to consider various technologies and platforms for a product, including a programming language and platform for server-based calculations and operations, a database platform, a mapping API, and an interface technology for the product's user interface. The choices made need to take into account factors such as ease of implementation, processing power requirements, budget, and integration with existing systems, as well as security and user accessibility.


SERVER BACKEND: JAVA

Because our application will be based in user-generated content, it must support automatic updates of collaborative documentation. Our chosen language is reusable, modular, and offers a range of user activities. It also is able to handle a large amount of data and provide accurate overviews to users. This server backend language supports an algorithm for customized reporting based on user characteristics and needs. Our application will be used for both individual benefit and research purposes.

Comparison in benefits between Java, Kotlin, and JS.




DATABASE SYSTEM: AWS

The use of a relational database makes Amazon Web Services the best option for our project. This type of database allows for data from various sources to be easily integrated and used to create demographic information, which is critical for our client's needs. In contrast, Firebase's object-based data storage may limit the ability to perform these functions. Furthermore, AWS is likely to be more cost-effective as the project grows and scales.

Comparison in characteristics between Firebase and AWS.


MAPPING SYSTEM: GOOGLE MAPS SDK

After considering all factors, it seems that the Google Maps SDKs are the best choice. The search and autocomplete APIs are already in Java, so no parsing is necessary. Google Maps also has Java libraries, which eliminates the need for cumbersome string formatting. Additionally, their cost structure is scalable, allowing the client to keep the app running as the user count grows without needing to renegotiate their contract. Furthermore, the data provided by Google Maps is likely to be more accurate and trustworthy than that of other options.

Comparison between Apple MapKit, Google Maps, and Bing Maps.




USER ACCOUNT SYSTEM AND AUTHENTICATION: FIREBASE

Based on the constraints of the project and our analysis of the options, we have decided to use Firebase Authentication for our user account system. While the other approaches may be more robust, they would require additional resources that we do not have. The free license for Firebase is suitable for our needs and provides many tools to reduce our workload while maintaining security.

Comparison between Firebase, pac4j, and JSON web tokens.


USER INTERFACE: XML/LAYOUT

XML is the most suitable choice for creating user interfaces in native Android. It is directly compatible with Google Maps, so integrating it into our app would be seamless. XML also has the most documentation and familiarity among Android developers, making it easier for us to use and troubleshoot. Additionally, its long history means that there are resources available for almost any implementation we may need. Overall, XML is the most capable and robust way of making user interfaces in Android.

Comparison between XML, Jetpack Compose, and SwiftUI.