Table of Contents
To get a local copy up and running follow these simple example steps.
- Clone the repo
git clone https://github.com/thebadone231/plus-one
- Install NPM packages
npm install
- Run the repo
npm start
Users are able to navigate to different screens by clicking on the corresponding icons or words. This is made possible using the onPress function that calls the backend routing functions when users interact with these pressables.
Before users are allowed access to the services in the application, they will be required to authenticate their identity by keying in the email and password they registered with the application. This information submitted by the user will be cross referenced with that stored in the Firebase authentication server. Once Firebase has ascertained that the veracity of the password provided, users will be directed to the main interface of the application.
New users will be required to register themselves via the “New User” screen in the application. After all necessary fields have been filled up correctly, this information will be written in the Firebase database. This information will be retrieved and rendered in the main interface each time the user logs in to the application.
While information within each query could be processed using basic knowledge on data structures, custom methods created for Firebase provided a more efficient alternative that was also much easier to understand. Hence, a substantial amount of time was spent on experimenting with different methods to investigate how to best process this information so that it can utilised for algorithms we intend to implement in future.
Deciding what information is necessary, including those required for features yet to be implemented, was the first issue we had to tackle. We recognise that how the data is structured will impact how we read and process the information in future. Hence, a significant amount of time was dedicated towards determining how to structure this information in the most logical and efficient manner. In addition, we also had to devise workarounds in response to the restrictions imposed by how Firebase databases are organised.
Alerts are incorporated as part of the UI design as they can serve as important visual cues to guide users around the application. While these alerts could be rendered in expo, they could not be rendered when deployed in heroku. We are in the process of resolving this issue. Please refer to the screenshots above on the alerts that are already implemented in the application.