Skip to content

thebadone231/plus-one

Repository files navigation


Logo

+1

I am getting Liho later, who want? +1!

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Challenges
  6. Acknowledgments

About The Project


Built With

(back to top)

Getting Started

To get a local copy up and running follow these simple example steps.

Installation

  1. Clone the repo
    git clone https://github.com/thebadone231/plus-one
  2. Get your free API Keys and put them in config.js
    Google Maps Platform API: https://developers.google.com/maps
    Firebase API: https://firebase.google.com/
  3. Install NPM packages
    npm install
  4. Run the repo
    npm start

(back to top)

Usage

Login page

Login page 1 Login page 2 Login page 3 Login page 4

Signup page

Signup page 1 Signup page 2 Signup page 3 Signup page 4

Forget password page

Forgot password page 1 Forgot password page 2

Home Tab

Home page 1 Home page 2 Home page 3 Home page 4 Home page 5 Home page 6 Home page 7 Home page 8 Home page 9 Home page 10 Home page 11 Home page 12 Home page 13 Home page 14 Home page 15 Home page 16

Activity Tab

Activity page 1 Activity page 2 Activity page 3

Request Tab

Request page 1 Request page 2 Request page 3 Request page 4 Request page 5 Request page 6 Request page 7 Request page 8 Request page 9 Request page 10 Request page 11 Request page 12

Profile Tab

Profile page 1 Profile page 2 Profile page 3 Profile page 4 Profile page 5 Profile page 6

FAQ Tab

FAQ page 1 FAQ page 2 FAQ page 3 FAQ page 4

(back to top)

Roadmap

1. Allow user who created the request to edit and delete the request

We would like the user to have the option to edit and delete requests that they have posted since there could be issues like typos and change of orders.

2. +1 feature

Currently, users cannot directly "+1" to a request, indicating that they too would like to add on to the request. Instead, they can chat directly in the chat for that request to do so. However, in the future, we would like to implement this feature separately as users might not want others to know about their order and exact delivery location.

3. Reward recommendation system

As some users might not know how much to reward others for completing their requests, we would like to provide users with a suggested range that they could take reference from.


Challenges

1. Reading information retrieved from the database

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.

2. Structuring the database

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.

3. Rendering alert component

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.

4. Using of libraries which are not well documented

React native being relatively new, although it was not hard to find libraries that suited our needs, there were usually insufficient documentation on the library itself. For instance, there were methods in the google autocomplete library but we were not taught how to use them. There were relatively few stackoverflow posts dedicated to such libraries as well.

5. Realtime reading of database

As we have a lot of data to be loaded in the home screen, we did most of them asynchronously using the useEffect hook. However, when a new request has been made, we have yet to be able to make it appear on the home screen in real time. Users are only able to see it after they quit the app and login again. This is also an issue when it comes to location access. If the user does not turn their location on prior to loggin into the app, the location service does not work as intended.

(back to top)


Acknowledgments

(back to top)

About

NUS Orbital 2022 - Apollo 11

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published